如何解决从白名单IP发布到SQS
应用程序是否可以通过将其机器IP地址列入白名单将消息发布到SQS队列中?
我查看了https://aws.amazon.com/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/,但这是一个角色,我仍然需要一个AWS用户来完成。
是否有任何方法可以仅从IP地址发布到SQS队列,而根本不需要AWS用户?
解决方法
没有直接的方法-您仍然需要AWS凭证。
但是另一种方法是拥有一个调用Lambda的AWS API网关,该Lambda发送SQS消息。 API网关将限于一小部分(或一组)IP。 This link进行了详细介绍,但关键是在API网关调用上制定了资源策略:
{
"Version": "2012-10-17","Statement": [{
"Effect": "Allow","Principal": "*","Action": "execute-api:Invoke","Resource": "execute-api:/*/*/*"
},{
"Effect": "Deny","Resource": "execute-api:/*/*/*","Condition": {
"NotIpAddress": {
"aws:SourceIp": ["1.2.3.4"]
}
}
}
]
}
其中1.2.3.4
是您要允许的IP地址。然后,此API网关调用将调用您的Lambda。在内部,您仍在使用IAM角色,但在AWS外部,您没有使用。
如果您的应用程序在VPC中运行,则可以使用AWS PrivateLink私密连接到SQS队列,这样流量就不会经过Internet,这通常可以解决将内部私有流量的IP地址列入白名单的需求。 SQS and AWS PrivateLink
,我发现对于 SQS(不是 SNS),我可以通过将发件人的 ip 列入白名单来做到这一点。然后我可以做一个 POST 并且它会工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。