本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
IAM将上游注册表与 Amazon ECR 私有注册表同步所需的权限
除了向私有注册表进行身份验证以及推送和拉取映像所需的 Amazon ECR API 权限外,还需要以下额外权限才能有效使用拉取缓存规则。
-
ecr:CreatePullThroughCacheRule
– 授予创建拉取缓存规则的权限。此权限必须通过基于身份IAM的策略授予。 -
ecr:BatchImportUpstreamImage
– 授权检索外部镜像并将其导入到您的私有注册表。可以使用私有注册表权限策略、基于身份的策略或基于资源的存储库权限IAM策略来授予此权限。有关使用存储库权限的更多信息,请参阅 Amazon ECR 中的私有存储库政策。 -
ecr:CreateRepository
– 授予在私有注册表中创建存储库的权限。如果存储缓存图像的存储库不存在,则需要此权限。此权限可通过基于身份的IAM策略或私有注册表权限策略授予。
使用注册表权限
Amazon ECR 私有注册表权限可用于限制各个IAM实体使用直通缓存的权限。如果某个IAM实体拥有的IAM策略授予的权限多于注册表权限策略授予的权限,则该IAM策略优先。例如,如果用户已授予 ecr:*
权限,则无需额外的注册表级别权限。
打开亚马逊ECR控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择您在其中配置私有注册表权限语句的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Registry permissions(注册表权限)。
-
在 Registry permissions(注册表权限)页面上,选择 Generate statement(生成语句)。
-
对于要创建的每个缓存提取权限策略语句,请执行以下操作。
-
对于 Policy type(策略类型),请选择 Pull through cache policy(推送缓存策略)。
-
对于 Statement id(语句 ID),为推送缓存语句策略提供名称。
-
对于IAM实体,请指定要包含在策略中的用户、组或角色。
-
对于 Repository namespace(存储库命名空间),选择要与策略关联的推送缓存规则。
-
对于 Repository names(存储库名称),指定要应用规则的存储库基本名称。例如,如果您想在 Amazon P ECR ublic 上指定 Amazon Linux 存储库,则存储库名称应为
amazonlinux
。
-
使用以下 Amazon CLI 命令通过指定私有注册表权限 Amazon CLI。
-
创建名为
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委托人(例如管理员和开发人员)完成。 -
使用put-registry-policy命令设置注册表策略。
aws ecr put-registry-policy \ --policy-text file://
ptc-registry.policy.json
后续步骤
准备好开始使用缓存提取规则后,请执行以下后续步骤。
-
创建缓存提取规则。有关更多信息,请参阅 在 Amazon 中创建直通缓存规则 ECR。
-
创建存储库创建模板。仓库创建模板使您可以控制定义设置,以便在缓存拉取操作期间,Amaz ECR on 代表您创建的新存储库使用这些设置。有关更多信息,请参阅 用于控制在缓存拉取或复制操作期间创建的存储库的模板。