メニュー
AWS CodeCommit
ユーザーガイド (API Version 2015-04-13)

AWS CLI 認証情報ヘルパーを使用して Windows 上で AWS CodeCommit リポジトリへの HTTPS 接続の設定手順

AWS CodeCommit に初めて接続する前に、最初の設定手順を完了する必要があります。ほとんどのユーザーにとっては、これは Git 認証情報を使用する HTTPS ユーザー用 の手順に従って簡単に行うことができます。ただし、ルートアカウント、フェデレーテッドアクセス、または一時クレデンシャルを使用して AWS CodeCommit に接続する場合は、AWS CLI に含まれている認証情報ヘルパーを使用する必要があります。

このトピックでは、AWS CLI をインストールし、コンピュータと AWS プロファイルを設定し、AWS CodeCommit リポジトリに接続し、そのリポジトリをコンピュータにクローンする手順 (ローカルリポジトリの作成) について説明します。Git を初めて利用する場合は、Git について の情報を確認することもできます。

ステップ 1: AWS CodeCommit の初期設定

AWS アカウントをセットアップし、IAM ユーザーを作成および構成し、AWS CLI をインストールするには、次の手順を実行します。AWS CLI には、AWS CodeCommit リポジトリへの HTTPS 接続を構成する認証情報ヘルパーが組み込まれています。

IAM ユーザーを作成および設定して AWS CodeCommit にアクセスするには

  1. AWS アカウントを作成するには、「http://aws.amazon.com」にアクセスし、[Sign Up] を選択します。

  2. IAM ユーザーを作成するか、AWS アカウントに関連付けられた既存のユーザーを使用します。アクセスキー ID およびシークレットアクセスキーがその IAM ユーザーに関連付けられていることを確認します。詳細については、「AWS アカウントの IAM ユーザーの作成」を参照してください。

    注記

    AWS CodeCommit には AWS Key Management Service が必要です。既存の IAM ユーザーを使用している場合は、AWS CodeCommit で必要な AWS KMS アクションを明示的に拒否するユーザーにポリシーがアタッチされていないことを確認します。詳細については、「AWS KMS および暗号化」を参照してください。

  3. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  4. IAM コンソールのナビゲーションペインで、[Users] を選択し、続いて、AWS CodeCommit へアクセスするために設定する IAM ユーザーを選択します。

  5. [Grant permissions] の [Permissions] タブで、[Attach existing policies directly to user] を選択します。

  6. AWS CodeCommit にアクセスするために、ポリシーのリストから [AWSCodeCommitFullAccess]、または別の管理ポリシーを選択します。AWS CodeCommit の管理ポリシーの詳細については、「AWS CodeCommit 用の管理ポリシー」を参照してください。

    • Git 認証情報を使用して AWS CodeCommit に接続するには、[IAMSelfManageServiceSpecificCredentials] および [IAMReadOnlyAccess] の管理ポリシーを選択します。

    • SSH を使用して AWS CodeCommit に接続するには、[IAMUserSSHKeys] および [IAMReadOnlyAccess] の管理ポリシーを選択します。

    アタッチするポリシーを選択したら、[ Next: Review] を選択して、IAM ユーザーにアタッチするポリシーのリストを表示します。リストが正しい場合は、[Add permissions] を選択します。

    AWS CodeCommit 管理ポリシーや、その他のグループおよびユーザーを含むリポジトリへのアクセス共有については、「リポジトリの共有」および「アクセス権限リファレンス」を参照してください。

