IAM将上游注册表与 Amazon ECR 私有注册表同步所需的权限 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

IAM将上游注册表与 Amazon ECR 私有注册表同步所需的权限

除了向私有注册表进行身份验证以及推送和拉取映像所需的 Amazon ECR API 权限外,还需要以下额外权限才能有效使用拉取缓存规则。

  • ecr:CreatePullThroughCacheRule – 授予创建拉取缓存规则的权限。此权限必须通过基于身份IAM的策略授予。

  • ecr:BatchImportUpstreamImage – 授权检索外部镜像并将其导入到您的私有注册表。可以使用私有注册表权限策略、基于身份的策略或基于资源的存储库权限IAM策略来授予此权限。有关使用存储库权限的更多信息,请参阅 Amazon ECR 中的私有存储库政策

  • ecr:CreateRepository – 授予在私有注册表中创建存储库的权限。如果存储缓存图像的存储库不存在,则需要此权限。此权限可通过基于身份的IAM策略或私有注册表权限策略授予。

使用注册表权限

Amazon ECR 私有注册表权限可用于限制各个IAM实体使用直通缓存的权限。如果某个IAM实体拥有的IAM策略授予的权限多于注册表权限策略授予的权限,则该IAM策略优先。例如,如果用户已授予 ecr:* 权限,则无需额外的注册表级别权限。

  1. 打开亚马逊ECR控制台,网址为https://console.aws.amazon.com/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实体,请指定要包含在策略中的用户、组或角色。

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

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

使用以下 Amazon CLI 命令通过指定私有注册表权限 Amazon CLI。

  1. 创建名为 ptc-registry-policy.json 的本地文件,其中包含注册表策略的内容。以下示例授予创建存储库和从 Amazon Public 提取图像的ecr-pull-through-cache-user权限,Amazon P ECR ublic 是与先前创建的拉取缓存规则关联的上游来源。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PullThroughCacheFromReadOnlyRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ecr-pull-through-cache-user" }, "Action": [ "ecr:CreateRepository", "ecr:BatchImportUpstreamImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/ecr-public/*" } ] }
    重要

    仅当存储缓存镜像的存储库不存在时才需要 ecr-CreateRepository 权限。例如,如果存储库创建操作和图像拉取操作由不同的IAM委托人(例如管理员和开发人员)完成。

  2. 使用put-registry-policy命令设置注册表策略。

    aws ecr put-registry-policy \ --policy-text file://ptc-registry.policy.json

后续步骤

准备好开始使用缓存提取规则后,请执行以下后续步骤。