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

AWS CloudFormation访问S3返回403:CodePipeline GenerateChangeSet阶段失败

CodePipeline GenerateChangeSet阶段S3访问403问题常见诱发原因

对应报错信息:

Action execution failed
Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 40P7HSHQGWXSRA72; S3 Extended Request ID: I6hiCC7xx+YmnQMLfUnMzZziLDz/5b8uJWzOqWNZwSiVRCS14Q6UyVfss6q80teO5MAGuR9Xft4=; Proxy: null)

常见诱发原因及排查方向

  • S3桶策略/访问限制优先级高于IAM角色权限
    即使CloudFormation执行角色配置了S3全权限,只要S3桶本身的桶策略存在拒绝规则(比如限制访问源IP、VPC,或者明确拒绝该角色ARN的访问),就会返回403。另外如果桶启用了KMS默认加密,还需要确认CloudFormation角色同时拥有对应KMS密钥的kms:Decrypt权限,缺少密钥权限也会被判定为访问拒绝。
  • 访问身份与预期不符
    CodeStar自动生成的流水线中,GenerateChangeSet阶段拉取S3产物的身份可能不是CloudFormation执行角色,而是CodePipeline本身的服务角色。需要同步检查CodePipeline服务角色是否配置了产物桶的读取权限。
  • 对象所有权与ACL限制
    如果S3桶启用了ACL访问控制,CodePipeline上传的产物对象默认归属可能与桶拥有者不一致,即使角色有权限也无法读取。可以将桶的对象所有权规则修改为「桶拥有者首选」,或者检查产物对象的ACL是否开放了读取权限给CloudFormation角色。
  • 组织级SCP策略拦截
    如果账号归属AWS Organizations组织管理,需要确认组织的服务控制策略(SCP)没有禁止对应角色访问S3。SCP的限制优先级高于账号内的IAM权限,即使账号内给了S3全权限,SCP的拒绝规则依然会生效。
  • IAM权限路径匹配错误
    核对IAM策略中的S3资源ARN是否匹配实际的产物路径,比如策略仅配置了s3://bucket-name/*但实际产物路径是带特殊前缀的s3://bucket-name/codestar/xxx/artifact.zip,如果通配符匹配规则写错也会触发权限拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:57:00