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 インスタンスにサインインしています。
-
AWS CLI 認証情報ヘルパーで Git と HTTPS を使用して Amazon EC2 インスタンスから CodeCommit リポジトリに接続します。
-
Amazon EC2 インスタンスには、 AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合または で説明されているアクセス許可を含む IAM インスタンスプロファイルがアタッチされていますAWS CLI 認証情報ヘルパーを使用して Windows で HTTPS 接続をセットアップする手順。
-
AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合 または で説明されているように、Git 認証情報ヘルパーを Amazon EC2 インスタンスにインストールして設定しましたAWS CLI 認証情報ヘルパーを使用して Windows で HTTPS 接続をセットアップする手順。
上記の要件を満たす Amazon EC2 インスタンスは、ユーザーに代わって一時的なアクセス認証情報を CodeCommit に伝えるように既に設定されています。
注記
Amazon EC2 インスタンスgit-remote-codecommitで を設定して使用できます。
ユーザーに CodeCommit リポジトリへの一時的なアクセスを許可するには、次の手順を実行します。
ステップ 1: 前提条件を満たす
セットアップステップを完了して、ローテーション認証情報を使用して CodeCommit リポジトリへのアクセスをユーザーに許可します。
-
クロスアカウントアクセスについては、「チュートリアル: IAM Roles と を使用して Amazon Web Services アカウント間でアクセスを委任する」を参照してくださいロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する。
-
SAML とフェデレーションについては、「組織の認証システムを使用して AWS リソースへのアクセスを付与する」およびAWS STS SAML 2.0 ベースのフェデレーションについて」を参照してください。
-
MFA については、「 での多要素認証 (MFA) デバイスの使用 AWS」およびIAM ユーザーのアクセスを有効にするための一時的なセキュリティ認証情報の作成」を参照してください。
-
Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換の ID プロバイダーによるログインについては、AWS STS 「ウェブアイデンティティフェデレーションについて」を参照してください。
の情報を使用してAWS CodeCommitの認証とアクセスコントロール、ユーザーに付与する CodeCommit アクセス許可を指定します。
ステップ 2: ロール名またはアクセス認証情報を取得する
ロールを引き受けてユーザーがリポジトリにアクセスできるようにする場合は、そのロールの Amazon リソースネーム (ARN) をユーザーに提供します。それ以外の場合、アクセス権の設定方法に応じて、ユーザーは次のいずれかの方法で認証情報の更新を取得できます。
-
クロスアカウントアクセスの場合は、the AWS CLI assume-role コマンドを呼び出すか、 AWS STS AssumeRole API を呼び出します。
-
SAML の場合は、 AWS CLI assume-role-with-saml コマンドまたは AWS STS AssumeRoleWith SAML API を呼び出します。
-
フェデレーションの場合は、the AWS CLI assume-role コマンドまたは get-federation-token コマンド、または AWS STS AssumeRole または GetFederationToken APIs呼び出します。
-
MFA の場合は、 AWS CLI get-session-token コマンドまたは AWS STS GetSessionToken API を呼び出します。
-
Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換の ID プロバイダーでログインする場合は、 AWS CLI assume-role-with-web-identity コマンドまたは AWS STS AssumeRoleWithWebIdentity API呼び出します。
ステップ 3: git-remote-codecommit をインストールして を設定する AWS CLI
AWS CLIで git-remote-codecommit
-
「設定 」の指示に従って、 AWS CLIを設定します。1 つまたは複数のプロファイルを設定するには、aws configure コマンドを使用します。ローテーション認証情報を使用して CodeCommit リポジトリに接続するときに使用する名前付きプロファイルの作成を検討してください。
-
認証情報は、次のいずれかの方法でユーザー 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
--profileCodeAccess
aws configure set source_profile default --profileCodeAccess
aws configure set role_session_name "Maria_Garcia
" --profileCodeAccess
変更を確認する場合は、
~/.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=~/
role_session_name = Maria_Garciamy-credentials
/my-token-file
詳細については、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 と、そのプロファイルの範囲にある結果が返されます。