设置私有注册表权限声明 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

设置私有注册表权限声明

您可以使用以下步骤添加或更新注册表的权限策略。您可以为每个注册表添加多个策略声明。有关示例策略,请参阅 私有注册表策略示例

私有注册表复制权限

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

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

要为私有注册表配置复制权限策略 (Amazon Web Services Management Console)

  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. 确认策略声明后,选择添加到策略以将策略保存到您的注册表。

为私有注册表配置权限策略 (Amazon CLI)

  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

私有注册表缓存提取权限

Amazon ECR 私有注册表权限可用于限定各个 IAM 实体使用推送缓存的权限范围。如果 IAM 策略授予 IAM 实体的权限多于注册表权限策略授予的权限,则 IAM 策略优先。

要创建私有注册表的权限策略 (Amazon Web Services Management Console)

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

  2. 从导航栏中,选择您在其中配置私有注册表权限语句的区域。

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

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

  5. 对于要创建的每个缓存提取权限策略语句,请执行以下操作。

    1. 对于 Policy type(策略类型),请选择 Pull through cache policy(推送缓存策略)。

    2. 对于 Statement id(语句 ID),为推送缓存语句策略提供名称。

    3. 对于 IAM entities(IAM 实体),指定要包含在策略中的 IAM 用户、组或角色。

    4. 对于 Repository namespace(存储库命名空间),选择要与策略关联的推送缓存规则。

    5. 对于 Repository names(存储库名称),指定要应用规则的存储库基本名称。例如,如果您想在 Amazon ECR Public 上指定 Amazon Linux 存储库,存储库名称将为 amazonlinux