Amazon CodeCommit 现已不再向新客户提供。Amazon CodeCommit 的现有客户可以继续正常使用该服务。了解更多
跨账户存储库访问:AccountA 中管理员的操作
要允许 AccountB 中的用户或组访问 AccountA 中的存储库,AccountA 管理员必须:
在 AccountA 中创建一个授予对存储库的访问权限的策略。
在 AccountA 中创建一个可由 AccountB 中的 IAM 用户和组代入的角色。
将 策略附加到该角色。
以下各节提供了步骤和示例。
步骤 1:在 AccountA 中创建用于存储库访问的策略
您可以在 AccountA 中创建一个策略,使之授予允许 AccountB 中的用户访问 AccountA 中的存储库的权限。根据您希望允许的访问级别,执行以下操作之一:
配置策略以允许 AccountB 用户访问特定存储库,但不允许这些用户查看 AccountA 中所有存储库的列表。
配置额外访问权限以允许 AccountB 用户从 AccountA 的所有存储库列表中选择存储库。
创建用于存储库访问的策略
以具有在 AccountA 中创建角色的权限的 IAM 用户的身份登录 Amazon 管理控制台。
打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 在导航窗格中,选择策略。
选择创建策略。
选择 JSON 选项卡,并将以下 JSON 策略文档粘贴到 JSON 文本框中。将
us-east-2替换为存储库的 Amazon Web Services 区域,将111122223333替换为 AccountA 的账户 ID,将MySharedDemoRepo替换为 AccountA 中 CodeCommit 存储库的名称:如果您希望代入此角色的用户能够查看 CodeCommit 控制台主页上的存储库列表,请将一个额外的语句添加到策略,如下所示:
利用该访问权限,使用此策略代入此角色的用户能够更轻松地找到其有权访问的存储库。他们可以从列表中选择存储库的名称,并定位到共享存储库的主页 (
Code)。虽然用户无法访问列表中显示的任何其他存储库,但他们可以在控制面板页面上查看 AccountA 中的存储库。如果您希望代入此角色的用户无法查看 AccountA 中的所有存储库的列表,请使用第一个策略示例,但请确保您向这些用户发送一个指向 CodeCommit 控制台中共享存储库的主页的直接链接。
选择查看策略。策略验证器会报告语法错误(例如,如果您忘记将示例 Amazon Web Services 账户 ID 和存储库名称替换为您的 Amazon Web Services 账户 ID 和存储库名称)。
在审核策略页面上,输入策略的名称 (例如,
CrossAccountAccessForMySharedDemoRepo)。您也可以提供此策略的可选描述。选择创建策略。
步骤 2:在 AccountA 中创建用于存储库访问的角色
配置策略后,创建 AccountB 中的 IAM 用户和组可代入的角色,然后向此角色附加策略。
创建用于存储库访问的角色
在 IAM 控制台中,选择角色。
选择创建角色。
选择另一个 Amazon Web Services 账户。
在账户 ID 中,输入 AccountB 的 Amazon Web Services 账户 ID(例如,
888888888888)。选择下一步: 权限。在附加权限策略中,选择您在上一个过程中创建的策略 (
CrossAccountAccessForMySharedDemoRepo)。选择下一步:审核。在 Role name (角色名称) 中,输入角色的名称(例如,
MyCrossAccountRepositoryContributorRole)。您还可以输入可选描述,帮助他人了解角色的用途。选择创建角色。
打开您刚刚创建的角色,并复制角色 ARN (例如,
arn:aws:iam::)。您需要向 AccountB 管理员提供此 ARN。111122223333:role/MyCrossAccountRepositoryContributorRole