用于缓存提取的 Amazon ECR 服务相关角色 - Amazon ECR

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

用于缓存提取的 Amazon ECR 服务相关角色

Amazon ECR 使用名为的服务相关角色 AWSServiceRoleForECRPullThroughCache,该角色授予 Amazon ECR 代表您执行操作以完成缓存提取操作的权限。有关缓存提取的更多信息,请参阅使用缓存提取规则

Amazon ECR 的服务相关角色权限

AWSServiceRoleForECRPullThroughCache服务相关角色信任以下服务来代入该角色。

  • pullthroughcache.ecr.amazonaws.com

权限详细信息

AWSECRPullThroughCache_ServiceRolePolicy 权限策略附加到服务相关角色。此托管策略授权 Amazon ECR 执行以下操作。有关更多信息,请参阅 AWSECRPullThroughCache_ServiceRolePolicy

  • ecr – 允许 Amazon ECR 服务将映像推送到私有存储库。

  • secretsmanager:GetSecretValue— 允许 Amazon ECR 服务检索 AWS Secrets Manager 密钥的加密内容。当使用缓存提取规则在私有注册表中缓存需要身份验证的上游注册表中的映像时,需要此类权限。此权限仅适用于带 ecr-pullthroughcache/ 名称前缀的密钥。

AWSECRPullThroughCache_ServiceRolePolicy 策略包含以下 JSON。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECR", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:PutImage" ], "Resource": "*" }, { "Sid": "SecretsManager", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:ecr-pullthroughcache/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

必须配置权限,允许 IAM 实体(如用户、组或角色)创建、编辑或删除服务相关角色。有关更多信息,请参阅《IAM 用户指南》中的服务相关角色权限

为 Amazon ECR 创建服务相关角色

无需手动为缓存提取创建 Amazon ECR 服务相关角色。当您在 AWS Management Console、或 AWS API 中为私有注册表创建直通缓存规则时 AWS CLI,Amazon ECR 会为您创建服务相关角色。

如果您删除了此服务相关角色然后需要再次创建它,则可以使用相同的流程在您的账户中重新创建此角色。当您为私有注册表创建缓存提取规则时,如果服务相关角色尚不存在,则 Amazon ECR 将为您再次创建该角色。

为 Amazon ECR 编辑服务相关角色

Amazon ECR 不允许手动编辑AWSServiceRoleForECRPullThroughCache服务相关角色。在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。不过,您可以使用 IAM 编辑角色的说明。有关更多信息,请参阅《IAM 用户指南》中的编辑服务相关角色

为 Amazon ECR 删除服务相关角色

如果不再需要使用某个需要服务相关角色的功能或服务,我们建议您删除该角色。这样您就没有未被主动监控或维护的未使用实体。但是,您必须先删除每个区域中的注册表缓存提取规则,才能手动删除服务相关角色。

注意

如果您尝试删除资源,而 Amazon ECR 服务仍在使用角色,则删除操作可能会失败。如果发生这种情况,请等待几分钟,然后重试。

要删除 AWSServiceRoleForECRPullThroughCache 服务相关角色所使用的 Amazon ECR 资源
  1. 打开 Amazon ECR 控制台:https://console.aws.amazon.com/ecr/

  2. 从导航栏中,选择创建缓存提取规则所在的区域。

  3. 在导航窗格中,选择私有注册表

  4. Private registry(私有注册表)页面上的 Pull through cache configuration(缓存提取配置)部分,选择 Edit(编辑)。

  5. 对于您创建的每个缓存提取规则,选择该规则,然后选择 Delete rule(删除规则)。

使用 IAM 手动删除服务相关角色

使用 IAM 控制台 AWS CLI、或 AWS API 删除AWSServiceRoleForECRPullThroughCache服务相关角色。有关更多信息,请参见《IAM 用户指南》中的删除服务相关角色