AWS CodeCommit は、新しいお客様では利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
認証情報のローテーションを使用した AWS CodeCommit リポジトリへの接続
AWS CodeCommit リポジトリへのアクセス権をユーザーに付与するために、IAM ユーザーを設定したり、アクセスキーとシークレットキーを使用したりする必要はありません。フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッドアイデンティティが認証されると、そのアイデンティティはロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションの詳細については、「IAM ユーザーガイド」の「Creating a role for a third-party Identity Provider」(サードパーティーアイデンティティプロバイダー向けロールの作成) を参照してください。IAM アイデンティティセンターを使用する場合、許可セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、アクセス許可セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、「AWS IAM Identity Center ユーザーガイド」の「アクセス許可セット」を参照してください。また、IAM ユーザーが別のアマゾン ウェブ サービスアカウントの CodeCommit リポジトリにアクセスするためのロールベースのアクセスを設定することもできます (cross-account アクセスと呼ばれるテクニック)。リポジトリへのクロスアカウントアクセスを設定するためのウォークスルーは、「ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する」を参照してください。
以下のような方法で認証する必要のあるユーザーに、アクセスを設定できます。
-
Security Assertion Markup Language (SAML)
-
多要素認証(MFA)
-
フェデレーション
-
Login with Amazon
-
Amazon Cognito
-
Facebook
-
Google
-
OpenID Connect (OIDC) 対応の ID プロバイダー
注記
以下の情報は、CodeCommit リポジトリに接続するための git-remote-codecommit または AWS CLI 認証情報ヘルパーの使用にのみ適用されます。CodeCommit への一時アクセスまたはフェデレーティッドアクセスに対して推奨されるアプローチは git-remote-codecommit を設定することであるため、このトピックでは、このユーティリティの使用例を示します。詳細については、「git-remote-codecommit を使用して AWS CodeCommit への HTTPS 接続をセットアップする手順」を参照してください。
アクセス認証情報の更新や一時的なアクセス認証情報で CodeCommit リポジトリに接続するのに、SSH あるいは Git 認証情報および HTTPS を使用することはできません。
以下のすべての要件が当てはまる場合には、これらのステップを実行する必要はありません。
-
Amazon EC2 インスタンスにサインインしている。
-
AWS CLI 認証情報ヘルパーで Git と HTTPS を使用して、Amazon EC2 インスタンスから CodeCommit リポジトリに接続している。
-
Amazon EC2 インスタンスに、AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合 または AWS CLI 認証情報ヘルパーを使用して Windows で HTTPS 接続をセットアップする手順 で説明されているアクセス許可を含む IAM インスタンスプロファイルがアタッチされている。
-
AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合 または AWS CLI 認証情報ヘルパーを使用して Windows で HTTPS 接続をセットアップする手順 で説明されているように、Amazon EC2 インスタンスに Git 認証情報ヘルパーがインストールおよび設定されている。
上記の要件を満たす Amazon EC2 インスタンスは、お客様に代わって CodeCommit に一時アクセス認証情報を提供するように、既に設定されています。
注記
Amazon EC2 インスタンスでは、git-remote-codecommit を設定および使用することができます。
ユーザーに CodeCommit リポジトリへの一時アクセスを許可するには、以下の手順を実行します。
ステップ 1: 前提条件を満たす
設定ステップを実行し、認証情報の更新を使用して CodeCommit リポジトリへのアクセスをユーザーに許可します。
-
cross-account アクセスについては、チュートリアル: IAM ロールを使用したアマゾン ウェブ サービスアカウント間でのアクセスの委任および ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する を参照してください。
-
SAML とフェデレーションについては、「組織の認証システムを使用して AWS リソースへのアクセスを許可する」と「AWS STS SAML 2.0 ベースのフェデレーションについて」を参照してください。
-
MFA については、AWS での多要素認証 (MFA) デバイスの使用と IAM ユーザーにアクセスを許可する一時的なセキュリティ認証情報の作成を参照してください。
-
Login with Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換の ID プロバイダーによるログインについては、AWS STS ウェブ ID フェデレーションについてを参照してください。
AWS CodeCommitの認証とアクセスコントロール の情報を使用して、ユーザーに付与する CodeCommit アクセス許可を指定します。
ステップ 2: ロール名またはアクセス認証情報を取得する
ユーザーがロールを引き受けることによってリポジトリにアクセスできるようにするには、そのロールの Amazon リソースネーム (ARN) をユーザーに提供します。それ以外の場合、アクセス権の設定方法に応じて、ユーザーは次のいずれかの方法で認証情報の更新を取得できます。
-
クロスアカウントアクセスの場合は、AWS CLI の assume-role コマンドを呼び出すか、AWS STS の AssumeRole API を呼び出します。
-
SAML の場合は、AWS CLI の assume-role-with-saml コマンドまたは AWS STS の AssumeRoleWithSAML API を呼び出します。
-
フェデレーションの場合は、AWS CLI のassume-role または get-federation-token コマンドを呼び出すか、AWS STS AssumeRole または GetFederationToken API を呼び出します。
-
MFA の場合は、AWS CLI の get-session-token コマンドまたは AWS STS の GetSessionToken API を呼び出します。
-
Login with 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 名前付きプロファイルに関連付けることができます。
-
CodeCommit にアクセスするロールを引き受ける場合は、そのロールを引き受けるのに必要な情報を含む名前付きプロファイルを設定します。例えば、アマゾン ウェブ サービスアカウント 111111111111 で
CodeCommitAccess
という名前のロールを引き受ける場合、他の AWS リソースを操作するときに使用するデフォルトプロファイルと、そのロールを引き受けるときに使用する名前付きプロファイルを設定できます。次のコマンドは、CodeCommitAccess
という名前のロールを引き受ける、名前付きプロファイルのCodeAccess
を作成します。ユーザー名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 の設定とAWS CLI での IAM ロールの使用を参照してください。
-
ステップ 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 の名前付きプロファイルを指定すると、このプロファイルにスコープされた結果が返されます。