首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带云表单的非封装ACL S3存储桶

带云表单的非封装ACL S3存储桶
EN

Stack Overflow用户
提问于 2012-05-10 05:18:30
回答 1查看 4.8K关注 0票数 3

在创建S3 Bucket时,是否可以将Authenticated Users组设置为put/delete访问控制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-28 04:14:11

对于Amazon S3的初始和各自受限的Access Control Lists (ACL),这是不可能的,其中只有预定义的Canned ACLs可以与AWS CloudFormation支持的AWS resource types一起使用,请参阅AWS::S3::Bucket资源的属性AccessControl:

对存储桶授予预定义权限的屏蔽访问控制。默认值为Private。有关封装ACL的详细信息,请参阅Canned ACLs in the Amazon S3 documentation

AccessControl的有效值: AuthenticatedRead | AwsExecRead | BucketOwnerRead | BucketOwnerFullControl | LogDeliveryWrite |AccessControl| PublicRead | PublicReadWrite

假设您实际上不想将put/delete权限授予所有 S3用户(这让不知情的S3开发人员感到惊讶的是,Authenticated users组实际上暗示了这一点),而是像大多数用例一样只向您自己(或一组众所周知的)帐户的用户授予put/delete权限,那么您可以通过使用S3 Bucket Policies来实现您的目标。

Example Cases for Amazon S3 Bucket Policies提供了一个示例策略,用于向具有附加限制的多个帐户授予权限,该策略向多个帐户授予PutObject和PutObjectAcl权限,并要求包括公共读取的封装acl -将其剥离到请求的集合并将其转换为CloudFormation模板片段将产生以下大致结果(当然,您需要调整帐户的主体):

代码语言:javascript
复制
"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的特性,以防万一。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10524231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档