gpt4 book ai didi

amazon-s3 - 带 Cloudformation 的非 jar 装 ACL S3 存储桶

转载 作者:行者123 更新时间:2023-12-01 10:06:05 27 4
gpt4 key购买 nike

使用 Cloudformation,您可以在创建 S3 存储桶时将经过身份验证的用户组设置为具有放置/删除访问控制吗?

最佳答案

这对于初始的和分别受限的 Access Control Lists (ACL) 来说是不可能的。的Amazon S3 ,其中只有预定义的 Canned ACLs可与 AWS resource types 一起使用支持AWS CloudFormation依次参见 AWS::S3::Bucket 的属性 AccessControl资源:

A canned ACL that grants predefined permissions on the bucket. Default is Private. For more information about canned ACLs, see Canned ACLs in the Amazon S3 documentation.

Valid values for AccessControl: AuthenticatedRead | AwsExecRead | BucketOwnerRead | BucketOwnerFullControl | LogDeliveryWrite | Private | PublicRead | PublicReadWrite

假设您实际上不想向所有 S3 用户授予放置/删除权限(经过身份验证的用户组实际上暗示了不知情的 S3 开发人员的惊讶) ),但对于大多数用例来说,仅适用于您自己(或一组众所周知的)帐户的用户,您可以通过使用 S3 Bucket Policies 来实现您的目标相反。

Example Cases for Amazon S3 Bucket Policies提供向多个帐户授予权限并添加限制的示例策略,该策略向多个帐户授予 PutObject 和 PutObjectAcl 权限,并要求包含公开读取的预设 acl -将其剥离到请求的集合并将其转换为 CloudFormation 模板片段将产生大约以下结果(当然,您需要将 Principal 调整为您的帐户):

"Resources" : {
"S3Bucket" : {
"Type" : "AWS::S3::Bucket"
},
"BucketPolicy" : {
"Type" : "AWS::S3::BucketPolicy",
"Properties" : {
"PolicyDocument": {
"Id" : "Grant access to all account users",
"Statement" : [{
"Sid" : "PutObjectAccess",
"Action" : ["s3:PutObject"],
"Effect" : "Allow",
"Resource" : { "Fn::Join" : ["", ["arn:aws:s3:::", {"Ref" : "S3Bucket"} ]]},
"Principal" : { "AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"] }
}]
},
"Bucket" : {"Ref" : "S3Bucket"}
}
},
},

请注意 Using ACLs and Bucket Policies Together 的特殊性以防万一。

关于amazon-s3 - 带 Cloudformation 的非 jar 装 ACL S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com