目录
镜像签名能够防止镜像被篡改,是一种保护镜像安全的手段。
关于 Cosign
cosign 是 sigstore 项目的一部分,也是一个开源项目,主要用来对 OCI 镜像进行签名和验证,从而让签名成为一种无形的基础设施。cosign 目前支持以下几种签名方式:
- 硬件和 KMS 签名
- 使用自己的 PKI
- 免费的 OIDC PKI
- 内置的二进制透明和时间戳服务
Cosign 的安装
cosign 的安装有多种形式,可以根据不同的 OS 来进行安装,以 Ubuntu 20.04 为例,执行如下命令即可完成 cosign 的安装:
$ wget "https://github.com/sigstore/cosign/releases/download/v1.6.0/cosign_1.6.0_amd64.deb"
$ dpkg -i cosign_1.6.0_amd64.deb
Selecting previously unselected package cosign.
(Reading database ... 136644 files and directories currently installed.)
Preparing to unpack cosign_1.6.0_amd64.deb ...
Unpacking cosign (1.6.0) ...
Setting up cosign (1.6.0) ...
$ mv /usr/local/bin/cosign-linux-amd64 /usr/local/bin/cosign
用 version
命令查看是否安装成功:
$ cosign version
____ ___ ____ ___ ____ _ _
/ ___| / _ \ / ___| |_ _| / ___| | \ | |
| | | | | | \___ \ | | | | _ | \| |
| |___ | |_| | ___) | | | | |_| | | |\ |
\____| \___/ |____/ |___| \____| |_| \_|
cosign
GitVersion: v1.6.0
GitCommit: 4b2c3c0c8ee97f31b9dac3859b40e0a48b8648ee
GitTreeState: clean
BuildDate: '2022-03-03T17:59:06Z'
GoVersion: go1.17.7
Compiler: gc
Platform: linux/amd64
可以看到 cosign 已经安装成功。
使用 Cosgin 对极狐GitLab 镜像进行签名
用 cosgin 对极狐GitLab 镜像进行签名大体分三个步骤:
- 生成 keypair
- 用 cosign.key 对需