CodeCommit での IAM の使用: Git 認証情報、SSH キー、および AWS アクセスキー - AWS Identity and Access Management

CodeCommit での IAM の使用: Git 認証情報、SSH キー、および AWS アクセスキー

CodeCommit はマネージド型バージョン管理サービスであり、AWS クラウド内のプライベート Git リポジトリをホストします。CodeCommit を使用するには、Git クライアントを CodeCommit リポジトリと通信できるように設定します。この設定の一環として、CodeCommit がユーザーの認証に使用できる IAM 認証情報を指定します。IAM は、次の 3 種類の認証情報で CodeCommit をサポートしています。

  • Git 認証情報。HTTPS 経由の CodeCommit リポジトリとの通信に使用できる、IAM によって生成されたユーザー名とパスワードのペアです。

  • SSH キー。IAM ユーザーに関連付けて SSH 経由で CodeCommit リポジトリと通信できる、ローカルで生成されたパブリックキーとプライベートキーのペアです。

  • AWS アクセスキー。AWS CLI に含まれる認証情報ヘルパーで使用して、HTTPS 経由で CodeCommit リポジトリと通信できます。

注記

別の AWS アカウントのリポジトリにアクセスするには、SSH キーまたは Git 認証情報を使用できません。別の IAM ユーザーおよびグループに対して、CodeCommit リポジトリへのアクセスを設定する方法を学ぶにはAWSアカウントの詳細については、AWS CodeCommit ユーザーガイドの「ロールを使用した AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する」を参照してください。

以下のセクションに各オプションの詳細を示します。

CodeCommitで Git 認証情報および HTTPS を使用する (推奨)

Git 認証情報では、IAM ユーザーの静的ユーザー名とパスワードのペアを生成し、その認証情報を HTTPS 接続に使用します。また、静的 Git 認証情報をサポートするサードパーティー製ツールや統合開発環境 (IDE) でもこの認証情報を使用できます。

これらの認証情報はサポートされているすべてのオペレーティングシステムで共通であり、ほとんどの認証情報管理システム、開発環境、その他のソフトウェア開発ツールと互換性があるため、推奨される方法です。Git 認証情報のパスワードはいつでもリセットできます。また、認証情報が不要になった場合は、非アクティブ化または削除できます。

注記

Git 認証情報用のユーザー名やパスワードは選択できません。IAMは、これらのクレデンシャルを生成して、AWS のセキュリティ標準と CodeCommit の安全なリポジトリを確実に満たすようにします。認証情報は、生成時に 1 回のみダウンロードできます。必ず、認証情報を安全な場所に保存してください。必要に応じて、パスワードをいつでもリセットできますが、そうすると古いパスワードを使用した接続が無効になります。接続するには、新しいパスワードを使用するように接続を再構成する必要があります。

詳細については、以下のトピックを参照してください。

注記

Git 認証情報を生成した後で IAM ユーザーの名前を変更しても、Git 認証情報のユーザー名は変更されません。ユーザー名とパスワードは変わらず、有効のままです。

サービス固有の認証情報をローテーションするには

  1. 現在使用されているセットに加えて、2 つ目のサービス固有の認証情報セットを作成します。

  2. 新しい認証情報のセットを使用するようにすべてのアプリケーションを更新して、アプリケーションが動作することを確認します。

  3. 元の認証情報の状態を「非アクティブ」に変更します。

  4. すべてのアプリケーションが動作していることを確認します。

  5. 非アクティブ化したサービス固有の認証情報を削除します。

CodeCommit で SSH キーと SSH を使用する

SSH 接続では、SSH 認証用に Git および CodeCommit が使用するパブリックキーとプライベートキーのファイルをローカルマシンで作成します。パブリックキーは IAM ユーザーに関連付け、プライベートキーはローカルマシンに保存します。詳細については、以下のトピックを参照してください。

注記

パブリックキーは ssh-rsa 形式または PEM 形式でエンコードされます。パブリックキーの最小のビットの長さは 2048 ビットですが、パブリックキーの最大長は 16384 ビットです。これはアップロードするファイルのサイズとは異なります。たとえば 2048 ビットキーを生成した場合、作成された PEM ファイルの長さは 1679 バイトになります。パブリックキーを別の形式またはサイズで提供すると、キーの形式が無効であることを知らせるエラーメッセージが表示されます。

AWS CLI 認証情報ヘルパーおよび CodeCommit で HTTPS を使用する

Git が CodeCommit リポジトリとの通信で AWS に対する認証を必要とする場合は、Git 認証情報を使用した HTTPS 接続の代わりに、暗号化された署名済みバージョンの IAM ユーザー認証情報または Amazon EC2 インスタンスロールを Git で使用できます。これは、IAM ユーザーを必要としない CodeCommit リポジトリと接続する唯一の方法です。また、フェデレーションアクセスおよび一時的な認証情報を使用できる唯一の方法でもあります。ビジネスニーズによりフェデレーションアクセスまたは一時的な認証情報を使用する必要がある場合を除き、アクセスには IAM ユーザーを使用することを強くお勧めします。詳細については、以下のトピックを参照してください。

AWS CLI 認証情報ヘルパーには、Keychain Access や Windows Credential Management などの他の認証情報ヘルパーシステムとの互換性はありません。認証情報ヘルパーを使用して HTTPS 接続を設定する際は、追加の設定考慮事項があります。詳細については、AWS CLI ユーザーガイドの「AWS CLI 資格情報ヘルパーを使用したLinux、macOS、または Unix での HTTPS 接続」または「AWS CodeCommit 資格情報ヘルパーを使用した Windows での HTTPS 接続について」を参照してください。