在AWS website上,它建议使用以下存储桶策略将S3存储桶公开:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::example-bucket/*"
]
}
]
}
它之间的区别是什么,只是通过访问控制列表设置它?
答案 0 :(得分:15)
底线:1)访问控制列表(ACL)是遗留的(但不是已弃用),2)AWS建议使用bucket / IAM策略,3)ACL控制存储桶和对象,策略仅在存储桶中水平。
通过考虑以下因素来决定使用哪个:(如John Hanley所述below,可以应用多种类型,并且最多限制性/最低权限权限将适用。)< / p>
如果您要执行以下操作,请使用S3存储桶策略:
如果您愿意,请使用IAM政策:
如果您想要使用ACL:
答案 1 :(得分:4)
如果要对存储桶中的各个对象实施细粒度控制,请使用ACL。如果要实现全局控制,例如将整个存储桶公开,请使用策略。
ACL是S3中的第一个授权机制。存储桶策略是较新的方法,也是几乎所有AWS服务使用的方法。策略可以实现非常复杂的规则和权限,ACL很简单(它们具有ALLOW但没有DENY)。要管理S3,您需要对两者都有充分的了解。
当您实施ACL和策略时,会发生真正的复杂情况。最终权限集将是两者的最小权限联盟。
答案 2 :(得分:4)
AWS概述了不同访问策略选项here
的特定用例他们布置...