我需要启动一个S3存储桶,以便我的EC2实例可以访问存储图像文件.EC2实例需要读/写权限.我不想让S3存储桶公开,我只希望EC2实例能够访问它.
另一个问题是我的EC2实例正在由OpsWorks管理,我可以根据负载/使用情况启动不同的实例.如果我通过IP限制它,我可能并不总是知道EC2实例具有的IP.我可以通过VPC限制吗?
我是否必须为静态网站托管启用我的S3存储桶?我是否需要公开存储桶中的所有文件以使其正常工作?
您不需要将存储桶公开读取,也不需要将文件公共可读.桶和它的内容可以保密.
不要基于IP地址限制对存储桶的访问,而是根据EC2实例正在使用的IAM角色对其进行限制.
为EC2实例创建IAM EC2实例角色.
使用该角色运行EC2实例.
为此IAM角色提供访问S3存储桶的策略.
例如:
{ "Version": "2012-10-17", "Statement":[{ "Effect": "Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::my_bucket", "arn:aws:s3:::my_bucket/*"] } ] }
如果要限制对存储桶本身的访问,请尝试使用S3存储桶策略.
例如:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::111122223333:role/my-ec2-role"] }, "Action": "s3:*", "Resource": ["arn:aws:s3:::my_bucket", "arn:aws:s3:::my_bucket/*"] } ] }
其他信息:http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc