仅从我的EC2实例匿名访问S3存储桶

有没有一种方法可以让一个AWS账户中的我的EC2实例(所有这些实例) 匿名访问某个S3存储桶?

  1. 我知道我可以使用IAMangular色,但是我发现它只是太多的移动部分,并且使得必须使用访问密钥/秘密密钥的任何脚本复杂化(例如,当它改变时改写/ etc / apt / *行)。 更何况没有办法将angular色附加到现有的实例,这使得它更加痛苦。

  2. 也不可能通过使用VPC子网来限制访问,因为S3存储区访问通过公共EC2接口进行。

是的,你有这样一个桶政策:

 { "Version":"2012-10-17", "Statement":[{ "Sid":"AddCannedAcl", "Effect":"Allow", "Principal": { "AWS": ["arn:aws:iam::111122223333:root"] }, "Action":[ "s3:GetObject", "s3:GetObjectAcl" ], "Resource":["arn:aws:s3:::bucket/*"] ] }] } 

111122223333是您的帐户ID

AWS已经为S3访问添加了VPC端点,您可以阅读AWS博客上的新function: https : //aws.amazon.com/blogs/aws/new-vpc-endpoint-for-amazon-s3/

在VPC的私有子网中运行的EC2实例现在可以控制对位于与VPC相同区域的S3存储桶,对象和API函数的访问。 您可以使用S3存储桶策略来指示哪些VPC和哪些VPC端点可以访问您的S3存储桶。

希望有所帮助,

亚伦