本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
授予在 Amazon ECR 中进行跨账户复制的注册权限
跨账户策略类型被用于向 Amazon 主体授予权限,允许将存储库从源注册表复制到您的注册表。预设情况下,您有权在自己的注册表中配置跨区域复制。如果您授予其他账户将内容复制到注册表的权限,则只需配置注册表策略。
注册表策略必须授予 ecr:ReplicateImage
API 操作权限。此 API 是一个内部 Amazon ECR API,可在区域或账户之间复制镜像。您还可以授予 ecr:CreateRepository
权限,该权限允许 Amazon ECR 在您的注册表中创建存储库 (如果存储库尚不存在)。如果未提供 ecr:CreateRepository
权限,则必须在注册表中手动创建与源存储库名称相同的存储库。如果两者均未完成,复制将失败。任何失败的操作 CreateRepository 或 ReplicateImage API 操作都会显示在中 CloudTrail。
打开位于 https://console.aws.amazon.com/ecr/
的 Amazon ECR 控制台。 -
从导航栏中,选择区域以配置注册表策略。
-
在导航窗格中,选择 Private registry(私有注册表)、Registry permissions(注册表权限)。
-
在 Registry permissions(注册表权限)页面上,选择 Generate statement(生成语句)。
-
使用策略生成器完成以下步骤以定义策略声明。
-
对于 Policy type(策略类型),选择 Cross account policy(跨账户策略)。
-
对于声明 ID,输入唯一的声明 ID。此字段在注册表策略上用作
Sid
。 -
对于账户,输入要向其授予权限的每个账户的账户 ID。当指定多个账户 ID 时,请将它们以逗号分隔。
-
-
展开预览策略声明部分以查看注册表权限策略声明。
-
确认策略声明后,选择添加到策略以将策略保存到您的注册表。
-
创建名为
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/*
" ] } ] } -
使用策略文件创建注册表策略。
aws ecr put-registry-policy \ --policy-text file://
registry_policy.json
\ --regionus-west-2
-
检索要确认的注册表策略。
aws ecr get-registry-policy \ --region
us-west-2