AWS发布AWS Signer容器镜像签名功能
AWS推出了AWS Signer容器镜像签名功能,旨在为容器镜像的签名和验证提供原生支持,特别是在Amazon Elastic Container Registry(Amazon ECR)等注册表中。AWS Signer管理代码签名证书、公钥和私钥,并提供生命周期管理工具。
主要功能
- 跨账户签名:允许在受限账户中创建和管理签名配置文件,减少拥有这些权限的人员数量。可以根据需要授予其他账户签名权限。AWS CloudTrail可用于提供两个账户中的活动审计日志。
签名有效期:可以创建自过期配置文件。在创建签名配置文件时,可以指定有效期;如果未提供,则默认使用135个月(最大值)。
aws signer put-signing-profile \ --profile-name my_conatiner_signing_profile \ --platform-id Notation-OCI-SHA384-ECDSA \ --signature-validity-period value=10, type='MONTHS'配置文件取消与撤销:取消的配置文件无法用于生成新签名。撤销签名配置文件将使撤销后创建的任何签名失效。撤销签名会导致使用该签名的容器在部署时验证失败。撤销操作不可逆。
package com.examples; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.signer.AWSSigner; import com.amazonaws.services.signer.AWSSignerClient; import com.amazonaws.services.signer.model.RevokeSignatureRequest; public class RevokeSignature { public static void main(String[] s) { String credentialsProfile = "default"; String signingJobId = "jobID"; String revokeReason = "Reason for revocation"; // Create a client. final AWSSigner client = AWSSignerClient.builder() .withRegion("region") .withCredentials(new ProfileCredentialsProvider(credentialsProfile)) .build(); // Revoke a signing job client.revokeSignature(new RevokeSignatureRequest() .withJobId(signingJobId) .withReason(revokeReason)); } }
与Notation的集成
AWS Signer与Notation集成,Notation是一个开源的云原生计算基金会(CNCF)Notary项目。Notation利用Open Containers Initiative(OCI)分发功能,将签名和工件与其关联的镜像一起存储在注册表中。
与AWS Lambda的集成
AWS Signer还与AWS Lambda集成,支持生成可验证的代码包。工作流程需要创建源和目标S3存储桶,AWS Signer可以从源存储桶中提取代码包,签名后存入目标存储桶。
支持的服务和区域
AWS Signer可与AWS Lambda、Amazon FreeRTOS、AWS IoT设备管理、Amazon ECR、Amazon EKS、AWS证书管理器和CloudTrail等服务一起使用。支持的区域列表可在AWS文档中找到。
更多信息
更多详细信息可在发布博客文章中查阅。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。