本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将上游注册表与 Amazon ECR 私有注册表同步所需的 IAM 权限
除了对私有注册表进行身份验证以及推送和提取映像时所需的 Amazon ECR API 权限之外,还需要以下其他权限才能有效使用缓存提取规则。
-
ecr:CreatePullThroughCacheRule
– 授予创建拉取缓存规则的权限。此权限必须通过基于身份的 IAM policy 授予。 -
ecr:BatchImportUpstreamImage
– 授权检索外部镜像并将其导入到您的私有注册表。可以通过使用私有注册表权限策略、基于身份的 IAM policy 或通过使用基于资源的存储库权限策略授予此权限。有关使用存储库权限的更多信息,请参阅 Amazon ECR 中的私有存储库策略。 -
ecr:CreateRepository
– 授予在私有注册表中创建存储库的权限。如果存储缓存图像的存储库不存在,则需要此权限。可以通过基于身份的 IAM policy 或私有注册表权限策略授予此权限。
使用注册表权限
Amazon ECR 私有注册表权限可用于限定各个 IAM 实体使用缓存提取的权限范围。如果 IAM policy 授予 IAM 实体的权限多于注册表权限策略授予的权限,则 IAM policy 优先。例如,如果用户已授予 ecr:*
权限,则无需额外的注册表级别权限。
打开 Amazon 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 entities(IAM 实体),指定要包含在策略中的用户、组或角色。
-
对于 Repository namespace(存储库命名空间),选择要与策略关联的推送缓存规则。
-
对于 Repository names(存储库名称),指定要应用规则的存储库基本名称。例如,如果您想在 Amazon ECR Public 上指定 Amazon Linux 存储库,存储库名称将为
amazonlinux
。
-
使用以下命令 AWS CLI 命令来通过 AWS CLI 指定私有注册表权限。
-
创建名为
ptc-registry-policy.json
的本地文件,其中包含注册表策略的内容。以下示例授予创建存储库并从 Amazon ECR Public 中拉取镜像的ecr-pull-through-cache-user
权限,Amazon ECR Public 是与之前创建的拉取缓存规则相关联的上游源。{ "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 中创建缓存提取规则。
-
创建存储库创建模板。有了存储库创建模板,在为 Amazon ECR 在缓存提取操作期间代表您创建的新存储库定义设置时,您能拥有控制权。有关更多信息,请参阅 用于控制在缓存提取或复制操作期间创建的存储库的模板。