S3 复制 - s3:PutReplicationConfiguration

问题描述 投票:0回答:3

我一直在尝试将 S3 存储桶复制引入我现有的项目堆栈中。在源存储桶 + S3 复制角色上添加复制规则后,通过 CodeBuild/CodePipeline 项目更新堆栈时,我在 CloudFormation 中不断收到“API: s3:PutBucketReplication 访问被拒绝”错误。为了进行测试,我向所有资源的 CodeBuild 角色 ( "*" ) 添加了完整的 S3 权限 ( s3:* ),以及对 S3 复制角色的完整 S3 权限 - 我再次得到了相同的结果。

此外,我尝试运行一个独立的、精简版本的 CF 模板(因此不更新我现有的应用程序基础设施堆栈)——它创建存储桶(源 + 目标)和 S3 复制角色。它是通过 CloudFormation 部署/运行的,同时通过控制台使用我的管理员角色登录,并且我再次遇到了与在 CodePipeline 中使用我的 CodeBuild 角色尝试部署时相同的错误。

作为最后的健全性检查,再次使用帐户的管理员角色登录,我尝试在使用 S3 控制台创建的存储桶上手动执行复制设置,但出现以下错误:

您无权更新复制配置 您或您的 AWS 管理员必须更新您的 IAM 权限以允许 s3:PutReplicationConfiguration,然后重试。了解有关 Amazon S3 API 响应中的身份和访问管理的更多信息 访问被拒绝

我确认我的角色对所有资源拥有完整的 S3 访问权限。此消息似乎向我暗示,权限 s3:PutReplicationConfiguration 可能与其他 S3 权限有所不同 - 需要配置对帐户的 root 访问权限或其他权限?

此外,对我来说,CloudFormation 指示 s3:PutBucketReplication 权限似乎很奇怪,而 S3 控制台错误引用了 s3:PutReplicationConfiguration 权限。似乎没有针对 s3:PutBucketReplication 的 IAM 操作(参考:https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html),只有 s3:PutReplicationConfiguration。

amazon-s3 amazon-iam
3个回答
1
投票

您检查过权限边界吗?这是在公司控制塔还是独立帐户中?

拒绝总是会获胜,因此如果您的权限边界排除了某些操作,即使您明确允许它,您也可能会遇到这样的问题。


1
投票

事实证明,所需的权限

s3:PutReplicationConfiguration
实际上被预防性 ControlTower Guard Rail 阻止,该防护栏放置在 AWS 账户所在的 OU 上。不幸的是,此 DENY 对于 AWS 内任何位置的用户来说都是不可见的帐户本身 - 因为它存在于任何权限边界或 IAM 策略之外。这需要我们内部 IT 团队进行一些调查,以确定护栏控制拒绝的来源。

参考: https://docs.aws.amazon.com/controltower/latest/userguide/elective-guardrails.html#disallow-s3-ccr


-1
投票

将“iam:passrole”添加到 iam 策略

© www.soinside.com 2019 - 2024. All rights reserved.