跨账户存储库访问: 管理员在中的操作 AccountA - AWS CodeCommit

跨账户存储库访问: 管理员在中的操作 AccountA

如何允许用户或组 AccountB 以访问 AccountA,一个 AccountA 管理员必须:

  • 在中创建策略 AccountA 授予对存储库的访问权限。

  • 在中创建角色 AccountA 可以假设的是 IAM 用户和组 AccountB.

  • 将 策略附加到该角色。

以下各节提供了步骤和示例。

第1步: 在中为存储库访问创建策略 AccountA

您可以在 AccountA 授予对存储库的访问权限 AccountB。根据您要允许的访问权限级别,执行以下操作之一:

  • 配置策略以允许 AccountB 用户访问特定存储库,但不允许他们查看 AccountA.

  • 配置附加访问权限以允许 AccountB 用户可从中的所有存储库列表中选择存储库 AccountA.

创建用于存储库访问的策略

  1. 登录 AWS 管理控制台作为 IAM 具有在中创建策略的权限的用户 AccountA.

  2. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  3. 在导航窗格中,选择策略

  4. 选择 Create policy (创建策略)

  5. 选择 JSON 选项卡,并将以下 JSON 策略文档粘贴到 JSON 文本框中。Replace us-east-2 库的AWS区域,111122223333 的帐户ID AccountA,和 MySharedDemoRepo 您的 CodeCommit 存储库 AccountA:

    { "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. 选择查看策略。策略验证器会报告语法错误(例如,如果您忘记将示例 AWS 账户 ID 和存储库名称替换为您的 AWS 账户 ID 和存储库名称)。

  7. 审查政策 页面中,输入策略的名称(例如: CrossAccountAccessForMySharedDemoRepo)。您还可以提供此策略的可选描述。选择 Create policy (创建策略)

第2步: 在中创建存储库访问角色 AccountA

在配置策略后,创建一个角色 IAM 用户和组 AccountB 可以假设并将政策附加到该角色。

创建用于存储库访问的角色

  1. 在 IAM 控制台中,选择角色

  2. 选择创建角色

  3. 选择其他 AWS 账户

  4. 英寸 帐户ID,输入 AWS 帐户ID AccountB (例如,888888888888)。选择 下一步: 权限。

  5. 英寸 附加权限策略,选择您在上一过程中创建的策略(CrossAccountAccessForMySharedDemoRepo)。选择 下一步: 回顾.

  6. 英寸 角色名称,输入角色的名称(例如: MyCrossAccountRepositoryContributorRole)。您还可以输入可选描述,以帮助他人了解角色的目的。

  7. 选择创建角色

  8. 打开您刚刚创建的角色,并复制角色 ARN (例如,arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole)。您需要将此ARN提供给 AccountB 管理员。