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

切换IAM角色后git-remote-codecommit访问CodeCommit遇403错误求助

解决CodeCommit HTTPS Git克隆403错误(使用带MFA的IAM角色)

你的问题核心是Git的CodeCommit HTTPS凭证助手默认不会自动识别需要切换角色+MFA的AWS CLI配置文件,导致克隆时未使用Admin角色的权限,返回403。以下是几种实用的解决方式:

方法一:手动获取临时凭证并设置环境变量

  1. 先通过AWS CLI获取Admin角色的临时凭证,输入MFA令牌完成验证:
aws sts assume-role --role-arn arn:aws:iam::123456:role/AdminAccess --role-session-name git-codecommit --serial-number arn:aws:iam::123456:mfa/s.parthiva --token-code <你的MFA令牌>

执行后会返回包含AccessKeyId、SecretAccessKey、SessionToken的JSON结果。

  1. 将临时凭证设置为环境变量(Git凭证助手会读取这些变量):
export AWS_ACCESS_KEY_ID=<返回的临时AccessKeyId>
export AWS_SECRET_ACCESS_KEY=<返回的临时SecretAccessKey>
export AWS_SESSION_TOKEN=<返回的临时SessionToken>
  1. 执行Git克隆命令:
git clone codecommit::eu-central-1://test-repo

方法二:配置Git直接使用Admin配置文件(利用AWS CLI凭证缓存)

  1. 配置Git的凭证助手关联Admin配置文件:
git config --global credential.helper '!aws codecommit credential-helper --profile admin $@'
git config --global credential.UseHttpPath true
  1. 触发AWS CLI缓存Admin角色的临时凭证(需要输入MFA令牌):
aws s3 ls --profile admin

验证成功后,AWS CLI会自动缓存临时凭证(默认有效期1小时)。

  1. 直接执行Git克隆命令即可:
git clone codecommit::eu-central-1://test-repo

注意事项

  • 确保你的IAM用户parthiva所在用户组拥有sts:AssumeRole权限,且目标Admin角色的信任策略允许该用户/用户组切换(你当前的配置能执行aws s3 ls --profile admin,说明这部分是正常的)。
  • 临时凭证过期后,需要重新触发MFA验证来获取新的凭证缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:17:43