You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过S3策略为单个ARN禁用Requester Pays设置?

关于S3 Requester Pays针对单个用户/角色禁用的可行性解答

结论先行:你无法通过S3策略直接为单个用户/角色“禁用”桶的Requester Pays设置,因为Requester Pays是桶级别的全局配置,一旦启用,其规则会作用于所有请求,无法通过策略针对特定身份单独覆盖。下面分情况说明具体逻辑和可行方案:

核心规则梳理

当S3桶启用Requester Pays后:

  • 桶所有者(即创建桶的AWS账户)及其下属的所有IAM用户/角色,访问桶时默认由账户承担请求和下载费用,无需额外发送x-amz-request-payer: requester请求头。
  • 其他AWS账户的用户/角色访问桶时,必须在请求中携带x-amz-request-payer: requester头,自行承担所有费用,否则请求会被AWS直接拒绝,不会进入桶策略评估环节。

你提供的策略问题分析

你给出的策略无法实现需求,原因如下:

  1. aws:RequesterPays条件键仅用于检查请求是否携带了请求者付费头,无法覆盖桶级的Requester Pays设置。非桶所有者的请求如果不携带该头,会被AWS直接拦截,根本到不了策略评估这一步。
  2. 策略仅指定了桶作为资源,未包含桶内对象(arn:aws:s3:::s3bucket/*),即使策略生效,用户也无法访问桶内的文件。

针对不同场景的可行方案

场景1:目标用户/角色属于你的AWS账户(桶所有者账户)

无需额外配置策略,默认这些身份访问桶时就由你的账户承担费用。如果之前有限制这些用户访问的规则,只需确保桶策略或IAM策略授予他们必要的权限(如s3:GetObject、s3:ListBucket)即可,示例策略如下:

{
    "Sid": "AllowInternalUserAccess",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::123:user/data",
            "arn:aws:iam::123:role/data"
        ]
    },
    "Action": [
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": [
        "arn:aws:s3:::s3bucket",
        "arn:aws:s3:::s3bucket/*"
    ]
}

场景2:目标用户/角色属于其他AWS账户

无法让这类用户以桶所有者付费的方式访问,必须要求他们自行承担费用。你能做的是通过桶策略授予他们访问权限,并强制他们携带请求者付费头,示例策略如下:

{
    "Sid": "AllowCrossAccountUserAccess",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::456:user/external-data",
            "arn:aws:iam::456:role/external-data"
        ]
    },
    "Action": [
        "s3:GetObject",
        "s3:ListBucket"
    ],
    "Resource": [
        "arn:aws:s3:::s3bucket",
        "arn:aws:s3:::s3bucket/*"
    ],
    "Condition": {
        "StringEquals": {
            "s3:x-amz-request-payer": "requester"
        }
    }
}

总结

  • 同一账户内的用户/角色默认不受Requester Pays的付费限制,无需额外“禁用”操作。
  • 跨账户用户无法通过策略豁免付费要求,必须自行承担访问费用。
  • 桶级的Requester Pays设置无法通过策略针对单个身份修改,只能通过权限控制规范访问方式。

内容的提问来源于stack exchange,提问作者pyCthon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:56:12