リポジトリへのクロスアカウントアクセス: AccountB のリポジトリユーザーのアクション - 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 ユーザーのアクセスキーとシークレットキーを提供します。例えば、次のコマンドを実行して、米国東部 (オハイオ) (us-east-2) の AccountA のリポジトリにアクセスMyCrossAccountAccessProfileするために使用する という名前のプロファイルを作成します AWS CLI 。

    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、あるいは Windows の drive:\Users\USERNAME\.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)、および 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。リポジトリを表示できない場合は、 CodeCommit コンソールの共有リポジトリのコードページへの URL リンクを E メールで送信するようにリポジトリ管理者に依頼してください。この URL は次のようになります。

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

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

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

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

  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. AccountA AWS Management Console のAccountB (888888888888) の にサインインします。 AccountA

  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」を参照してください。