Windows で AWS CodeCommit リポジトリへの SSH 接続をセットアップする手順 - AWS CodeCommit

Windows で AWS CodeCommit リポジトリへの SSH 接続をセットアップする手順

AWS CodeCommit に初めて接続する前に、いくつかの初期設定手順を完了する必要があります。コンピュータと AWS プロファイルをセットアップしたら、CodeCommit リポジトリに接続し、そのリポジトリのクローンをコンピュータに作成できます (これは、ローカルリポジトリの作成とも呼ばれます)。Git を初めて利用する場合は、 でも情報を確認できますGit の詳細情報

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

アマゾン ウェブ サービスアカウントを設定し、IAM ユーザーを作成して、CodeCommit へのアクセスを設定するには、以下の手順に従います。

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

  1. アマゾン ウェブ サービスアカウントを作成するには、http://aws.amazon.com にアクセスし、[Sign Up] (サインアップ) を選択します。

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

    注記

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

  3. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  5. [Permissions (アクセス許可)] タブで、[Add Permissions (アクセス許可の追加)] を選択します。

  6. [Grant permissions (アクセス許可の付与)] で、[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。

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

    アタッチするポリシーを選択したら、[Next: Review] (次へ: 確認) を選択して、IAM ユーザーにアタッチするポリシーのリストを表示します。リストが正しい場合は、[Add permissions (アクセス許可の追加)] を選択します。

    CodeCommit 管理ポリシーや、その他のグループおよびユーザーを含むリポジトリへのアクセス共有の詳細については、リポジトリの共有 および の認証とアクセスコントロールAWS CodeCommit を参照してください。

注記

CodeCommit で AWS CLI コマンドを使用する場合は、AWS CLI をインストールします。詳細については、「コマンドラインリファレンス」を参照してください。

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

CodeCommit リポジトリのファイル、コミット、およびその他の情報を使用するには、ローカルマシンに Git をインストールする必要があります。CodeCommit は Git バージョン 1.7.9 以降をサポートしています。Git バージョン 2.28 は、初期コミットのブランチ名の設定をサポートしています。最新バージョンの Git を使用することをお勧めします。

Git をインストールするには、Git のダウンロードなどのウェブサイトをお勧めします。

注記

Git は、定期的に更新されている、発展中のプラットフォームです。機能の変更により、CodeCommit での動作が影響を受ける場合があります。特定のバージョンの Git と CodeCommit で問題が発生した場合は、 の情報を確認してくださいトラブルシューティング

インストールした Git のバージョンに Bash エミュレーター (Git Bash など) が含まれていない場合はインストールします。SSH 接続を設定するときは、Windows コマンドラインの代わりにこのエミュレーターを使用します。

ステップ 3: Git および CodeCommit 用のパブリックキーとプライベートキーをセットアップする

Windows で Git および CodeCommit 用のパブリックキーとプライベートキーをセットアップするには

  1. Bash エミュレーターを開きます。

    注記

    管理者権限でエミュレーターを実行する必要があります。

    エミュレーターから ssh-keygen コマンドを実行し、指示に従ってファイルをプロファイルの .ssh ディレクトリに保存します。

    例:

    $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/drive/Users/user-name/.ssh/id_rsa): Type a file name here, for example /c/Users/user-name/.ssh/codecommit_rsa Enter passphrase (empty for no passphrase): <Type a passphrase, and then press Enter> Enter same passphrase again: <Type the passphrase again, and then press Enter> Your identification has been saved in drive/Users/user-name/.ssh/codecommit_rsa. Your public key has been saved in drive/Users/user-name/.ssh/codecommit_rsa.pub. The key fingerprint is: 45:63:d5:99:0e:99:73:50:5e:d4:b3:2d:86:4a:2c:14 user-name@client-name The key's randomart image is: +--[ RSA 2048]----+ | E.+.o*.++| | .o .=.=o.| | . .. *. +| | ..o . +..| | So . . . | | . | | | | | | | +-----------------+

    これにより、以下が生成されます。

    • codecommit_rsa ファイル (プライベートキーファイル)

    • codecommit_rsa.pub ファイル (パブリックキーファイル )

    ヒント

    デフォルトで、ssh-keygen は 2048 ビットキーを生成します。-t および-b パラメータを使用して、キーのタイプと長さを指定することができます。RSA 形式の 4096 ビットキーが必要な場合は、次のパラメータを持つコマンドを実行することで、これを指定します。

    ssh-keygen -t rsa -b 4096

    SSH キーに必要な形式と長さの詳細については、CodeCommit での IAM の使用を参照してください。

  2. 以下のコマンドを実行して、パブリックキーファイル (codecommit_rsa.pub) の値を表示します。

    cd .ssh notepad codecommit_rsa.pub

    ファイルの内容をコピーし、保存せずにメモ帳を閉じます。ファイルの内容は以下のようになります。

    ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2 5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@computer-name
  3. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    注記

    CodeCommit の認証情報を [My Security Credentials] (セキュリティ認証情報) で直接表示および管理できます。詳細については、「認証情報の表示と管理」を参照してください。

  4. IAM コンソールのナビゲーションペインで [Users] (ユーザー) を選択し、ユーザーのリストから自分の IAM ユーザーを選択します。

  5. ユーザーの詳細ページで、[Security Credentials] タブを選択し、次に Upload SSH public key を選択します。

  6. SSH パブリックキーの内容をフィールドに貼り付け、[Upload SSH public key] を選択します。

  7. SSH Key ID の情報を (APKAEIBAERJR2EXAMPLE など) をコピーまたは保存します。

    
            IAM コンソールの SSH キー ID
    注記

    複数の SSH キー ID をアップロードしている場合、キーは、アップロードの日付ではなく、キー ID のアルファベット順にリストされます。正しいアップロードの日付に関連付けられたキー ID をコピーしていることを確認します。

  8. Bash エミュレーターで、以下のコマンドを実行して ~/.ssh ディレクトリに設定ファイルを作成するか、このファイルがすでにあれば編集します。

    notepad ~/.ssh/config
  9. ファイルに以下の行を追加します。ここで、User の値は先ほどコピーした SSH キー ID であり、IdentityFile の値はプライベートキーファイルのパスと名前です。

    Host git-codecommit.*.amazonaws.com User APKAEIBAERJR2EXAMPLE IdentityFile ~/.ssh/codecommit_rsa
    注記

    プライベートキーファイルに codecommit_rsa 以外の名前を付けた場合は、ここでその名前を必ず使用してください。

    複数のアマゾン ウェブ サービスアカウントでリポジトリへの SSH アクセスを設定できます。詳細については、AWS CodeCommit への SSH 接続のトラブルシューティング を参照してください。

    ファイルを config.txt ではなく config として保存し、メモ帳を閉じます。

    重要

    このファイル名はファイル拡張子なしの config であることが必要です。そうでない場合、SSH 接続が失敗します。

  10. 以下のコマンドを実行して、SSH 設定をテストします。

    ssh git-codecommit.us-east-2.amazonaws.com

    git-codecommit.us-east-2.amazonaws.com が既知の Hosts ファイルにまだ含まれていないため、接続の確認を求められます。この確認の一部として、CodeCommit サーバーのフィンガープリントが表示されます (MD5 の場合は a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e、SHA256 の場合は 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ)。

    注記

    CodeCommit サーバーフィンガープリントは、各 AWS リージョン に固有です。 AWS リージョン のサーバーフィンガープリントを表示するには、CodeCommit のサーバーフィンガープリント を参照してください。

    接続の確認後、そのサーバーが既知の Hosts ファイルに追加されたことの確認と接続の成功メッセージが表示されます。成功メッセージが表示されない場合は、CodeCommit へのアクセス用に設定した IAM ユーザーの ~/.ssh ディレクトリに config ファイルを保存したこと、config ファイルに拡張子が付いていないこと (例えば config.txt という名前になっていないか) を再確認します。また、正しいプライベートキーファイル (codecommit_rsa.pub ではなく codecommit_rsa) を指定したことを再確認します。

    問題のトラブルシューティングを行うには、-v パラメータを指定して ssh コマンドを実行してください。例:

    ssh -v git-codecommit.us-east-2.amazonaws.com

    接続の問題のトラブルシューティングに役立つ情報については、AWS CodeCommit への SSH 接続のトラブルシューティング を参照してください。

