Amazon Linux 2 用の Amazon EC2 インスタンスでインスタンスロールを使用して AWS CodeCommit リポジトリで Git オペレーションを実行するにはどうすればよいですか?

最終更新日: 2020 年 10 月 20 日

Amazon Linux 2 用の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでインスタンスロールを使用して AWS CodeCommit リポジトリで Git オペレーションを実行したいと考えています。

簡単な説明

AWS コマンドラインインターフェイス (AWS CLI) 認証情報ヘルパーを使用して、EC2 インスタンスの AWS Identity and Access Management (IAM) ロールを使用して CodeCommit リポジトリで Git オペレーションを実行できます。

注: 認証情報ヘルパーの使用は、IAM ユーザーを必要としない CodeCommit リポジトリの唯一の接続方法です。

解決方法

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

1.    EC2 インスタンスの IAM ロールを作成し、次の IAM ポリシーの例をロールにアタッチします。arn:aws:codecommit:us-east-1:111111111111:testrepo を、CodeCommit リポジトリの ARN に置き換えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
       
            "codecommit:GitPull",
                "codecommit:GitPush"
            ],
            "Resource": "arn:aws:codecommit:us-east-1:111111111111:testrepo"
 
          }
    ]
}

注: ステップ 1 のポリシーでは、IAM ロールが CodeCommit リポジトリで Git のプルアクションとプッシュアクションを実行できます。CodeCommit に IAM ポリシーを使用する例の詳細については、CodeCommit に ID ベースのポリシー (IAM ポリシー) を使用するを参照してください。

2.    ステップ 1 で作成した IAM ロールを EC2 インスタンスにアタッチします。

3.    EC2 インスタンスに Git をインストールします。

注: 詳細については、Git ウェブサイトの Downloads を参照してください。

4.    EC2 インスタンスで認証情報ヘルパーをセットアップするには、次のコマンドを実行します。

$ git config --global credential.helper '!aws codecommit credential-helper $@'
$ git config --global credential.UseHttpPath true

注: ステップ 4 のコマンドは、AWS 認証情報プロファイルで Git 認証情報ヘルパーの使用を指定します。認証情報プロファイルにより、Git は、CodeCommit リポジトリとやり取りするために AWS での認証が必要となるたびに、HTTPS と暗号化で署名されたバージョンの EC2 インスタンスロールを使用できます。

5.    名前と電子メールアドレスを明示的に設定するには、次のコマンドを実行します。

$ git config --global user.email "testuser@example.com"
$ git config --global user.name "testuser"

注: 名前とメールアドレスは、ユーザー名とホスト名に基づいて自動的に設定されます。

6.    リポジトリを EC2 インスタンスにクローンするには、次のコマンドを実行します。

$ git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/testrepo

7.    CodeCommit リポジトリにコミットを作成します。

注: Windows を使用している場合は、AWS CLI 認証情報ヘルパーを使用して、Windows 上の AWS CodeCommit リポジトリへの HTTPS 接続のセットアップ手順を参照してください。