从列入白名单的 IP 发布到 SQS
Publishing to SQS from a whitelisted IP
应用程序是否可以通过其计算机 IP 地址白名单将消息post发送到 SQS 队列?
我查看了 https://aws.amazon.com/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/,但这是一个角色,我仍然需要 AWS 用户来执行此操作。
有没有什么方法可以只从 IP 地址发布到 SQS 队列,根本不需要 AWS 用户?
如果您的应用程序在 VPC 中运行,您可以使用 AWS PrivateLink 私下连接到您的 SQS 队列,这样流量就不会遍历互联网,这通常可以解决将 IP 地址列入白名单以用于内部私人流量的需要。 SQS and AWS PrivateLink
没有直接的方法 - 您仍然需要您的 AWS 凭证。
但另一种方法是让 AWS API 网关调用发送 SQS 消息的 Lambda。 API 网关将仅限于一小部分(或一组)IP。 This link 进入细节,但关键是在您的 API 网关调用上有资源策略:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": ["1.2.3.4"]
}
}
}
]
}
其中 1.2.3.4
是您要允许进入的 IP 地址。此 API 网关调用随后将调用您的 Lambda。在内部您仍在使用 IAM 角色,但在 AWS 外部则不是。
我发现对于 SQS(不是 SNS),我可以将发件人的 ip 列入白名单。然后我可以做一个 POST 就可以了。
应用程序是否可以通过其计算机 IP 地址白名单将消息post发送到 SQS 队列?
我查看了 https://aws.amazon.com/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/,但这是一个角色,我仍然需要 AWS 用户来执行此操作。
有没有什么方法可以只从 IP 地址发布到 SQS 队列,根本不需要 AWS 用户?
如果您的应用程序在 VPC 中运行,您可以使用 AWS PrivateLink 私下连接到您的 SQS 队列,这样流量就不会遍历互联网,这通常可以解决将 IP 地址列入白名单以用于内部私人流量的需要。 SQS and AWS PrivateLink
没有直接的方法 - 您仍然需要您的 AWS 凭证。
但另一种方法是让 AWS API 网关调用发送 SQS 消息的 Lambda。 API 网关将仅限于一小部分(或一组)IP。 This link 进入细节,但关键是在您的 API 网关调用上有资源策略:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": ["1.2.3.4"]
}
}
}
]
}
其中 1.2.3.4
是您要允许进入的 IP 地址。此 API 网关调用随后将调用您的 Lambda。在内部您仍在使用 IAM 角色,但在 AWS 外部则不是。
我发现对于 SQS(不是 SNS),我可以将发件人的 ip 列入白名单。然后我可以做一个 POST 就可以了。