AWS S3 - ACL与CORS配置与存储桶/对象权限

时间:2016-09-22 04:00:20

标签: amazon-web-services amazon-s3 cors acl

在配置S3存储桶/对象的访问设置时,似乎访问控制列表(ACL),CORS配置以及每个存储桶和对象的权限都会发挥作用。

有人可以解释这些以及它们如何协同工作的区别吗?

1 个答案:

答案 0 :(得分:1)

S3存储桶策略

它们是配置S3存储桶访问的推荐方法。策略是由语句组成的JSON文档。在每个语句中,您允许拒绝对主体(受策略影响的用户)的动作

访问控制列表

考虑到传统,它们早于存储桶策略的实施,但是它们允许在文件级别设置权限。例如,如果您想限制存储桶中特定文件的访问权限,而不是整个存储桶,则需要使用ACL。

CORS配置

这是一个XML文件,用于配置CORS标头。您可以选择只允许http的某些方法(例如GET和POST)或所有方法。

More details in the AWS Documentation

有关CORS的更多信息:What is CORS?

IAM政策

它们与存储桶策略相似,不同之处在于您将它们附加到用户,组或角色(存储桶除外)上。

冲突

在ACL / IAM策略/桶策略之间发生冲突的情况下,例如,如果“允许”和“拒绝”都应用于相同的资源和用户,则“拒绝”总是获胜。

解决权限的算法基本上是:  -如果存在拒绝,拒绝访问  -如果存在允许,则允许访问  -如果没有任何内容,则默认为拒绝

最佳做法

应用最小特权原则(除非需要,否则不允许访问)。 不建议直接将策略附加到用户,而是创建具有附加权限的组,然后将该用户添加到该组。 例如,您可以拥有一个对S3具有完全访问权限的开发人员组,一个具有只读访问权限的财务组。 如果您需要限制对存储桶的访问,请使用存储桶策略。 仅在需要配置对单个文件的访问权限时才使用ACL。