以下是在 A 存储桶的 cfn 模板中设置存储桶策略的示例。
"mybucketpolicy" : {
"Type" : "AWS::S3::BucketPolicy",
"Properties" : {
"PolicyDocument" : {
"Id" : "MyPolicy",
"Statement" : [ {
"Sid" : "ReadAccess",
"Action" : [ "s3:GetObject" ],
"Effect" : "Allow",
"Resource" : { "Fn::Join" : [
"", [ "arn:aws:s3:::", { "Ref" : "mybucket" } , "/*" ]
] },
"Principal" : {
"AWS" : { "Fn::GetAtt" : [ "mygroup", "Arn" ] }
}
} ]
},
"Bucket" : { "Ref" : "mybucket" }
}
}
}
如果我想将策略应用于除 mybucket 之外的另一个存储桶,我该怎么做?
我一定要吗:
- 创建一个全新的bucketpolicy,让我们说'mybucketpolicy2',它与上面的非常相似?
- 只需使用新的存储桶名称在上面的“语句”数组中再添加一项?如果是,那么这将与上面的“Bucket”键冲突,不是吗?
- 其他方式?
PS:我在 aws cfn 论坛上问过同样的问题,但我意识到我在 SO 上比在 aws 论坛上更快地得到答案。