更新时间:2024-09-29 GMT+08:00

容器镜像签名验证

插件简介

容器镜像签名验证插件(swr-cosign)提供镜像验签功能,可以对镜像文件进行数字签名验证,以确保镜像文件的完整性和真实性,有效地防止软件被篡改或植入恶意代码,保障用户的安全。

约束与限制

  • 使用镜像验签功能依赖容器镜像仓库企业版,请先创建一个企业版仓库。

安装插件

  1. 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到容器镜像签名验证,单击“安装”
  2. 在安装插件页面,根据需求选择“规格配置”

    • 选择“系统预置规格”时,您可根据集群规模选择“小规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。

      “小规格”为单实例部署,适用于并发下载不同镜像数量小于50的集群;“大规格”为双实例部署,具有高可用能力,适用于并发下载不同镜像数量小于300的集群。

    • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。

  3. 设置插件支持的“参数配置”

    表1 swr-cosign插件参数配置

    参数

    参数说明

    KMS密钥

    选择一个密钥,仅支持 EC_P256、EC_P384、SM2 类型的密钥。

    您可以前往密钥管理服务新增密钥。

    验签镜像

    验签镜像地址通过正则表达式进行匹配,例如填写docker.io/**表示对docker.io镜像仓库的镜像进行验签。如需对所有镜像验签,请填写**。

  4. 单击“安装”。

    待插件安装完成后,选择对应的集群,然后单击左侧导航栏的“插件中心”,可筛选“已安装插件”查看相应的插件。

组件说明

表2 swr-cosign组件

容器组件

说明

资源类型

swr-cosign

swr-cosign负责对镜像文件进行数字签名验证,以保证镜像文件未被篡改。

Deployment

使用说明

  1. 参考安装插件中的步骤,在集群中安装插件,并设置KMS密钥和验签镜像地址。
  2. 为需要验签的命名空间加上policy.sigstore.dev/include:true标签。

    1. 在集群控制台左侧导航栏单击“命名空间”
    2. 找到需要验签的命名空间,单击操作列的“更多>标签管理”。
    3. 新增一个标签,键值填写如下:
      • 键:policy.sigstore.dev/include
      • 值:true
    4. 单击“确定”

  3. 测试镜像验签功能是否生效。

    1. 在集群控制台左侧导航栏单击“工作负载”
    2. 单击右上角“创建工作负载”。
    3. 选择已添加标签的命名空间,并填写未经签名的镜像地址,其余参数请参考创建无状态负载(Deployment)按需填写。
    4. 单击“创建工作负载”
      未经签名的镜像将被拦截,提示如下:
      admission webhook "policy.sigstore.dev" denied the request: validation failed: failed policy: cip-key-secret-match: spec.template.spec.containers[0].image ...

  4. 为镜像添加签名。

    1. 登录SWR企业仓库,进入一个已有的仓库实例。
    2. 在左侧导航栏中单击“安全可信>镜像签名”,创建一个签名规则。
      • 规则名称:为签名规则命名。
      • 组织:选择一个容器镜像组织。
      • 规则范围:
        • 镜像:选择需要签名的镜像。您也可以通过正则表达式匹配多个镜像。
        • 版本:选择镜像版本,若不填或填写**则表示匹配该镜像的所有版本。
      • 签名方式:选择KMS方式。
      • 签名Key:选择一个KMS密钥,该密钥需要与安装插件时的密钥相同。
      • 触发模式:
        • 手动:创建完成签名规则后,需要手动执行规则来对镜像进行签名。
        • 事件触发+手动:可通过事件触发签名动作,也可以手动执行规则对镜像进行签名。
      • 规则描述:填写规则的描述信息。
    3. 签名规则创建完成后,单击操作列的“执行”,对所选镜像进行签名。
    4. 签名成功后,在左侧导航栏中单击“制品仓库>镜像仓库”,单击该镜像名称查看镜像详情。该镜像已存在签名附件。

  5. 重新回到CCE控制台,使用该镜像创建工作负载,创建测试镜像是否可以成功创建。

版本记录

表3 swr-cosign插件版本记录

插件版本

支持的集群版本

更新特性

1.0.2

v1.23

v1.25

v1.27

支持v1.27集群

1.0.1

v1.23

v1.25

支持镜像验签