S3 复制 - s3:PutReplicationConfiguration
S3 Replication - s3:PutReplicationConfiguration
我一直在尝试将 S3 存储桶复制引入我现有项目的堆栈中。在源存储桶 + S3 复制角色上添加复制规则后,通过我的 CodeBuild/CodePipeline 项目更新我的堆栈时,我在 CloudFormation 中不断收到 'API: s3:PutBucketReplication Access Denied' 错误。为了进行测试,我已将完整的 S3 权限 ( s3:* ) 添加到所有资源 ( "*" ) 的 CodeBuild 角色,以及对 S3 复制角色的完整 S3 权限——我再次得到了相同的结果。
此外,我尝试了 运行 一个独立的精简版本的 CF 模板(因此不更新我现有的应用程序基础架构堆栈)- 创建存储桶(源 + 目标)和 S3 复制角色。 deployed/run 通过 CloudFormation,同时通过控制台以我的管理员角色登录,我再次遇到了与在 CodePipeline 中尝试使用我的 CodeBuild 角色进行部署时相同的错误。
作为最后的完整性检查,再次使用我的帐户管理员角色登录,我尝试在使用 S3 控制台创建的存储桶上手动执行复制设置,但出现以下错误:
您无权更新复制配置
您或您的 AWS 管理员必须更新您的 IAM 权限以允许 s3:PutReplicationConfiguration,然后重试。详细了解 Amazon S3 中的身份和访问管理 API 响应
拒绝访问
我确认我的角色对所有资源具有完整的 S3 访问权限。这条消息似乎向我暗示权限 s3:PutReplicationConfiguration 可能与其他 S3 权限不同 - 需要配置对帐户的根访问权限或其他什么?
此外,CloudFormation 指示 s3:PutBucketReplication 权限对我来说似乎很奇怪,而 S3 控制台错误引用权限 s3:PutReplicationConfiguration。 s3:PutBucketReplication(参考:https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)似乎只有 s3:PutReplicationConfiguration.
没有 IAM 操作
你检查过权限边界了吗?这是在公司控制塔还是独立帐户中?
拒绝总是获胜,所以如果您的权限边界排除了某些操作,即使您已明确允许它,您也可能 运行 遇到这样的问题。
事实证明,所需的权限 (s3:PutReplicationConfiguration) 实际上被设置在 AWS 帐户所在的 OU 上的预防性 ControlTower Guard Rail 阻止。不幸的是,此 DENY 不可见来自 AWS 账户内任何位置的用户,因为它存在于任何权限边界或 IAM 策略之外。这需要我们的内部 IT 团队进行一些调查,以确定来自护栏控制的 DENY 来源。
https://docs.aws.amazon.com/controltower/latest/userguide/elective-guardrails.html#disallow-s3-ccr
我一直在尝试将 S3 存储桶复制引入我现有项目的堆栈中。在源存储桶 + S3 复制角色上添加复制规则后,通过我的 CodeBuild/CodePipeline 项目更新我的堆栈时,我在 CloudFormation 中不断收到 'API: s3:PutBucketReplication Access Denied' 错误。为了进行测试,我已将完整的 S3 权限 ( s3:* ) 添加到所有资源 ( "*" ) 的 CodeBuild 角色,以及对 S3 复制角色的完整 S3 权限——我再次得到了相同的结果。
此外,我尝试了 运行 一个独立的精简版本的 CF 模板(因此不更新我现有的应用程序基础架构堆栈)- 创建存储桶(源 + 目标)和 S3 复制角色。 deployed/run 通过 CloudFormation,同时通过控制台以我的管理员角色登录,我再次遇到了与在 CodePipeline 中尝试使用我的 CodeBuild 角色进行部署时相同的错误。
作为最后的完整性检查,再次使用我的帐户管理员角色登录,我尝试在使用 S3 控制台创建的存储桶上手动执行复制设置,但出现以下错误:
您无权更新复制配置 您或您的 AWS 管理员必须更新您的 IAM 权限以允许 s3:PutReplicationConfiguration,然后重试。详细了解 Amazon S3 中的身份和访问管理 API 响应 拒绝访问
我确认我的角色对所有资源具有完整的 S3 访问权限。这条消息似乎向我暗示权限 s3:PutReplicationConfiguration 可能与其他 S3 权限不同 - 需要配置对帐户的根访问权限或其他什么?
此外,CloudFormation 指示 s3:PutBucketReplication 权限对我来说似乎很奇怪,而 S3 控制台错误引用权限 s3:PutReplicationConfiguration。 s3:PutBucketReplication(参考:https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)似乎只有 s3:PutReplicationConfiguration.
没有 IAM 操作你检查过权限边界了吗?这是在公司控制塔还是独立帐户中?
拒绝总是获胜,所以如果您的权限边界排除了某些操作,即使您已明确允许它,您也可能 运行 遇到这样的问题。
事实证明,所需的权限 (s3:PutReplicationConfiguration) 实际上被设置在 AWS 帐户所在的 OU 上的预防性 ControlTower Guard Rail 阻止。不幸的是,此 DENY 不可见来自 AWS 账户内任何位置的用户,因为它存在于任何权限边界或 IAM 策略之外。这需要我们的内部 IT 团队进行一些调查,以确定来自护栏控制的 DENY 来源。
https://docs.aws.amazon.com/controltower/latest/userguide/elective-guardrails.html#disallow-s3-ccr