リポジトリへのクロスアカウントアクセス: AccountB のリポジトリユーザーのアクション - AWS CodeCommit

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

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

リポジトリへのクロスアカウントアクセス: AccountB のリポジトリユーザーのアクション

AccountA でリポジトリにアクセスするには、AccountB グループのユーザーがリポジトリアクセスのためにローカルコンピューターを設定する必要があります。次のセクションでは、手順と例を示します。

ステップ 1: AccountA のリポジトリにアクセスするように AccountB ユーザーの AWS CLI と Git を設定する AccountA

SSH キーまたは Git 認証情報を使用して、別の Amazon Web Services アカウントのリポジトリにアクセスすることはできません。AccountB ユーザーは、AccountA の共有 CodeCommit リポジトリにアクセスするには、コンピュータを git-remote-codecommit (推奨) または認証情報ヘルパーを使用するように設定する必要があります。ただし、AccountB のリポジトリにアクセスするときは、引き続きSSHキーまたは Git 認証情報を使用できます。

git-remote-codecommit を使用してアクセスを設定する手順は、次のとおりです。git-remote-codecommit をまだインストールしていない場合は、Python パッケージインデックスウェブサイトの git-remote-codecommit からダウンロードします。

クロスアカウントアクセス用に AWS CLI と Git を設定するには
  1. ローカルコンピュータ AWS CLI に をインストールします。詳細については、「AWS CLIのインストール」で使用しているオペレーティングシステムの説明を参照してください。

  2. ローカルコンピュータに Git をインストールします。Git をインストールするには、Git ダウンロードGit for Windows などのウェブサイトが推奨されます。

    注記

    CodeCommit は Git バージョン 1.7.9 以降をサポートしています。Git バージョン 2.28 は、初期コミットのブランチ名の設定をサポートしています。最新バージョンの Git を使用することをお勧めします。Git は、定期的に更新されている、発展中のプラットフォームです。場合によっては、機能の変更によって の動作に影響することがあります CodeCommit。Git と の特定のバージョンで問題が発生した場合は CodeCommit、 の情報を確認してくださいトラブルシューティング

  3. ターミナルまたはコマンドラインから、リポジトリをクローンするディレクトリの場所で、git config --local user.name コマンドおよび git config --local user.email コマンドを実行して、リポジトリに作成するコミットのユーザー名および E メールを設定します。例:

    git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com

    これらのコマンドは何も返しませんが、指定した E メールおよびユーザー名は AccountA のリポジトリで作成したコミットに関連付けられます。

  4. AccountB でリソースに接続する際に使用するデフォルトのプロファイルを設定するには、aws configure --profile コマンドを実行します。プロンプトが表示されたら、IAMユーザーのアクセスキーとシークレットキーを指定します。

    注記

    を既にインストール AWS CLI し、プロファイルを設定している場合は、このステップをスキップできます。

    例えば、次のコマンドを実行して、米国東部 (オハイオ) (us-east-2) の AccountB の AWS リソースにアクセスするために使用するデフォルト AWS CLI プロファイルを作成します。

    aws configure

    プロンプトが表示されたら、次の情報を入力します。

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  5. aws configure --profile コマンドを実行して、AccountA でリポジトリに接続するときに使用するプロファイルを設定します。プロンプトが表示されたら、IAMユーザーのアクセスキーとシークレットキーを指定します。例えば、次のコマンドを実行して、 という名前の AWS CLI プロファイルを作成します。MyCrossAccountAccessProfile 米国東部 (オハイオ) (us-east-2) の AccountA のリポジトリへのアクセスに使用する :

    aws configure --profile MyCrossAccountAccessProfile

    プロンプトが表示されたら、次の情報を入力します。

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  6. プレーンテキストエディタで config ファイル ( AWS CLI 設定ファイルとも呼ばれる) を開きます。オペレーティングシステムによっては、このファイルは Linux、macOS、Unix ~/.aws/configの または にある場合があります。drive:\Users\USERNAMEWindows の \.aws\config。

  7. ファイルで、AccountB のリポジトリへのアクセス用に設定したデフォルトプロファイルに対応するエントリを見つけます。これは次のように表示されます。

    [default] region = us-east-2 output = json

    プロファイル設定に account に追加します。AccountB の AWS アカウント ID を指定します。例:

    [default] account = 888888888888 region = us-east-2 output = json
  8. ファイルで、 に対応するエントリを見つけます。MyCrossAccountAccessProfile 作成したプロファイル。これは次のように表示されます。

    [profile MyCrossAccountAccessProfile] region = us-east-2 output = json

    プロファイル設定に accountrole_arn、および source_profile を追加します。AccountA の Amazon Web Services アカウント ID、他のアカウントのリポジトリにアクセスするために引き受ける AccountA ARNのロールの ID、および AccountB のデフォルト AWS CLI プロファイルの名前を指定します。例:

    [profile MyCrossAccountAccessProfile] region = us-east-2 account = 111122223333 role_arn = arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole source_profile = default output = json

    変更を保存し、プレーンテキストエディタを閉じます。

