2

私のec2インスタンスには次の設定がありますが、うまくいきません。

また、AWS フォーラムにも同じ問題がありますが、回答はありません。

~/.gitconfig:

[credential]
        helper = !aws --region us-east-1 codecommit credential-helper $@
        UseHttpPath = true

EC2 インスタンスの IAM ロール ポリシー:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:*"
      ],
      "Resource": "*"
    }
  ]
}

次に、次のコードが機能します。

echo -e "protocol=https\npath=/v1/repos/my-repo\nhost=git-codecommit.us-east-1.amazonaws.com" | aws --region us-east-1 codecommit credential-helper get

しかし、git ではそうではありません。

git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-repo
Cloning into 'my-repo'...
fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-repo/': The requested URL returned error: 403

何か案は?

アップデート

いくつかの調査の後、アタッチされた IAM ロールは git 操作で機能しないことがわかりましたが、IAM ユーザーは正常に機能しました。

| Type                               | list-repositories | credential-helper | git operation |
| IAM User with CodeCommitFullAccess | OK                | OK                | OK            |
| IAM Role with CodeCommitFullAccess | OK                | OK                | NG            |

次のコマンドを試行します。

  • リストリポジトリ

    aws codecommit list-repositories

  • 資格ヘルパー

    echo -e "protocol=http\npath=/v1/repos/my-repo\nhost=git-codecommit.us-east-1.amazonaws.com" | aws --region=us-east-1 codecommit credential-helper get

  • git操作

    git clone --config credential.helper='!aws --region=us-east-1 codecommit credential-helper $@' --config credential.UseHttpPath=true https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-repo

私のawscliバージョンは次のとおりです。

$ aws --version
aws-cli/1.10.44 Python/2.7.5 Linux/3.10.0-327.10.1.el7.x86_64 botocore/1.4.34

Update2

私のgitとcurlのバージョンは次のとおりです:

$ git --version
git version 1.8.3.1
$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz
4

1 に答える 1

2

少なくとも curl 7.33 以降を使用する必要があります。CodeCommit のドキュメントから:

AWS CodeCommit requires curl 7.33 and later. However, there is a known issue with HTTPS 
and curl update 7.41.0.
于 2016-07-14T22:40:49.893 に答える