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