更新时间:2024-05-23 GMT+08:00
分享

镜像签名

操作场景

容器镜像服务企业版支持使用数据加密服务(DEW)中创建的密钥对镜像进行签名,保障镜像分发部署过程中的一致性,避免中间人攻击和非法镜像更新及运行。支持命名空间级别的自动镜像签名,容器镜像上传后都会根据签名规则自动签名。在使用镜像签名功能时,请先在数据加密服务(DEW)中创建非对称秘钥,然后创建签名规则,设置参数。之后根据规则设置的触发模式完成手动或者自动签名。

约束与限制

  • 镜像验签功能仅支持V1.23及以上集群版本
  • 当前支持密钥算法类型见表1
  • 单个仓库最多同时支持100000 tag,单个仓库的签名速度为1分钟300个tag本;验签插件安装后,验签速度为1分钟300个镜像版本。

创建非对称密钥

  1. 登录数据加密服务控制台。
  2. 在左侧导航栏选择“密钥管理”,单击右上角的“创建密钥”
  3. “创建密钥”对话框中配置参数,然后单击“确定”

    镜像签名功能需要非对称密钥算法的支持,创建密钥时,密钥算法需选择EC、RSA或SM2类型,详情请见表1。其他参数配置请参见创建密钥

    图1 创建密钥
    表1 容器镜像服务支持的密钥算法类型

    密钥类型

    算法类型

    密钥规格

    说明

    用途

    非对称密钥

    RSA

    • RSA_2048
    • RSA_3072
    • RSA_4096
      • RSASSA_PSS_SHA_256
      • RSASSA_PSS_SHA_384
      • RSASSA_PSS_SHA_512
      • RSASSA_PKCS1_V1_5_SHA_256
      • RSASSA_PKCS1_V1_5_SHA_384
      • RSASSA_PKCS1_V1_5_SHA_512

    RSA非对称密钥

    小量数据的加解密或数字签名。

    非对称密钥

    ECC

    • EC_P256
      • ECDSA_SHA_256
    • EC_P384
      • ECDSA_SHA_384

    椭圆曲线密码,使用NIST推荐的椭圆曲线

    数字签名

    非对称密钥

    SM2

    SM2

    国密SM2非对称密钥

    小量数据的加解密或数字签名。

创建签名规则

  1. 登录容器镜像服务控制台,单击左侧菜单栏“企业版”,然后单击仓库名称进入仓库详情页面。
  2. 在左侧导航栏选择“ 镜像签名”
  3. 在右上角单击“创建签名规则”
  4. 填写具体规则。

    表2 参数说明

    参数名称

    说明

    示例

    规则名称

    镜像签名规则的名称。

    SignatureRule

    命名空间

    选择要签名的镜像所在的命名空间。

    library

    规则范围

    镜像:镜像名称,默认使用正则表达式。单击可手动选择镜像。

    正则表达式规则可填写如nginx-*、{repo1, repo2} 等,其中:

    • *:匹配不包含路径分隔符“/”的任何字段。
    • **:匹配包含路径分隔符“/”的任何字段。
    • ?:匹配任何单个非“/”的字符。
    • {选项1, 选项2, ...}:同时匹配多个选项。匹配上其中一个即可。

    版本:镜像的版本,同样使用正则表达式,匹配规则与镜像名称相同。

    nginx-*:表示匹配“nginx-”开头的镜像。

    签名方式

    当前支持使用KMS签名。

    KMS

    签名Key

    选择在创建非对称密钥中创建的密钥。

    key1

    触发模式

    • 手动:手动触发,规则创建完成后需要您手动单击执行。
    • 事件触发 + 手动:事件触发指当有新镜像上传到仓库且符合匹配规则时触发镜像签名。

    事件触发 + 手动

    规则描述

    规则的描述信息。

    -

    图2 创建签名规则

  5. 单击“确定”完成规则创建。

签名功能生效验证

登录容器镜像服务SWR控制台,进入“企业版”,单击仓库名称进入仓库实例,单击“镜像签名”创建签名规则并执行。执行成功之后进入“镜像管理”,查看镜像签名选择的镜像可以发现“镜像制品”下面的存在附件,该附件即该镜像的签名文件。

相关文档