Windows を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから AWS CodeCommit リポジトリで Git オペレーションを実行したいと考えています。
簡単な説明
AWS コマンドラインインターフェイス (AWS CLI) の認証情報ヘルパーを設定して、AWS CodeCommit リポジトリで Git オペレーションを実行します。その後 Amazon EC2 インスタンスに IAM ロールを作成して、プルアクションおよびプッシュアクションを実行します。
注: 認証情報ヘルパーは、CodeCommit リポジトリにおいて IAM ユーザーを必要としない唯一の接続方法です。
解決方法
注: AWS CLI コマンドの実行中にエラーが発生した場合は、AWS CLIの最新バージョンを使用していることを確認してください。
1. EC2 インスタンスの IAM ロールを作成し、そのロールに次の IAM ポリシーの例をアタッチします。arn:aws:codecommit:us-east-1:111111111111:SampleRepoName を CodeCommit リポジトリの Amazon リソースネーム (ARN) に置き換えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecommit:GitPull",
"codecommit:GitPush"
],
"Resource": "arn:aws:codecommit:us-east-1:111111111111:SampleRepoName"
}
]
}
注: ステップ 1 のポリシーでは、IAM ロールによる CodeCommit リポジトリでの Git のプルアクションおよびプッシュアクションの実行が許可されます。CodeCommit に IAM ポリシーを使用するその他の例については、「CodeCommit でのアイデンティティベースのポリシー (IAM ポリシー) の使用」を参照してください。
2. ステップ 1 で作成した IAM ロールをインスタンスにアタッチします。
3. インスタンスに Git をインストールします。Windows インスタンスの詳細については、Git ウェブサイトの「ダウンロード」を参照してください。
4. Git のバージョンを確認して、Git が正しくインストールされていることを確認します:
C:\Users\Administrator> git --version
5. AWS CLI のバージョンを確認して、AWS CLI がインストールされていることを確認します:
C:\Users\Administrator> aws --version
6. Amazon EC2 インスタンスに認証情報ヘルパーを設定するには、次のコマンドを実行します:
C:\Users\Administrator> git config --global credential.helper "!aws codecommit credential-helper $@"
C:\Users\Administrator> git config --global credential.UseHttpPath true
注: ステップ 6 のコマンドでは、AWS 認証情報プロファイルでの Git 認証情報ヘルパーの使用を指定します。認証情報プロファイルにより、Git は AWS で認証され、CodeCommit リポジトリとのやり取りが許可されます。認証時、Git は HTTPS と暗号署名されたバージョンのインスタンスロールが使用します。
7. 名前とメールアドレスを明示的に設定するには、次のコマンドを実行します:
C:\Users\Administrator> git config --global user.email "testuser@example.com"
C:\Users\Administrator> git config --global user.name "testuser"
8. リポジトリをインスタンスにクローンするには、適切な CodeCommit リポジトリからクローン URL をコピーします:
C:\Users\Administrator> git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/SampleRepoName
9. CodeCommit リポジトリにコミットを作成します。
関連情報
認証情報ヘルパーを設定する
Amazon Linux 2 用の Amazon EC2 インスタンスのインスタンスロールを使用して、AWS CodeCommit リポジトリで Git オペレーションを実行する方法を教えてください。