容器镜像签名

最近更新时间:2023-09-13 17:02:51

我的收藏
镜像签名和验签功能可避免中间人攻击和非法镜像的更新及运行,进而实现镜像从分发到部署的全链路一致性。腾讯云容器镜像服务(Tencent Container Registry,TCR)企业版支持开启命名空间级别的镜像自动签名特性,在推送镜像到仓库时自动匹配签名策略并完成加签动作,保障您仓库下的镜像内容可信。
注意:
容器镜像签名当前为 Beta 功能,功能使用过程中如遇到异常,您可 在线咨询 联系我们。

前提条件

在使用镜像签名功能前,您需要完成以下准备工作:
如果使用子账号进行操作,请参考 企业版授权方案示例 提前为子账号授予对应实例的操作权限。
已开通 密钥管理服务

操作步骤

创建非对称签名验签密钥

2. 密钥管理 > 用户密钥中,单击新建
3. 在“新建密钥”弹窗中,配置密钥参数,单击确定。容器签名功能要求 KMS 的密钥用途为“非对称签名验签”,加密算法为“RSA_2048”,其他参数配置请参见 创建密钥
说明
TCR 支持获取 KMS 服务全地域下的用户密钥,为降低跨地域间的通信开销,建议 KMS 用户密钥和镜像仓库实例位于相同地域下。

授权容器镜像服务使用 KMS 密钥

为让 TCR 服务可以读取到您账号下的非对称签名验签密钥,需要在您的账号配置如下策略。
2. 在“角色”页面,单击TCR_QCSRole
3. 在 TCR_QCSRole 角色详情页,关联预设策略 QcloudKMSFullAccess,如下图所示:



创建镜像签名策略

2. 在实例管理页面中选择目标镜像仓库实例。
3. 选择左侧导航栏中的镜像安全,进入“镜像签名”详情页。
4. 单击新建,在“新建签名策略”弹窗中,填写以下信息:


策略名称:镜像签名策略名称。长度限制在2-50个字符,只能包含小写字母、数字及分隔符("."、"_"、"-","/")且不能以分隔符开头、结尾或连续。
命名空间:镜像签名策略生效的命名空间,一个命名空间下仅支持创建一个签名策略。
KMS 密钥:支持签名操作的 KMS 用户密钥,仅支持加载”非对称签名验签RSA2048“用途密钥。
域名:用于访问仓库实例服务。
5. 单击确认完成签名策略的创建。
说明
签名策略创建后对新镜像立刻生效,即推送镜像到仓库时将自动匹配签名策略并完成镜像加签动作。
签名策略开启对仓库中已经存在的镜像不生效,您需在镜像仓库 > 版本管理中手动触发镜像签名。

查看镜像签名状态

可在命名空间页面查看是否开启加签策略。如下图所示:


可在镜像仓库 > 版本管理页面查看镜像是否开启加签策略。针对开启加签策略前已推送至仓库的镜像,可以在“操作”中手动触发加签。如下图所示:



删除镜像签名策略

在“镜像签名”页面选择需要删除的签名策略,单击删除。在弹出的“删除签名策略”窗口中单击确认。如下图所示:


说明
删除签名策略的同时会删除存量命名空间内的镜像签名信息,可能会造成签名验证失败,请谨慎操作。

相关文档

您可以在 TKE 集群中使用增强组件进行自动验签,设置相应策略在验签失败时阻断镜像部署。详情请参见 容器镜像签名验证