【问题标题】:How to add an ACL grantee for an AWS S3 bucket?如何为 AWS S3 存储桶添加 ACL 授权者?
【发布时间】:2023-04-03 03:30:02
【问题描述】:

到目前为止,我可以从 docs 中了解到,您可以获取并放置 S3 存储桶的整个 ACL(访问控制列表)。

获取规格说明您获得了所有现有的资助。

把规范描述你需要写回整个 ACL 对象。

但是如果我只想插入一个新的受助者呢? (最好不要检索 ACL 中的所有授权才能做到这一点)

【问题讨论】:

    标签: amazon-web-services amazon-s3 boto3


    【解决方案1】:

    对我来说,以下工作(仍然不确定是否所有赠款都已转移):

        grant = {
                    'Grantee': {
                        'DisplayName': grantee_id,
                        'ID': grantee_canonical_user_id,
                        'Type': 'CanonicalUser'
    
                    },
                    'Permission': 'FULL_CONTROL'
                }
    
        acl.grants.append(grant)
        acl.put(
            AccessControlPolicy={
            'Grants': acl.grants,
            'Owner': {
                'ID': owner_canonical_user_id
            }
        })
    

    【讨论】:

      【解决方案2】:

      一个完整的例子是这样的:

      s3_resource = boto3.resource('s3')
      s3_bucket = s3_resource.Bucket("bucket_name")
      bucket_acl = s3_bucket.Acl()
      
      grant_write = {
          "Grantee": {
              "ID": "CANONICAL ID",
              "Type": "CanonicalUser"
          },
          "Permission": "WRITE"
      }
      
      grant_read = {
          "Grantee": {
              "ID": "CANONICAL ID",
              "Type": "CanonicalUser"
          },
          "Permission": "READ"
      }
      
      grant_read_acp = {
          "Grantee": {
              "ID": "CANONICAL ID",
              "Type": "CanonicalUser"
          },
          "Permission": "READ_ACP"
      }
      
      bucket_acl.grants.append(grant_write)
      bucket_acl.grants.append(grant_read)
      bucket_acl.grants.append(grant_read_acp)
      s3_acl_response = bucket_acl.put(
          AccessControlPolicy={
          "Grants": bucket_acl.grants,
          "Owner": {
              "DisplayName": "OWNER Account",
              "ID": "OWNER CANONICAL ID"
          }
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-29
        • 2017-01-30
        • 1970-01-01
        • 2022-01-03
        • 2023-01-12
        • 2020-04-09
        • 2017-06-26
        相关资源
        最近更新 更多