

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

# リポジトリへのクロスアカウントアクセス: AccountB のリポジトリユーザーのアクション
<a name="cross-account-user-b"></a>

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

**Topics**
+ [ステップ 1: AccountA のリポジトリにアクセスするように AccountB ユーザーの AWS CLI と Git AccountA を設定する](#cross-account-configure-credentials)
+ [ステップ 2: AccountA の CodeCommit リポジトリのクローンを作成してアクセスする](#cross-account-clone-and-use)

## ステップ 1: AccountA のリポジトリにアクセスするように AccountB ユーザーの AWS CLI と Git AccountA を設定する
<a name="cross-account-configure-credentials"></a>

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

**git-remote-codecommit** を使用してアクセスを設定する手順は、次のとおりです。**git-remote-codecommit** をまだインストールしていない場合は、Python パッケージインデックスウェブサイトの [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/) からダウンロードします。<a name="cross-account-configure-cli-git"></a>

**クロスアカウントアクセス用に AWS CLI と Git を設定するには**

1. ローカルコンピュータ AWS CLI に をインストールします。詳細については、「[AWS CLIのインストール](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」で使用しているオペレーティングシステムの説明を参照してください。

1. ローカルコンピュータに Git をインストールします。Git をインストールするには、[Git ダウンロード](http://git-scm.com/downloads) や [Git for Windows](http://msysgit.github.io/) などのウェブサイトが推奨されます。

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

1. ターミナルまたはコマンドラインから、リポジトリをクローンするディレクトリの場所で、**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 のリポジトリで作成したコミットに関連付けられます。

1. 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
   ```

1. **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
   ```

1. プレーンテキストエディタで `config` ファイル ( AWS CLI 設定ファイルとも呼ばれる) を開きます。オペレーティングシステムによっては、このファイルは Linux、macOS、Unix の `~/.aws/config`、あるいは Windows の {{drive}}:\\Users\\{{USERNAME}}\\.aws\\config にある場合があります。

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

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

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

   ```
   [default]
   account = {{888888888888}}
   region = us-east-2
   output = json
   ```

1. 作成した {{MyCrossAccountAccessProfile}} に対応するエントリをこのファイルで検索します。これは次のように表示されます。

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

   プロファイル設定に `account`、`role_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 リポジトリのクローンを作成してアクセスする
<a name="cross-account-clone-and-use"></a>

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

**注記**  
IAM ロールの設定に応じて、CodeCommit のデフォルトページでリポジトリを表示できる場合もあります。リポジトリを表示できない場合は、CodeCommit コンソールの共有リポジトリの [**コード**] ページへの URL リンクを E メールで送信するようにリポジトリ管理者に申請してください。この URL は次のようになります。  

```
https://console.aws.amazon.com/codecommit/home?region={{us-east-2}}#/repository/{{MySharedDemoRepo}}/browse/HEAD/--/
```<a name="cross-account-clone-cross-account-repo"></a>

**クロスアカウントリポジトリをローカルコンピューターにクローンするには**

1. コマンドラインまたはターミナルで、リポジトリをクローンするディレクトリから、HTTPS (GRC) クローン URL で **git clone** コマンドを実行します。例:

   ```
   git clone codecommit://{{MyCrossAccountAccessProfile}}@{{MySharedDemoRepo}}
   ```

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

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

1. ローカルリポジトリの変更履歴にファイルを追加して変更をコミットし、そのファイルを CodeCommit リポジトリにプッシュします。例:

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

   詳細については、「[Git と の開始方法 AWS CodeCommit](getting-started.md)」を参照してください。

ファイルを追加したら、CodeCommit コンソールに移動してコミットの表示、他のユーザーによるリポジトリの変更の確認、プルリクエストへの参加などを行います。<a name="cross-account-console"></a>

**CodeCommit コンソールでクロスアカウントリポジトリにアクセスするには**

1. AccountA AWS マネジメントコンソール のAccountB ({{888888888888}}) の にサインインします。 AccountA

1. ナビゲーションバーでユーザー名を選択し、ドロップダウンリストから [**ロールの切り替え**] を選択します。
**注記**  
このオプションを初めて選択する場合には、このページの情報を確認し、[**ロールの切り替え**] を再度選択します。

1. [**ロールの切り替え**] ページで次を実行します。
   + [**アカウント**] で AccountA のアカウント ID を入力します (例: {{111122223333}})。
   + [**ロール**] で AccountA のリポジトリにアクセスするために引き受けるロール名を入力します (例: {{MyCrossAccountRepositoryContributorRole}})。
   + [**表示名**] にこのロールのフレンドリ名を入力します。この名前は、ロールを引き受けたときにコンソールに表示されます。また、このコンソールで次回にロールを切り替えるときに引き受けるロールの一覧にも表示されます。
   + (オプション) [**色**] で表示名のカラーラベルを選択します。
   + [**Switch Role**] を選択します。

   詳細については、「[ロールの切り替え (AWS マネジメントコンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)」を参照してください。

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

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

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

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

   詳細については、「[の開始方法 AWS CodeCommit](getting-started-cc.md)」を参照してください。