如何限制出站EC2只访问S3?

我想限制EC2实例的出站安全组。 实例只需要访问S3存储桶。 我刚刚了解到S3使用端口HTTPS(443)。 我可以把这个规则放在适当的位置,以允许任何连接到任何ip,只要它是HTTPS,但是有可能只允许EC2实例访问S3? 有没有连接到S3存储桶的ip或者我可以设置一个?

有可能只允许EC2实例访问S3? 有没有连接到S3存储桶的ip或者我可以设置一个?

S3使用很多IP。 我怀疑要列出所有这些名单是很困难的。 另外,没有IP到桶的映射,你不可能为一个桶指定一个IP。 S3是AWS运行的托pipe服务 ,他们完全可以完全控制其服务的IP地址使用情况。

如果您需要在此级别进行过滤,最简单的方法是使用具有默认拒绝ACL的正向代理(如squid),然后只允许访问S3域。

您可能想在这里使用VPC端点。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html

“通过VPC端点,您可以在VPC和其他AWS服务之间创build私有连接,而不需要通过Internet,NAT实例,VPN连接或AWS Direct Connect进行访问。端点是虚拟设备,它们是横向扩展的,冗余的,以及高度可用的VPC组件,可在您的VPC和AWS服务中的实例之间进行通信,而不会对networkingstream量施加可用性风险或带宽限制。

AWS通过JSON提供其公有IP范围的列表。 (也许其他格式也是如此,但我不确定。)构build一个工具来确保JSON被parsing,并且适当的防火墙规则应该是相对简单的。 请参阅以下博客文章以获取更多信息。 🙂

https://aws.amazon.com/blogs/aws/aws-ip-ranges-json/