【问题标题】:what does s3:x-amz-acl with a value of "bucket-owner-full-control" do/mean?值为“bucket-owner-full-control”的 s3:x-amz-acl 是什么意思?
【发布时间】:2019-02-19 14:05:01
【问题描述】:

我一直在存储桶策略示例中看到这一点,但我不知道它是什么

"Condition": {
    "StringEquals": {
        "s3:x-amz-acl": "bucket-owner-full-control"
    }

这是否意味着用户必须添加具有值“bucket-owner-full-control”的标头“s3:x-amz-acl”?这是执行实际的 acl 还是任意的?它可以是任何标题和字符串,还是对 s3:x-amz-acl 和 bucket-owner-full-control 有重要意义?

【问题讨论】:

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


    【解决方案1】:

    此策略 sn-p 要求请求包含标准 ACL 的规范,使用标头 x-amz-acl(不区分大小写),值为 bucket-owner-full-control

    此条件的约束通常用于确保对象的所有者(始终是上传用户,不一定是存储桶的所有者)不能创建存储桶所有者无法读取的对象( “完全控制”是一个不幸的用词不当,因为存储桶拥有者已经可以删除外部对象,尽管这样不能进一步委派对象的权限)。

    但这不是任意的。

    具体来说:s3:x-amz-acl 是一个 S3-specific IAM policy condition key,其名称恰好与其匹配的标头相同。

    这不是任意的标头匹配,尽管这种功能有时可能很方便。大多数其他 HTTP 标头不受政策条件的约束,您不能使用,例如s3:x-random-http-header 条件。

    global condition keysaws:SecureTransport 可用于拒绝未使用 HTTPS 的请求,aws:UserAgent 可根据 HTTP User-Agent 标头进行评估,但请注意记录在案的警告,即此 “不应用于防止未经授权的各方直接提出 AWS 请求”,因为它很容易被用户代理伪造。否则,允许/拒绝与标头相关的请求的选项不多。

    与条件键不同,值字符串 bucket-owner-full-control 实际上并未在策略中验证,因为它只是一个字符串,但如果您不指定有效值,它将永远不会匹配。

    【讨论】:

      【解决方案2】:

      根据this documentation,BucketOwnerFullControl的用途如下:

      指定存储桶的所有者被授予 Permission.FullControl。桶的所有者不一定与对象的所有者相同。

      主要用例是用户 A 将对象放入用户 B 拥有的存储桶中,这定义了存储桶所有者(用户 B)的权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-01
        • 1970-01-01
        • 2014-01-21
        • 2019-10-27
        • 2020-08-19
        • 1970-01-01
        • 2021-03-21
        • 2015-03-24
        相关资源
        最近更新 更多