镜像签名
操作场景
容器镜像服务企业版支持使用数据加密服务(DEW)中创建的密钥对镜像进行签名,保障镜像分发部署过程中的一致性,避免中间人攻击和非法镜像更新及运行。支持命名空间级别的自动镜像签名,容器镜像上传后都会根据签名规则自动签名。在使用镜像签名功能时,请先在数据加密服务(DEW)中创建非对称秘钥,然后创建签名规则,设置参数。之后根据规则设置的触发模式完成手动或者自动签名。
约束与限制
- 镜像验签功能仅支持V1.23及以上集群版本
- 当前支持密钥算法类型见表1
- 单个仓库最多同时支持100000 tag,单个仓库的签名速度为1分钟300个tag本;验签插件安装后,验签速度为1分钟300个镜像版本。
创建非对称密钥
- 登录数据加密服务控制台。
- 在左侧导航栏选择“密钥管理”,单击右上角的“创建密钥”。
- 在“创建密钥”对话框中配置参数,然后单击“确定”。
镜像签名功能需要非对称密钥算法的支持,创建密钥时,密钥算法需选择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非对称密钥
小量数据的加解密或数字签名。
创建签名规则
- 登录容器镜像服务控制台,单击左侧菜单栏“企业版”,然后单击仓库名称进入仓库详情页面。
- 在左侧导航栏选择“ 镜像签名”。
- 在右上角单击“创建签名规则”。
- 填写具体规则。
表2 参数说明 参数名称
说明
示例
规则名称
镜像签名规则的名称。
SignatureRule
命名空间
选择要签名的镜像所在的命名空间。
library
规则范围
镜像:镜像名称,默认使用正则表达式。单击可手动选择镜像。
正则表达式规则可填写如nginx-*、{repo1, repo2} 等,其中:
- *:匹配不包含路径分隔符“/”的任何字段。
- **:匹配包含路径分隔符“/”的任何字段。
- ?:匹配任何单个非“/”的字符。
- {选项1, 选项2, ...}:同时匹配多个选项。匹配上其中一个即可。
版本:镜像的版本,同样使用正则表达式,匹配规则与镜像名称相同。
nginx-*:表示匹配“nginx-”开头的镜像。
签名方式
当前支持使用KMS签名。
KMS
签名Key
选择在创建非对称密钥中创建的密钥。
key1
触发模式
- 手动:手动触发,规则创建完成后需要您手动单击执行。
- 事件触发 + 手动:事件触发指当有新镜像上传到仓库且符合匹配规则时触发镜像签名。
事件触发 + 手动
规则描述
规则的描述信息。
-
图2 创建签名规则
- 单击“确定”完成规则创建。
签名功能生效验证
登录容器镜像服务SWR控制台,进入“企业版”,单击仓库名称进入仓库实例,单击“镜像签名”创建签名规则并执行。执行成功之后进入“镜像管理”,查看镜像签名选择的镜像可以发现“镜像制品”下面的存在附件,该附件即该镜像的签名文件。