認証情報をローテーションして AWS CodeCommit リポジトリに接続する - AWS CodeCommit

AWS CodeCommit は、新しいお客様では使用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

認証情報をローテーションして AWS CodeCommit リポジトリに接続する

IAM ユーザーを設定したり、アクセスキーとシークレットキーを使用したり AWS CodeCommit することなく、リポジトリへのアクセスをユーザーに許可できます。フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールの詳細については、IAM ユーザーガイドの「サードパーティー ID プロバイダー (フェデレーション) のロールを作成する」を参照してください。IAM Identity Center を使用する場合は、アクセス許可セットを設定します。認証後に ID がアクセスできる内容を制御するために、IAM Identity Center はアクセス許可セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、「AWS IAM Identity Center User Guide」の「Permission sets」を参照してください。IAM ユーザーが個別の Amazon Web Services アカウント (クロスアカウントアクセスと呼ばれる手法) の CodeCommit リポジトリにアクセスするためのロールベースのアクセスを設定することもできます。リポジトリへのクロスアカウントアクセスを設定するためのウォークスルーは、「ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する」を参照してください。

以下のような方法で認証する必要のあるユーザーに、アクセスを設定できます。

  • セキュリティアサーションマークアップ言語 (SAML)

  • 多要素認証 (MFA)

  • フェデレーション

  • Login with Amazon

  • Amazon Cognito

  • Facebook

  • Google

  • OpenID Connect (OIDC) 互換 ID プロバイダー

注記

以下の情報は、 git-remote-codecommit または AWS CLI 認証情報ヘルパーを使用して CodeCommit リポジトリに接続する場合にのみ適用されます。 CodeCommit への一時的なアクセスまたはフェデレーティッドアクセスの推奨アプローチは を設定することであるためgit-remote-codecommit、このトピックでは、そのユーティリティを使用する例を示します。詳細については、「HTTPS AWS CodeCommit を使用した への git-remote-codecommit 接続のセットアップ手順」を参照してください。

SSH または Git の認証情報と HTTPS を使用して、ローテーションまたは一時的なアクセス認証情報を使用して CodeCommit リポジトリに接続することはできません。

以下のすべての要件が当てはまる場合には、これらのステップを実行する必要はありません。

上記の要件を満たす Amazon EC2 インスタンスは、ユーザーに代わって一時的なアクセス認証情報を CodeCommit に伝えるように既に設定されています。

注記

Amazon EC2 インスタンスgit-remote-codecommitで を設定して使用できます。

ユーザーに CodeCommit リポジトリへの一時的なアクセスを許可するには、次の手順を実行します。

ステップ 1: 前提条件を満たす

セットアップステップを完了して、ローテーション認証情報を使用して CodeCommit リポジトリへのアクセスをユーザーに許可します。

の情報を使用してAWS CodeCommitの認証とアクセスコントロール、ユーザーに付与する CodeCommit アクセス許可を指定します。

ステップ 2: ロール名またはアクセス認証情報を取得する

ロールを引き受けてユーザーがリポジトリにアクセスできるようにする場合は、そのロールの Amazon リソースネーム (ARN) をユーザーに提供します。それ以外の場合、アクセス権の設定方法に応じて、ユーザーは次のいずれかの方法で認証情報の更新を取得できます。

ステップ 3: git-remote-codecommit をインストールして を設定する AWS CLI

AWS CLIで git-remote-codecommit をインストールしてプロファイルを設定することで、アクセス認証情報を使用するようにローカルコンピュータを設定する必要があります。

  1. 設定 」の指示に従って、 AWS CLIを設定します。1 つまたは複数のプロファイルを設定するには、aws configure コマンドを使用します。ローテーション認証情報を使用して CodeCommit リポジトリに接続するときに使用する名前付きプロファイルの作成を検討してください。

  2. 認証情報は、次のいずれかの方法でユーザー AWS CLI の名前付きプロファイルに関連付けることができます。

    • Access CodeCommit のロールを引き受ける場合は、そのロールを引き受けるために必要な情報を使用して、名前付きプロファイルを設定します。例えば、 という名前のロールを引き受ける場合 CodeCommitAccess Amazon Web Services アカウント 111111111111 では、他の AWS リソースを操作するときに使用するデフォルトプロファイルと、そのロールを引き受けるときに使用する名前付きプロファイルを設定できます。次のコマンドは、 という名前のプロファイルを作成します。CodeAccess という名前のロールを引き受ける CodeCommitAccessユーザー名。Maria_Garcia はセッションに関連付けられ、デフォルトのプロファイルは AWS 認証情報のソースとして設定されます。

      aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess aws configure set source_profile default --profile CodeAccess aws configure set role_session_name "Maria_Garcia" --profile CodeAccess

      変更を確認する場合は、~/.aws/config ファイル (Linux の場合) または %UserProfile%.aws\configファイル (Windows の場合) を手動で表示または編集し、名前付きプロファイルの情報を確認します。たとえば、ファイルは次のようになります。

      [default] region = us-east-1 output = json [profile CodeAccess] source_profile = default role_session_name = Maria_Garcia role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess

      名前付きプロファイルを設定したら、名前付きプロファイルを使用して git-remote-codecommit ユーティリティで CodeCommit リポジトリをクローンできます。例えば、 という名前のリポジトリをクローンするには MyDemoRepo:

      git clone codecommit://CodeAccess@MyDemoRepo
    • ウェブ ID フェデレーションと OpenID Connect (OIDC) を使用している場合は、 AWS Security Token Service (AWS STS) AssumeRoleWithWebIdentity API をユーザーに代わって呼び出して一時的な認証情報を更新する名前付きプロファイルを設定します。aws configure set コマンドを使用するか、 ~/.aws/credentials ファイル (Linux の場合) または %UserProfile%.aws\credentials ファイル (Windows の場合) を手動で編集して、必要な設定値を持つ AWS CLI 名前付きプロファイルを追加します。例えば、CodeCommitAccess ロールと はウェブ ID トークンファイルを使用します ~/my-credentials/my-token-file:

      [CodeCommitWebIdentity] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess web_identity_token_file=~/my-credentials/my-token-file role_session_name = Maria_Garcia

    詳細については、AWS Command Line Interface 「 ユーザーガイド」の「 の設定 AWS Command Line Interface」と「単語ロールの使用」を参照してください。 IAM AWS CLI

ステップ 4: CodeCommit リポジトリにアクセスする

ユーザーが の指示に従って CodeCommit リポジトリリポジトリへの接続に接続したと仮定すると、ユーザーは git-remote-codecommitと Git が提供する拡張機能を使用してgit clone、、git push、および git pull を呼び出し、アクセス可能な CodeCommit リポジトリをクローン、プッシュ、プルします。たとえば、リポジトリのクローンを作成するには次のようにします。

git clone codecommit://CodeAccess@MyDemoRepo

Git のコミット、プッシュ、プルコマンドは、通常の Git 構文を使用します。

ユーザーが を使用して、ローテーションするアクセス認証情報に関連付けられた AWS CLI 名前付きプロファイルを指定する AWS CLI と、そのプロファイルの範囲にある結果が返されます。