ステップ 4: CodeCommit コンソールに接続し、リポジトリのクローンを作成する

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

CodeCommit リポジトリに接続するには

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. リージョンセレクタで、リポジトリが作成された AWS リージョン を選択します。リポジトリは、 AWS リージョン に固有のものです。詳細については、「リージョンと Git 接続エンドポイント」を参照してください。

  3. 接続するリポジトリをリストから見つけて選択します。[クローン URL] を選択してから、リポジトリのクローン作成やリポジトリへの接続時に使用するプロトコルを選択します。これにより、クローン URL が複製されます。

    • IAM ユーザー、または AWS CLI に含まれている認証情報ヘルパーで Git 認証情報を使用している場合は、HTTPS URL をコピーします。

    • ローカルコンピュータで git-remote-codecommit コマンドを使用している場合は、HTTPS (GRC) URL をコピーします。

    • IAM ユーザーで SSH パブリック/プライベートキーペアを使用している場合は、SSH URL をコピーします。

    注記

    リポジトリのリストではなく [ようこそ] ページが表示される場合、ログインしている AWS リージョン の AWS アカウントに関連付けられているリポジトリはありません。リポジトリを作成するには、「AWS CodeCommit リポジトリを作成する」を参照するか、「Git と CodeCommit の開始方法」チュートリアルのステップに従います。

  4. Bash エミュレーターで、リポジトリのクローンを作成するためにコピーした SSH URL を使用して git clone コマンドを実行します。このコマンドは、コマンドを実行したディレクトリのサブディレクトリにローカルリポジトリを作成します。For example, to clone a repository named MyDemoRepo to a local repo named my-demo-repo in the US East (Ohio) Region:

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

    あるいは、コマンドプロンプトを開き、IAM にアップロードしたパブリックキーの URL と SSH キー ID を使用して、git clone コマンドを実行します。ローカルリポジトリは、そのコマンドを実行したディレクトリのサブディレクトリに作成されます。例えば、MyDemoRepo という名前のリポジトリのクローンを my-demo-repo という名前のローカルリポジトリに作成するには、次のようにします。

    git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

    詳細については、「CodeCommit リポジトリのクローンを作成してリポジトリに接続する」および「コミットを作成する」を参照してください。

次のステップ

前提条件を完了しました。CodeCommit の開始方法 のステップに従って、CodeCommit の使用を開始してください。