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

CodePipeline无法拉取CodeCommit源码的权限问题求助

问题描述

CodePipeline拉取CodeCommit源码时触发权限错误:

The service role or action role doesn’t have the permissions required to access the AWS CodeCommit repository named defon-liff. Update the IAM role permissions, and then try again. Error: User: arn:aws:sts::665852216333:assumed-role/df-stag-code-adminPipelineRole8AA4BBC2-LGTJJRF5EP4E/1720168399052 is not authorized to perform: codecommit:GetBranch on resource: arn:aws:codecommit:ap-northeast-1:665852216828:defon-liff because no identity-based policy allows the codecommit:GetBranch action

已完成排查:

  • 确认报错角色df-stag-code-adminPipelineRole8AA4BBC2-LGTJJRF5EP4E关联的adminPipelineRoleDefaultPolicyC79967BE策略包含STS AssumeRole权限,允许扮演df-stag-code-adminPipelinedfstagadmionsourcedfstag-1OZJ7LB64WXO2等角色
  • 检查被扮演角色df-stag-code-adminPipelinedfstagadmionsourcedfstag-1OZJ7LB64WXO2关联的adminPipelinedfstagadmionsourcedfstagadminsourceCodePipelineActionRoleDefaultPolicy32499DC6策略,已配置允许对arn:aws:codecommit:ap-northeast-1:665852216333:defon-*资源执行codecommit:GetBranch等操作,但错误仍存在

需解决两个问题:

  1. 如何修复该权限错误?
  2. 错误信息中ARN后缀的1720168399052是什么?是否与问题相关?
解决方案与解释

一、修复权限错误

核心问题是资源ARN的账号ID不匹配:

  • 报错里的CodeCommit资源ARN是arn:aws:codecommit:ap-northeast-1:665852216828:defon-liff,账号ID为665852216828
  • 策略中授权的资源是arn:aws:codecommit:ap-northeast-1:665852216333:defon-*,账号ID为665852216333

两个账号ID不一致,导致策略权限无法覆盖目标仓库。修复步骤:

  1. 进入IAM控制台,找到adminPipelinedfstagadmionsourcedfstagadminsourceCodePipelineActionRoleDefaultPolicy32499DC6策略
  2. 修改资源ARN中的账号ID为665852216828,或根据安全需求使用通配符*匹配账号,示例配置:
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:GetBranch",
        "codecommit:GetCommit",
        "codecommit:GitPull"
        // 按需添加其他必要的CodeCommit操作
      ],
      "Resource": "arn:aws:codecommit:ap-northeast-1:665852216828:defon-*"
    }
    
  3. 保存策略后,重新触发CodePipeline执行,验证错误是否消除

额外检查:确认CodePipeline的Source阶段配置中,是否正确指定了df-stag-code-adminPipelinedfstagadmionsourcedfstag-1OZJ7LB64WXO2作为动作角色,避免CodePipeline直接使用主角色df-stag-code-adminPipelineRole8AA4BBC2-LGTJJRF5EP4E访问CodeCommit(该角色无直接CodeCommit权限)

二、ARN后缀1720168399052的说明

这个数字是STS临时会话的Unix时间戳(转换为北京时间约2024-07-05 08:33:19),用于标识本次角色扮演的临时会话实例。它仅用来区分同一角色的不同会话,和当前权限问题无直接关联,无需对其做任何配置修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:54:51