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