AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
認証情報をローテーションして AWS CodeCommit リポジトリに接続する
IAM ユーザーを設定したり、アクセスキーとシークレットキーを使用したりすることなく、 AWS CodeCommit リポジトリへのアクセスをユーザーに許可できます。フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールについては、「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する」を参照してください。IAM Identity Center を使用する場合は、許可セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、権限セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、「AWS IAM Identity Center User Guide」の「Permission sets」を参照してください。また、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 リソースへのアクセスを許可する」および「SAML 2.0 AWS STS ベースのフェデレーションについて」を参照してください。
-
MFA については、AWSでの多要素認証 (MFA) デバイスの使用と IAM ユーザーにアクセスを許可する一時的なセキュリティ認証情報の作成を参照してください。
-
Login with Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換 ID プロバイダーについては、AWS STS 「ウェブ ID フェデレーションについて」を参照してください。
AWS CodeCommitの認証とアクセスコントロール の情報を使用して、ユーザーに付与する CodeCommit アクセス許可を指定します。
ステップ 2: ロール名またはアクセス認証情報を取得する
ユーザーがロールを引き受けることによってリポジトリにアクセスできるようにするには、そのロールの Amazon リソースネーム (ARN) をユーザーに提供します。それ以外の場合、アクセス権の設定方法に応じて、ユーザーは次のいずれかの方法で認証情報の更新を取得できます。
-
クロスアカウントアクセスの場合は、the AWS CLI assume-role コマンドを呼び出すか AWS STS AssumeRole API を呼び出します。
-
SAML の場合は、 AWS CLI assume-role-with-saml コマンドまたは AWS STS AssumeRoleWithSAML API を呼び出します。
-
フェデレーションの場合は、the AWS CLI assume-role または get-federation-token コマンド、 AWS STS AssumeRole または GetFederationToken APIs。
-
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 にアクセスするロールを引き受ける場合は、そのロールを引き受けるのに必要な情報を含む名前付きプロファイルを設定します。例えば、Amazon Web Services アカウント 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 と、そのプロファイルの範囲が指定された結果が返されます。