本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
托管签名
当图像推送到 Amazon ECR 时,Amazon ECR 托管签名会使用签名器生成加密签名,从而自动对您的容AWS 器映像进行签名。这样就无需安装和配置客户端工具,并允许您将签名作为注册表配置进行集中管理。
先决条件
要配置托管签名,您可以使用 Amazon ECR 创建签名配置,该配置引用一个或多个签名者签名配置文件,并可选择使用存储库筛选器来限制哪些存储库应对其映像进行签名。配置完成后,Amazon ECR 托管签名会在推送图像时自动使用推送图像的实体的身份对图像进行签名。
在配置托管签名之前,必须具备以下条件:
-
签名者签名档案-创建至少一个签名者签名档案。签名资料是一种独特的 AWS 签名者资源,可用于在 Amazon ECR 中执行签名操作。签名配置文件使您能够对代码工件(例如容器镜像和 AWS Lambda 部署包)进行签名和验证。每个签名配置文件都指定要登录的签名平台、平台 ID 和其他特定于平台的信息。例如,签名档案 ARN 如下所示:。
arn:partition:signer:region:account-id:/signing-profiles/profile-name -
IAM 权限 — 推送映像的 IAM 委托人必须拥有必要的 IAM 权限才能访问相关的签名者签名资料和相关 ECR 存储库。您需要修改 IAM 委托人的基于身份的策略,使其包括 ECR 存储库操作和签名者签名操作的权限。以下示例策略显示了所需的权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid":"UploadSignaturePermissions", "Effect":"Allow", "Action":[ "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage" ], "Resource":"arn:aws:ecr:region:account-id:repository/repository-name" }, { "Sid": "SignPermissions", "Effect": "Allow", "Action": [ "signer:SignPayload" ], "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name" } ] }
使用 Amazon ECR 托管签名,您可以创建多个签名规则(每个注册表最多 10 个),以创建更强的安全边界。例如,您可能运行多个构建管道,并希望限制每个管道可以签署哪些存储库。在每条规则中,您可以配置签名配置文件并指定存储库名称过滤器。当推送新图像时,Amazon ECR 会匹配哪个签名规则和签名配置文件可以对图像进行签名。如果有多个匹配项,Amazon ECR 会生成多个签名。
注意
如果您手动验证签名,则仍需要安装 Notation CLI。
注意
Amazon ECR 托管签名适用于所有支持使用签名 AWS 者进行容器镜像签名的 AWS 区域。
开始使用
按照以下步骤配置托管签名。您可以向 Amazon ECR 提供对签名者签名资料的引用,并可选择提供筛选条件,以限制哪些存储库应对其映像进行签名。
注意事项
以下限制和功能适用于托管签名:
-
不支持跨区域签名 — 签名配置文件必须与您的 Amazon ECR 注册表位于同一区域。您不能使用一个区域的签名配置文件对位于其他区域的注册表中的图像进行签名。
-
支持跨账户签名 — 签名资料可以与您的 Amazon ECR 注册表位于不同的账户中。这使组织能够集中管理签名配置文件,同时允许其他账户的开发者使用它们。有关更多信息,请参阅AWS Signer 开发者指南中的为签名者设置跨账户签名。
-
签名无法签名-您不能自己签署签名。只能对容器镜像进行签名。