AWS CLI をインストールして設定するには

  1. ローカルマシンで、AWS CLI をダウンロードしてインストールします。これは、コマンドラインから AWS CodeCommit とやり取りするための前提条件です。詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。

    注記

    AWS CodeCommit は AWS CLI のバージョン 1.7.38 and later でのみ動作します。インストールした AWS CLI のバージョンを確認するには、aws --version コマンドを実行します。

    古いバージョンの AWS CLI を最新のバージョンにアップグレードするには、「AWS CLI のアンインストール」の指示に従ってから、「AWS Command Line Interface のインストール」の指示に従います。

  2. このコマンドを実行して、AWS CLI の AWS CodeCommit コマンドがインストールされていることを確認します。

    Copy
    aws codecommit help

    このコマンドは AWS CodeCommit コマンドのリストを返します。

  3. 以下のように、configure コマンドを使用して AWS CLI を設定します。

    Copy
    aws configure

    プロンプトが表示されたら、AWS CodeCommit で使用する IAM ユーザーの AWS アクセスキーと AWS シークレットアクセスキーを指定します。また、リポジトリが存在するリージョン (us-east-2 など) を指定します。デフォルトの出力形式の入力を求められたら、json を指定します。(例:

    Copy
    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 AWS CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    別のリージョンに存在するリポジトリまたはリソースに接続するには、そのリージョンのデフォルトのリージョン名を使用して AWS CLI を再設定する必要があります。AWS CodeCommit でサポートされるデフォルトのリージョン名は以下のとおりです。

    • us-east-1

    • us-east-2

    • eu-west-1

    • us-west-2

    AWS CodeCommit とリージョンの詳細については、「リージョンと Git 接続エンドポイント」を参照してください。IAM、アクセスキー、シークレットキーの詳細については、「認証情報を取得する方法」と「IAM ユーザーのアクセスキーの管理」を参照してください。

ステップ 2: Git をインストールする

To work with files, commits, and other information in AWS CodeCommit repositories, you must install Git on your local machine. AWS CodeCommit supports Git versions 1.7.9 and later.

To install Git, we recommend websites such as Git for Windows. If you use this link to install Git, you can accept all of the installation default settings except for the following:

注記

Git is an evolving, regularly updated platform. Occasionally, a feature change might affect the way it works with AWS CodeCommit. If you encounter issues with a specific version of Git and AWS CodeCommit, review the information in トラブルシューティング.

ステップ 3: 認証情報ヘルパーを設定する

AWS CLI には、AWS CodeCommit で使用できる Git 認証情報ヘルパーが含まれています。Git 認証情報ヘルパーには、IAM ユーザーの AWS アクセスキー ID と AWS シークレットアクセスキー (デフォルトのリージョン名とデフォルトの出力形式) のコピーが格納された AWS 認証情報プロファイルが必要です。Git 認証情報ヘルパーはこの情報を使用して AWS CodeCommit で自動的に認証しますので、Git を使用して AWS CodeCommit とやり取りするたびにこの情報を入力する必要はありません。

  1. コマンドプロンプトを開き、Git を使って git config を実行し、Git 認証情報ヘルパーが AWS 認証情報プロファイルで Git 認証情報ヘルパーを使用するように指定すると、Git 認証情報ヘルパーがリポジトリにパスを送信できるようになります。

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

    Git 認証情報ヘルパーは、.gitconfig ファイルに次の情報を書き込みます。

    Copy
    [credential] helper = !aws codecommit credential-helper $@ UseHttpPath = true

    重要

    • Windows のコマンドラインではなく Bash エミュレーターを使用している場合は、二重引用符ではなく単一引用符を使用する必要があります。

    • 認証情報ヘルパーは、デフォルトの AWS プロファイル、または Amazon EC2 インスタンスロールを使用します。CodeCommitProfile などの AWS 資格情報プロファイルを作成した場合は、次のようにコマンドを変更して代わりに使用できます。

      Copy
      git config --global credential.helper "!aws codecommit credential-helper --profile CodeCommitProfile $@"

      これにより、.gitconfig ファイルに次のように書き込まれます。

      Copy
      [credential] helper = !aws codecommit credential-helper --profile=CodeCommitProfile $@ UseHttpPath = true
    • プロファイル名にスペースが含まれる場合は、このコマンドを実行した後、.gitconfig ファイルを編集して 一重引用符 (') で囲みます。そうしないと、認証情報ヘルパーは動作しません。

    • Git for Windows のインストールに Git 認証情報マネージャーユーティリティが含まれている場合、最初の数回の接続試行後に 認証情報マネージャーユーティリティに認証情報を提供するかどうかを確認する 403 エラーが表示されます。この問題を解決する最も確実な方法は、AWS CodeCommit と互換性がないため、Git 認証情報マネージャーユーティリティのオプションを使用せずに Git for Windows をアンインストールしてから再インストールすることです。Git 認証情報マネージャーユーティリティを保持する場合は、AWS CodeCommit に接続するときに AWS CodeCommit の認証情報ヘルパーの使用を指定するために .gitconfig ファイルを手動で変更することを含め、AWS CodeCommit を使用する追加の構成ステップを実行する必要があります。認証情報マネージャーユーティリティから格納されている資格情報を削除します (このユーティリティはコントロールパネルにあります)。格納されている認証情報を削除したら、以下を .gitconfig ファイルに追加して保存し、新しいコマンドプロンプトウィンドウから再度接続してください。

      Copy
      [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 または --global の代わりに --system を指定して、git config の設定を再構成する必要があります。

    • AWS CodeCommit の同じローカルマシン上の異なる IAM ユーザーを使用する場合は、git config --global の代わりに git config --local を指定し、AWS 認証情報プロファイルごとに構成を実行する必要があります。

  2. git config --global --edit を実行すると、ユーザープロファイルの .gitconfig ファイルに上記の値が書き込まれていることを確認できます (デフォルトでは、%HOME%\.gitconfig or drive:\Users\UserName\.gitconfig)。成功した場合は、以前の値 (Git グローバルコンフィグレーションファイルにすでに存在する値に追加) が表示されます。終了するには、通常、:q と入力して [Enter] を押します。

ステップ 4: AWS CodeCommit コンソールに接続し、リポジトリを複製する

管理者から AWS CodeCommit リポジトリの名前と接続の詳細をすでに受け取っている場合は、このステップをスキップしてリポジトリを直接複製できます。

  1. Open the AWS CodeCommit console at https://console.aws.amazon.com/codecommit.

  2. In the region selector, choose the region where the repository was created. Repositories are specific to an AWS region. For more information, see リージョンと Git 接続エンドポイント.

  3. Choose the repository you want to connect to from the list. This opens the Code page for that repository.

    注記

    If you see a Welcome page instead of a list of repositories, there are no repositories associated with your AWS account. To create a repository, see AWS CodeCommit リポジトリの作成 or follow the steps in the AWS CodeCommit での Git の使用に関するチュートリアル tutorial.

  4. HTTPS URL をコピーし、リポジトリに接続するときに使用します。

  5. コマンドプロンプトを開き、URL を使用して git clone コマンドでリポジトリをクローンします。ローカルリポジトリは、そのコマンドを実行したディレクトリのサブディレクトリに作成されます。たとえば、MyDemoRepo という名前のリポジトリを、米国東部 (オハイオ) リージョン内 my-demo-repo という名前のローカルリポジトリに複製するには、以下のようにします。

    Copy
    git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

    Windows の一部のバージョンでは、ユーザー名とパスワードの入力を求めるポップアップダイアログボックスが表示されることがあります。これは Windows 用の組み込みの認証情報管理システムですが、AWS CodeCommit の認証情報ヘルパーと互換性がありません。Cancel を選択します。

    リポジトリへの接続方法の詳細については、「リポジトリのクローンを作成して AWS CodeCommit リポジトリに接続する」を参照してください。

次のステップ

You have completed the prerequisites. Follow the steps in AWS CodeCommit のチュートリアル to start using AWS CodeCommit.