我一直试图将S3桶复制引入到现有项目的堆栈中。在在源桶+ s3:PutBucketReplication复制角色上添加复制规则之后,通过CodeBuild/Code管道项目更新我的堆栈时,我一直在CloudFormation中得到一个'API: S3访问拒绝‘错误。为了进行测试,我为所有资源( "*“)向CodeBuild角色添加了完整的S3权限( s3:* ),以及对S3复制角色的完全S3权限--我也得到了相同的结果。
此外,我尝试运行一个独立的、精简的CF模板版本(因此没有更新我现有的应用程序基础结构堆栈),它创建了存储桶(源+目标)和S3复制角色。在通过控制台与我的Admin角色登录时,它是通过CloudFormation部署/运行的,而且与在CodePipeline中使用我的CodeBuild角色进行部署时一样,我也得到了相同的错误。
作为最后一次检查,再次使用我的帐户管理角色登录,我尝试在我使用S3控制台创建的存储桶上手动执行复制设置,并得到以下错误:
您没有更新复制配置的权限,您或AWS管理员必须更新您的IAM权限以允许s3:PutReplicationConfiguration,然后再试一次。了解有关Amazon响应访问拒绝S3中的标识和访问管理的更多信息。

我确认我的角色对所有资源都有完全的S3访问权限。这条消息似乎暗示了权限s3:PutReplicationConfiguration可能与其他S3权限不同--需要配置对帐户的根访问或其他什么吗?
而且,在我看来,奇怪的是,当s3:PutBucketReplication控制台错误引用权限s3:PutReplicationConfiguration.时,CloudFormation指示了S3权限。似乎没有针对s3:PutBucketReplication (ref:https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)的IAM操作,只有s3:PutReplicationConfiguration。
发布于 2021-08-11 20:30:49
事实证明,所需的权限(s3:PutReplicationConfiguration)实际上被设置在AWS帐户中的OU上的一个预防性ControlTower保护轨所阻塞。不幸的是,这种拒绝在AWS帐户中的任何地方都是不可见的,因为它存在于任何权限边界或IAM策略之外。这就需要我们的内部IT团队进行一些调查,以找出来自铁路警卫队的否认消息的来源。
https://docs.aws.amazon.com/controltower/latest/userguide/elective-guardrails.html#disallow-s3-ccr
发布于 2021-08-11 19:36:21
你查过许可边界了吗?这是在公司控制塔还是独立账户?
拒绝总是赢,所以如果您有一个权限边界,它排除了一些操作,即使您已经显式地允许它,您可能会遇到类似这样的问题。
https://stackoverflow.com/questions/68734420
复制相似问题