本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理签名
当图像推送到 Amazon ECR 时,Amazon ECR 管理签名通过使用 AWS Signer 生成加密签名来自动对您的容器镜像进行签名。这样就无需安装和配置客户端工具,并允许您集中管理作为注册表配置的签名。
先决条件
要配置托管签名,您可以使用 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 Signer 进行容器镜像签名的 AWS 区域。
开始使用
按照以下步骤配置管理签名。您可以向 Amazon ECR 提供签名者签名资料的参考信息,并可选择向哪些存储库提供镜像签名的筛选条件。
注意事项
以下限制和功能适用于托管签名:
-
Cross-region 不支持签名 -签名配置文件必须与您的 Amazon ECR 注册表位于同一区域。您不能使用一个地区的签名配置文件对位于不同区域的注册表中的图像进行签名。
-
Cross-account 支持签名 — 签名配置文件可以与您的 Amazon ECR 注册表位于不同的账户中。这使组织能够集中管理签名配置文件,同时允许其他账户的开发人员使用它们。有关更多信息,请参阅《AWS Signer 开发者指南》中的 “为 Signer 设置跨账户签名”。
-
签名无法签名 -您不能自己签署签名。只能对容器镜像进行签名。