第 2 章 验证 Trusted Artifact Signer 服务安装
2.1. 使用命令行界面使用 Cosign 签名和验证容器
通过 cosign
工具,您可以使用红帽的Trusted Artifact Signer (RHTAS)服务签名和验证开放容器项目(OCI)容器镜像以及其他构建工件。
先决条件
- 在 Red Hat OpenShift Container Platform 版本 4.13、4.14 或 4.15 上安装 RHTAS。
- 访问 OpenShift Web 控制台。
-
安装了
podman
二进制文件的工作站。
流程
将 OpenShift 集群的
cosign
二进制文件下载到您的工作站。- 登录到 OpenShift Web 控制台。在主页中,单击 ? 图标,单击 Command line tools,前往 cosign download 部分,然后单击您的平台的链接。
在工作站上打开一个终端,解压缩二进制
.gz
文件,并设置执行位:Example
$ gunzip cosign-amd64.gz $ chmod +x cosign-amd64
将二进制文件移到
$PATH
环境中的位置:Example
$ sudo mv cosign-amd64 /usr/local/bin/cosign
切换到 RHTAS 项目:
语法
oc project PROJECT_NAME
Example
$ oc project trusted-artifact-signer
注意使用 RHTAS 安装的项目名称。
配置 shell 环境,以执行容器镜像签名和验证。
Example
$ export TUF_URL=$(oc get tuf -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export OIDC_ISSUER_URL=https://$(oc get route keycloak -n keycloak-system | tail -n 1 | awk '{print $2}')/auth/realms/trusted-artifact-signer $ export COSIGN_FULCIO_URL=$(oc get fulcio -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export COSIGN_REKOR_URL=$(oc get rekor -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export COSIGN_MIRROR=$TUF_URL $ export COSIGN_ROOT=$TUF_URL/root.json $ export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" $ export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL $ export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL $ export COSIGN_YES="true" $ export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL $ export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER $ export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL $ export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
初始化更新框架(TUF)系统:
Example
$ cosign initialize
为测试容器镜像签名。
创建一个空容器镜像:
Example
$ echo "FROM scratch" > ./tmp.Dockerfile $ podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
将空容器镜像推送到
ttl.sh
临时 registry:Example
$ podman push ttl.sh/rhtas/test-image:1h
为容器镜像签名:
语法
cosign sign -y IMAGE_NAME:TAG
Example
$ cosign sign -y ttl.sh/rhtas/test-image:1h
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为容器镜像签名。
删除临时 Docker 文件:
Example
$ rm ./tmp.Dockerfile
使用证书身份和签发者验证签名的容器镜像:
语法
cosign verify --certificate-identity=SIGNING_EMAIL_ADDR IMAGE_NAME:TAG
Example
$ cosign verify --certificate-identity=jdoe@redhat.com ttl.sh/rhtas/test-image:1h
注意您还可以使用
cosign
命令--certificate-identity-regexp
和--certificate-oidc-issuer-regexp
的以下选项对证书身份和签发者使用正则表达式。
其他资源
- 在 OpenShift 上安装 Red Hat Trusted Artifact Signer。
- 自定义红帽受信任的应用程序管道.
- 如需了解有关 签名和验证 Git 提交的详细信息,请参阅 RHTAS 部署指南中的使用 Gitsign 的 签名和验证提交。
- 更新框架 主页.