リポジトリへのクロスアカウントアクセス: AccountA の管理者のアクション - AWS CodeCommit

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

リポジトリへのクロスアカウントアクセス: AccountA の管理者のアクション

AccountB のユーザーまたはグループが AccountA のリポジトリにアクセスすることを許可するには、AccountA の管理者は以下を行う必要があります。

  • AccountA でリポジトリにアクセスを付与するポリシーを作成します。

  • AccountB の IAM ユーザーおよびグループが引き受けることができるロールを AccountA で作成します。

  • ロールへのポリシーの付与

次のセクションでは、手順と例を示します。

ステップ 1: AccountA でリポジトリアクセス用のポリシーを作成する

AccountB がリポジトリにアクセスを付与するポリシーを AccountA で作成できます。許可するアクセスのレベルに応じて、次のいずれかのリンクを実行します。

  • AccountB ユーザーに特定のリポジトリへのアクセスを許可しますが、AccountA のすべてのリポジトリの一覧を閲覧することを許可しないポリシーを設定します。

  • AccountB ユーザーが AccountA のすべてのリポジトリの一覧からリポジトリを選択することを許可する追加のアクセスを設定します。

リポジトリアクセス用のポリシーを作成するには
  1. AccountA でポリシーを作成するアクセス許可を持つ IAM ユーザーとして、AWS マネジメントコンソールにサインインします。

  2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  3. ナビゲーションペインで、ポリシー を選択します。

  4. [ポリシーの作成] を選択します。

  5. [JSON] タブを選択して、次の JSON ポリシードキュメントを JSON テキストボックスに貼り付けます。us-east-2 をリポジトリAWS リージョンの に、111122223333 を AccountA のアカウント ID に、 を AccountA の CodeCommit リポジトリの名前MySharedDemoRepoに置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] } ] }

    このロールを引き受けるユーザーが CodeCommit コンソールのホームページでリポジトリのリストを表示できるようにするには、次のようにポリシーにステートメントを追加します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] }, { "Effect": "Allow", "Action": "codecommit:ListRepositories", "Resource": "*" } ] }

    このアクセスは、このポリシーでこのロールを引き受けるユーザーにアクセス許可があるリポジトリの検索を容易にします。これで、一覧からリポジトリの名前を選択し、共有するリポジトリのホームページに移動することができます (Code)。ユーザーは一覧に表示されるその他のリポジトリにはアクセスすることはできませんが、[ダッシュボード] ページで AccountA のリポジトリを表示することはできます。

    ロールを引き受けるユーザーが AccountA のすべてのリポジトリのリストを表示できるようにする場合は、最初のポリシー例を使用しますが、それらのユーザーに CodeCommit コンソールの共有リポジトリのホームページへの直接リンクを送信していることを確認してください。

  6. [ポリシーの確認] を選択します。ポリシー検証で構文エラーが報告されます (サンプルの Amazon Web Services アカウント ID およびリポジトリ名を、自身の Amazon Web Services アカウント ID およびリポジトリ名に置き換えることを忘れた場合など)。

  7. 「ポリシーの確認」ページで、ポリシーの名前 (リポジトリ など) CrossAccountAccessForMySharedDemoを入力します。このポリシーにオプションの説明を提供することもできます。[ポリシーの作成] を選択します。

ステップ 2: AccountA でリポジトリアクセス用のロールを作成する

ポリシーを設定したら、AccountB の IAM ユーザーおよびグループが引き受けるロールを作成し、ポリシーをこのロールにアタッチします。

リポジトリアクセス用のロールを作成するには
  1. IAM コンソールで、[ロール] を選択します。

  2. [ロールの作成] を選択します。

  3. 別のAmazon Web Services アカウントを選択します。

  4. [アカウント ID]、で AccountB の Amazon Web Services アカウント ID を入力します (例: 888888888888)。[Next: Permissions (次へ: アクセス許可)] を選択します。

  5. 「アクセス許可ポリシーをアタッチする」で、前の手順で作成したポリシーを選択します (CrossAccountAccessForMySharedDemoリポジトリ )。[次へ: 確認] を選択します。

  6. 「ロール名」で、ロールの名前 (例: ) を入力しますMyCrossAccountRepositoryContributorRole。他のユーザーがこのロールの役割を理解するように、オプションの説明を入力することもできます。

  7. [ロールの作成] を選択します。

  8. 作成したロールを開き、ロールの ARN をコピーします (たとえば、arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole)。AccountB の管理者にこの ARN を提供する必要があります。