AWS Codecommit-致命错误:无法访问:请求的URL返回错误:403。

7

在重新安装 aws-cli 后,我无法从我的 AWS CodeCommit 存储库中拉取和/或推送更新。我尝试了所有我能找到的建议解决方案,但似乎都不起作用。

我正在使用 Ubuntu 21.10,并安装了:

$ aws --v
  aws-cli/1.19.1 Python/3.9.7 Linux/5.13.0-41-generic botocore/1.20.0

git version 2.32.0

我遇到的错误是:

fatal: unable to access 'https://git-codecommit.eu-west-2.amazonaws.com/v1/repos/myrepo/': The requested URL returned error: 403

以前它会要求我输入用户名和密码,但是在我尝试解决这个问题后,它完全停止要求我的凭据。无论如何,我确认我使用了正确的凭据。此外,我在AWS上拥有必要的权限。直到几个小时之前,我都成功地拉取和推送更新。

按照大多数在线解决方案的建议,aws凭证助手已经设置好了。更具体地说,我的.gitconfig文件如下:

[user]
    name = My_name
    email = My_email
[credential]
    helper = !aws codecommit credential-helper $@
    UseHttpPath = true

此外,我正确地设置了$ aws configure配置(使用正确的区域)。

运行 $ git config --list --show-origin 命令后,我得到了以下内容:

file:/etc/gitconfig     user.email=My_email
file:/home/f_user/.gitconfig user.name=My_name
file:/home/f_user/.gitconfig user.email=My_email
file:/home/f_user/.gitconfig credential.helper=!aws codecommit credential-helper $@
file:/home/f_user/.gitconfig credential.usehttppath=true

说实话我不知道还可以尝试什么,非常感谢任何帮助!

编辑: 我解决问题的方法是:

  • 从系统中卸载了aws客户端并重新安装并从头开始配置。
  • 克隆了我的IAM帐户并授予了完全的AWSCodeCommit访问权限。

我不确定哪一步解决了问题,可能是第一步。


1
403表示“禁止访问”,即您没有权限。请检查您的权限。请注意,user.nameuser.email不是凭据;您传递给AWS的凭据来自于aws codecommit credential-helper。如果您使用的是macOS,请参阅https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html。 - torek
我已经检查了权限,它们与几天前推送更改时相同。关于凭据,我知道名称和电子邮件不是我需要进行身份验证的凭据。它是用户名和密码,但是命令甚至在这一点上都停止提示我使用我的凭据,这就是为什么这么让人困惑的原因。 - Flora Biletsiou
2
有些东西已经改变了:你向 AWS 提供的凭证,或者 AWS 进行的验证,或者两者都有。使用 VonC 展示的测试 来查看你发送给 AWS 的内容(和/或设置 GIT_TRACE、GIT_PACKET_TRACE、CURL 跟踪等;参见这个问题)。 - torek
我使用了SSH端点而不是HTTPS。这样更简单。 - f01
11个回答

0
我已经为这个问题苦苦挣扎了几个月。今天我发现原来是我的设置有问题。
我的设置是在Windows机器上运行VS Code中的开发容器,使用Docker和WSL集成。我按照所有AWS codecommit的设置命令进行了操作,当然也包括以下步骤:
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true

但是对任何存储库进行git克隆仍然会导致错误:请求的URL返回错误:403。
如果您使用VS Code开发容器,有两个位置存储了一些gitconfig:
/etc/gitconfig
/home/node/.gitconfig

如果你运行:(设置是一个Node.js开发容器,即参见最后一行)。
如果你运行:
git config --list --show-origin

请注意以下几点:
file:/etc/gitconfig         credential.helper=credential.helper=!aws codecommit credential-helper $@
file:/home/node/.gitconfig  credential.helper=!aws codecommit credential-helper $@

在我的情况下,=后面的内容是不同的。修复的方法是手动编辑/etc/gitconfig并给helper键赋予正确的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接