ステップ 2: AccountA の CodeCommit リポジトリをクローンしてアクセスする

git clonegit push、および を実行して、クロスアカウント CodeCommitリポジトリをgit pullクローン、プッシュ、プルします。 AWS マネジメントコンソールにサインインし、ロールを切り替え、 CodeCommit コンソールを使用して他のアカウントのリポジトリとやり取りすることもできます。

注記

IAM ロールの設定方法によっては、 のデフォルトページでリポジトリを表示できる場合があります CodeCommit。リポジトリを表示できない場合は、コンソールの共有リポジトリの Code ページURLへのリンクを E メールで送信するようにリポジトリ管理者に依頼してください CodeCommit 。URL は次のようなものです。

https://console.aws.amazon.com/codecommit/home?region=us-east-2#/repository/MySharedDemoRepo/browse/HEAD/--/
クロスアカウントリポジトリをローカルコンピューターにクローンするには
  1. コマンドラインまたはターミナルで、リポジトリのクローンを作成するディレクトリで、 HTTPS (GRC) クローン を使用して git clone コマンドを実行しますURL。例:

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

    他の指定がない限り、リポジトリはこのリポジトリと同じ名前のサブディレクトリにクローンされます。

  2. クローンしたリポジトリのディレクトリを変更し、ファイルに変更を加えるか、またはファイルを追加します。例えば、 という名前のファイルを追加できます。NewFile.txt.

  3. ローカルリポジトリの追跡された変更にファイルを追加し、変更をコミットして、ファイルを CodeCommit リポジトリにプッシュします。例:

    git add NewFile.txt git commit -m "Added a file to test cross-account access to this repository" git push

    詳細については、「Git および の開始方法AWS CodeCommit」を参照してください。

ファイルを追加したら、 CodeCommit コンソールに移動してコミットの表示、他のユーザーのリポジトリへの変更の確認、プルリクエストへの参加などを行います。

CodeCommit コンソールでクロスアカウントリポジトリにアクセスするには
  1. AccountB AWS Management Console (888888888888) は、AccountA のリポジトリへのクロスアカウントアクセスが許可されているIAMユーザーです。

  2. ナビゲーションバーでユーザー名を選択し、ドロップダウンリストから [ロールの切り替え] を選択します。

    注記

    このオプションを初めて選択する場合には、このページの情報を確認し、[ロールの切り替え] を再度選択します。

  3. [ロールの切り替え] ページで次を実行します。

    • アカウント で、AccountA のアカウント ID を入力します (例:111122223333).

    • ロール で、AccountA のリポジトリにアクセスするために引き受けるロールの名前を入力します (例:MyCrossAccountRepositoryContributorRole).

    • [表示名] にこのロールのフレンドリ名を入力します。この名前は、ロールを引き受けたときにコンソールに表示されます。また、このコンソールで次回にロールを切り替えるときに引き受けるロールの一覧にも表示されます。

    • (オプション) [] で表示名のカラーラベルを選択します。

    • [Switch Role] を選択します。

    詳細については、「ロールの切り替え (AWS Management Console)」を参照してください。

  4. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

    引き受けたロールに AccountA のリポジトリの名前を閲覧するアクセス権限がある場合には、リポジトリの一覧、およびそのステータスを閲覧するアクセス権限がないことを通知するエラーメッセージが表示されます。これは想定される動作です。リストから共有リポジトリの名前を選択します。

    引き受けたロールに AccountA のリポジトリの名前を閲覧するアクセス権限がない場合には、エラーメッセージおよびリポジトリがない空のリストが表示されます。URL リンクをリポジトリに貼り付けるか、コンソールリンクを変更して共有リポジトリの名前 (例: ) /list に変更します/MySharedDemoRepo

  5. [コード] で、ローカルコンピュータから追加したファイルの名前を検索します。その名前を選択してファイルでコードを表示し、残りのリポジトリを表示してこの機能の使用を開始します。

    詳細については、「の開始方法 AWS CodeCommit」を参照してください。