授予在 Amazon ECR 中进行跨账户复制的注册权限 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

授予在 Amazon ECR 中进行跨账户复制的注册权限

跨账户策略类型被用于向 Amazon 主体授予权限,允许将存储库从源注册表复制到您的注册表。预设情况下,您有权在自己的注册表中配置跨区域复制。如果您授予其他账户将内容复制到注册表的权限,则只需配置注册表策略。

注册表策略必须授予 ecr:ReplicateImage API 操作权限。此 API 是一个内部 Amazon ECR API,可在区域或账户之间复制镜像。您还可以授予 ecr:CreateRepository 权限,该权限允许 Amazon ECR 在您的注册表中创建存储库 (如果存储库尚不存在)。如果未提供 ecr:CreateRepository 权限,则必须在注册表中手动创建与源存储库名称相同的存储库。如果两者均未完成,复制将失败。任何失败的操作 CreateRepository 或 ReplicateImage API 操作都会显示在中 CloudTrail。

  1. 打开位于 https://console.aws.amazon.com/ecr/ 的 Amazon ECR 控制台。

  2. 从导航栏中,选择区域以配置注册表策略。

  3. 在导航窗格中,选择 Private registry(私有注册表)、Registry permissions(注册表权限)。

  4. Registry permissions(注册表权限)页面上,选择 Generate statement(生成语句)。

  5. 使用策略生成器完成以下步骤以定义策略声明。

    1. 对于 Policy type(策略类型),选择 Cross account policy(跨账户策略)。

    2. 对于声明 ID,输入唯一的声明 ID。此字段在注册表策略上用作 Sid

    3. 对于账户,输入要向其授予权限的每个账户的账户 ID。当指定多个账户 ID 时,请将它们以逗号分隔。

  6. 展开预览策略声明部分以查看注册表权限策略声明。

  7. 确认策略声明后,选择添加到策略以将策略保存到您的注册表。

  1. 创建名为 registry_policy.json 的文件并使用注册表策略填充它。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"ReplicationAccessCrossAccount", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source_account_id:root" }, "Action":[ "ecr:CreateRepository", "ecr:ReplicateImage" ], "Resource": [ "arn:aws:ecr:us-west-2:your_account_id:repository/*" ] } ] }
  2. 使用策略文件创建注册表策略。

    aws ecr put-registry-policy \ --policy-text file://registry_policy.json \ --region us-west-2
  3. 检索要确认的注册表策略。

    aws ecr get-registry-policy \ --region us-west-2