メニュー
AWS Identity and Access Management
ユーザーガイド

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

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

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

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

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

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

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

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

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

注記

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

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

注記

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

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

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

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

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

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

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

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

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

注記

IAM では、OpenSSH RSA 形式のパブリックキーのみを使用できます。別の形式のパブリックキーを指定した場合は、キーの形式が無効であることを示すエラーメッセージが表示されます。

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

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

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