限制我的 S3 存储桶对其他人运行的 EC2 实例的读取访问权限?

限制我的 S3 存储桶对其他人运行的 EC2 实例的读取访问权限?

例如,如果我以美国标准存储数据,S3 定价页面会显示,传输到北弗吉尼亚地区的 Amazon EC2 每 GB 的费用为 0.00 美元。

看起来每 10,000 个 GET 请求的费用为 0.004 美元。

因此,在我看来,如果我正确设置了我的美国标准区域 S3 规则,并且我的客户在北弗吉尼亚区域正确设置了他们的 EC2 实例,那么 10,000 个 GET 请求总共将花费我 0.004 美元。

(在我的 S3 存储成本之上。)

如果我的客户想要将数据移出 EC2,那么费用是他们的,计费是他们的问题,等等。

那么,S3 存储桶策略和 IAM 策略或甚至旧式 S3 ACL 的哪种组合可以让我实现这一点?

答案1

正确的。

获取 us-east-1(S3 中美国标准区域的所在地)的已发布 IP 网络块列表...

https://forums.aws.amazon.com/ann.jspa?annID=1701

...并使用它来制定存储桶策略,以在源 IP 不在范围内时拒绝请求,或者仅当源 IP 在范围内时允许(最佳选择取决于您的其他策略,因为拒绝将始终、始终、始终覆盖冲突的允许)...

http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

...你应该已经得到你所需要的了。

或者,存在“请求者付费”的概念,其中收费负担留给请求者。

http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html

这意味着您的客户端必须根据他们自己的 AWS 凭证进行身份验证(您可以允许该凭证单独或全局访问您的存储桶,具体取决于您的安全模型)。

或者,根据所讨论的内容,您可以要求客户端按照美国标准创建一个存储桶(通过查询存储/?location桶进行验证;没有约束意味着美国标准),然后您可以将内容推送给他们,所有费用均由他们承担。

相关内容