S3请求者支付设置通过策略禁用单个ARN



我有一个启用了请求者付费设置的S3桶,对于单个用户ARN或角色,我想通过S3策略禁用此设置,可以这样做吗?我不想为任何其他对象或用户禁用Requester Pays设置,只想为单个用户/角色禁用。我也不想在第二个桶中存储重复的数据。

理想情况下,我正在寻找这样的东西:

{
"Sid": "DisableRequestorPays",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::123:user/data",
"arn:aws:iam::123:role/data"
]
},
"Condition": {
"Bool": {
"aws:RequesterPays":"false"
}
},
"Resource": "arn:aws:s3:::s3bucket"
}

不,请求者支付设置适用于整个桶。不能有条件地将设置应用于单个对象或特定用户/请求者。根据文档:

只能在桶级设置请求者付费。您不能为bucket中的特定对象设置Requester Pays。

如果您不希望请求者为某些对象付费,则需要将这些对象存储在没有应用请求者付费策略的不同桶中。


一个可能的解决方案可能是允许指定的用户/角色承担驻留在桶所有者帐户中的跨帐户角色。这样,用户/角色可以访问桶,但使用所有者的帐户来支付请求。

例如:

  1. 在桶所有者的帐户(您的帐户)中创建IAM角色
  2. 您允许来自另一个帐户的data用户主体访问您创建的角色。
  3. data用户使用假设角色操作获取桶所有者帐户中角色的凭据,并使用这些凭据访问S3桶
  4. 桶所有者帐户,而不是data用户主体的帐户,将为请求收取费用

相关内容

最新更新