AWS CLI 認証情報ヘルパーを使用して Windows で AWS CodeCommit リポジトリへの HTTPS 接続をセットアップする手順
AWS CodeCommit に初めて接続する前に、最初の設定手順を完了する必要があります。ほとんどのユーザーにとっては、これは Git 認証情報を使用した HTTPS ユーザーのセットアップ の手順に従って簡単に行うことができます。ただし、ルートアカウント、フェデレーテッドアクセス、または一時的な認証情報を使用して CodeCommit に接続する場合は、AWS CLI に含まれている認証情報ヘルパーを使用できます。
認証情報ヘルパーは、フェデレーティッドアクセス、ID プロバイダー、または一時的な認証情報を使用して CodeCommit に接続するためにサポートされている方法ですが、git-remote-codecommit ユーティリティをインストールして使用する方法が推奨されます。詳細については、「git-remote-codecommit を使用して AWS CodeCommit への HTTPS 接続をセットアップする手順」を参照してください。
このトピックでは、AWS CLI をインストール後、コンピュータと AWS プロファイルを設定して、CodeCommit リポジトリに接続し、そのリポジトリのクローンをコンピュータに作成する手順 (ローカルリポジトリの作成) について説明します。Git を初めて利用する場合は、「Git の詳細情報」でも情報を確認できます。
トピック
ステップ 1: CodeCommit の初期設定
AWS アカウントをセットアップし、IAM ユーザーを作成および構成し、AWS CLI をインストールするには、次の手順を実行します。AWS CLI には、CodeCommit リポジトリへの HTTPS 接続を構成する認証情報ヘルパーが組み込まれています。
CodeCommit にアクセスするための IAM ユーザーを作成および設定するには
-
AWS アカウントを作成するには、http://aws.amazon.com
にアクセスし、[Sign Up (サインアップ)] を選択します。 -
IAM ユーザーを作成するか、AWS アカウントに関連付けられた既存のユーザーを使用します。アクセスキー ID およびシークレットアクセスキーがその IAM ユーザーに関連付けられていることを確認します。詳細については、「AWS アカウント内での IAM ユーザーの作成」を参照してください。
注記 CodeCommit には AWS Key Management Service が必要です。既存の IAM ユーザーを使用している場合は、CodeCommit で必要な AWS KMS アクションを明示的に拒否するユーザーにポリシーがアタッチされていないことを確認します。詳細については、「AWS KMS および暗号化」を参照してください。
-
AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/
)を開きます。 -
IAM コンソールのナビゲーションペインで、[Users (ユーザー)] を選択し、続いて、CodeCommit へアクセスするために設定する IAM ユーザーを選択します。
-
[Permissions (アクセス許可)] タブで、[Add Permissions (アクセス許可の追加)] を選択します。
-
[Grant permissions (アクセス許可の付与)] で、[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。
-
ポリシーのリストから、CodeCommit にアクセスするために、ポリシーのリストから [AWSCodeCommitPowerUser]、または別の管理ポリシーを選択します。詳細については、「CodeCommit の AWS マネージド (事前定義) ポリシー」を参照してください。
アタッチするポリシーを選択したら、[Next: Review] を選択して、IAM ユーザーにアタッチするポリシーのリストを表示します。リストが正しい場合は、[Add permissions (アクセス許可の追加)] を選択します。
CodeCommit 管理ポリシーや、その他のグループおよびユーザーを含むリポジトリへのアクセス共有の詳細については、「リポジトリの共有」および「AWS CodeCommit の認証とアクセスコントロール」を参照してください。
AWS CLI をインストールして設定するには
-
ローカルマシンで、AWS CLI をダウンロードしてインストールします。これは、コマンドラインから CodeCommit とやり取りするための前提条件です。詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。
注記 CodeCommit は AWS CLI のバージョン 1.7.38 以降 でのみ動作します。ベストプラクティスとして、AWS CLI をインストールするか、利用可能な最新バージョンにアップグレードしてください。インストールした AWS CLI のバージョンを確認するには、aws --version コマンドを実行します。
以前のバージョンの AWS CLI を最新バージョンにアップグレードするには、「AWS Command Line Interface のインストール」を参照してください。
-
このコマンドを実行して、AWS CLI の CodeCommit コマンドがインストールされていることを確認します。
aws codecommit help
このコマンドは CodeCommit コマンドのリストを返します。
-
次のように configure コマンドを使用して、プロファイルを使用して AWS CLI を設定します。
aws configure
プロンプトが表示されたら、CodeCommit で使用する IAM ユーザーの AWS アクセスキーと AWS シークレットアクセスキーを指定します。また、リポジトリが存在する AWS リージョン (
us-east-2
など) を指定します。デフォルトの出力形式の入力を求められたら、json
を指定します。例:AWS Access Key ID [None]:
Type your target AWS access key ID here, and then press Enter
AWS Secret Access Key [None]:Type your target AWS secret access key here, and then press Enter
Default region name [None]:Type a supported region for CodeCommit here, and then press Enter
Default output format [None]:Type
jsonhere, and then press Enter
AWS CLI で使用するプロファイルの作成および設定の詳細については、以下を参照してください。
別の AWS リージョンに存在するリポジトリまたはリソースに接続するには、そのリージョンのデフォルトのリージョン名を使用して AWS CLI を再設定する必要があります。CodeCommit でサポートされるデフォルトのリージョン名は以下のとおりです。
-
us-east-2
-
us-east-1
-
eu-west-1
-
us-west-2
-
ap-northeast-1
-
ap-southeast-1
-
ap-southeast-2
-
eu-central-1
-
ap-northeast-2
-
sa-east-1
-
us-west-1
-
eu-west-2
-
ap-south-1
-
ca-central-1
-
us-gov-west-1
-
us-gov-east-1
-
eu-north-1
-
ap-east-1
-
me-south-1
-
cn-north-1
-
cn-northwest-1
-
eu-south-1
CodeCommit と AWS リージョンの詳細については、「リージョンと Git 接続エンドポイント」を参照してください。IAM、アクセスキー、シークレットキーに関する詳細については、「認証情報を取得する方法」および「IAM ユーザーのアクセスキーの管理」を参照してください。AWS CLI とプロファイルの詳細については、「名前付きプロファイル」を参照してください。
-
ステップ 2: Git をインストールする
CodeCommit のファイル、コミット、およびその他の情報を使用するには、ローカルマシンに Git をインストールする必要があります。CodeCommit は Git バージョン 1.7.9 以降をサポートしています。最新バージョンの Git を使用することをお勧めします。
Git をインストールするには、Git for Windows
-
[Adjusting your PATH environment (PATH 環境の調整)] ステップでプロンプトが表示されたら、[Use Git from the Windows Command Prompt (Windows コマンドプロンプトから Git を使用する)] オプションを選択します。
-
(省略可能) CodeCommit 用の Git 認証情報を設定する代わりに、AWS CLI に含まれている認証情報ヘルパーで HTTPS を使用する場合は、[Configuring extra options (追加のオプションの設定)] ページで、[Enable Git Credential Manager (Git 認証情報マネージャーの有効化)] オプションがオフになっていることを確認します。Git 認証情報マネージャーは、IAM ユーザーが Git 認証情報を設定する場合にのみ、CodeCommit と互換性があります。詳細については、「Git 認証情報を使用した HTTPS ユーザーのセットアップ」および「Git for Windows: Git for Windows をインストールしましたが、リポジトリへのアクセスが拒否されます (403)」を参照してください。
Git は、定期的に更新されている、発展中のプラットフォームです。機能の変更により、CodeCommit での動作が影響を受ける場合があります。特定のバージョンの Git と CodeCommit で問題が発生した場合は、「トラブルシューティング」の情報を確認してください。
ステップ 3: 認証情報ヘルパーをセットアップする
AWS CLI には、CodeCommit で使用できる Git 認証情報ヘルパーが含まれています。Git 認証情報ヘルパーには、AWS 認証情報プロファイルが必要です。このプロファイルには、IAM ユーザーの AWS アクセスキー ID と AWS シークレットアクセスキー (デフォルトの AWS リージョン名とデフォルトの出力形式) のコピーが格納されています。Git 認証情報ヘルパーはこの情報を使用して CodeCommit で自動的に認証するため、Git を使用して CodeCommit とやり取りするたびにこの情報を入力する必要はありません。
-
コマンドプロンプトを開き、Git を使って git config を実行し、Git 認証情報ヘルパーが AWS 認証情報プロファイルで Git 認証情報ヘルパーを使用するように指定すると、Git 認証情報ヘルパーがリポジトリにパスを送信できるようになります。
git config --global credential.helper "!aws codecommit credential-helper $@" git config --global credential.UseHttpPath true
Git 認証情報ヘルパーは、.gitconfig ファイルに次の情報を書き込みます。
[credential] helper = !aws codecommit credential-helper $@ UseHttpPath = true
重要 -
Windows のコマンドラインではなく Bash エミュレーターを使用している場合は、二重引用符ではなく単一引用符を使用する必要があります。
-
認証情報ヘルパーは、デフォルトの AWS プロファイル、または Amazon EC2 インスタンスロールを使用します。
CodeCommitProfile
などの AWS 認証情報プロファイルを作成した場合は、次のようにコマンドを変更して代わりに使用できます。git config --global credential.helper "!aws codecommit credential-helper --profile
CodeCommitProfile
$@"これにより、.gitconfig ファイルに次のように書き込まれます。
[credential] helper = !aws codecommit credential-helper --profile=
CodeCommitProfile
$@ UseHttpPath = true -
プロファイル名にスペースが含まれる場合は、このコマンドを実行した後、.gitconfig ファイルを編集して単一引用符 (') で囲みます。そうしないと、認証情報ヘルパーは動作しません。
-
Git for Windows のインストールに Git 認証情報マネージャーユーティリティが含まれている場合、最初の数回の接続試行後に 認証情報マネージャーユーティリティに認証情報を提供するかどうかを確認する 403 エラーが表示されます。CodeCommit と互換性がないため、この問題を解決する最も確実な方法は、Git 認証情報マネージャーユーティリティのオプションを使用せずに Git for Windows をアンインストールしてから再インストールすることです。Git 認証情報マネージャーユーティリティを保持する場合は、CodeCommit に接続するときに AWS CodeCommit の認証情報ヘルパーの使用を指定するために .gitconfig ファイルを手動で変更することを含め、CodeCommit を使用する追加の構成ステップを実行する必要があります。認証情報マネージャーユーティリティから格納されている資格情報を削除します (このユーティリティはコントロールパネルにあります)。格納されている認証情報を削除した後、以下を .gitconfig ファイルに追加して保存し、新しいコマンドプロンプトウィンドウから再度接続してみてください。
[credential "https://git-codecommit.us-east-2.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true [credential "https://git-codecommit.us-east-1.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
--global または --local の代わりに --system を指定して、git config 設定を再構成する必要がある場合もあります。
-
CodeCommit の同じローカルマシン上の異なる IAM ユーザーを使用する場合は、git config --global の代わりに git config --local を指定し、AWS 認証情報プロファイルごとに構成を実行する必要があります。
-
-
git config --global --edit を実行して、前の値がユーザープロファイルの .gitconfig file (デフォルトでは
%HOME%\.gitconfig
または
) に書き込まれていることを検証します。成功した場合は (Git グローバルコンフィグレーションファイルにすでに存在する値に加えて) 以前の値が表示されます。終了するには、通常、drive
:\Users\UserName
\.gitconfig:q
と入力して [Enter] を押します。
ステップ 4: CodeCommit コンソールに接続し、リポジトリのクローンを作成する
管理者から CodeCommit リポジトリの名前と接続の詳細をすでに受け取っている場合は、このステップをスキップしてリポジトリを直接複製できます。
CodeCommit リポジトリに接続するには
-
https://console.aws.amazon.com/codesuite/codecommit/home
にある CodeCommit コンソールを開きます。 -
リージョンセレクターで、リポジトリが作成された AWS リージョンを選択します。リポジトリは、AWS リージョンに固有のものです。詳細については、「リージョンと Git 接続エンドポイント」を参照してください。
-
接続するリポジトリをリストから見つけて選択します。[クローン URL] を選択してから、リポジトリのクローン作成やリポジトリへの接続時に使用するプロトコルを選択します。これにより、クローン URL が複製されます。
-
IAM ユーザー、または AWS CLI に含まれている認証情報ヘルパーで Git 認証情報を使用している場合は、HTTPS URL をコピーします。
-
ローカルコンピュータで git-remote-codecommit コマンドを使用している場合は、HTTPS (GRC) URL をコピーします。
-
IAM ユーザーで SSH パブリック/プライベートキーペアを使用している場合は、SSH URL をコピーします。
注記 リポジトリのリストではなく [ようこそ] ページが表示される場合、ログインしている AWS リージョンの AWS アカウントに関連付けられているリポジトリはありません。リポジトリを作成するには、「AWS CodeCommit リポジトリを作成する」を参照するか、「Git および CodeCommit の開始方法」チュートリアルのステップに従います。
-
-
コマンドプロンプトを開き、コピーした HTTPS URL で git clone コマンドを実行します。ローカルリポジトリは、そのコマンドを実行したディレクトリのサブディレクトリに作成されます。たとえば、
MyDemoRepo
という名前のリポジトリを 米国東部 (オハイオ) リージョンのmy-demo-repo
というローカルリポジトリに複製するには、次のようにします。git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
Windows の一部のバージョンでは、ユーザー名とパスワードの入力を求めるポップアップメッセージが表示されることがあります。これは Windows 用の組み込みの認証情報管理システムですが、AWS CodeCommit の認証情報ヘルパーと互換性がありません。[Cancel] を選択します。
次のステップ
前提条件を完了しました。「CodeCommit の開始方法 」のステップに従って、CodeCommit の使用を開始してください。