1.4. 在 Tekton Chains 中签名 secret
集群管理员可以生成密钥对,并使用 Tekton 链来使用 Kubernetes secret 为工件签名。要使 Tekton 链正常工作,加密的密钥和密码必须作为 openshift-pipelines 命名空间中的 signing-secrets Kubernetes secret 的一部分存在。
目前,Tekton 链支持 x509 和 cosign 签名方案。
注意
只使用一个受支持的签名方案。
1.4.1. 使用 x509 进行签名 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要将 x509 签名方案与 Tekton Chains 搭配使用,请将 ed25519 或 ecdsa 类型的 x509.pem 私钥存储在 signing-secrets Kubernetes secret 中。确保密钥保存为未加密的 PKCS8 PEM 文件(BEGIN PRIVATE KEY)。
1.4.2. 使用 cosign 进行签名 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用 Tekton 链的 cosign 签名方案:
- 安装 cosign。
生成
cosign.key和cosign.pub密钥对。cosign generate-key-pair k8s://openshift-pipelines/signing-secrets
$ cosign generate-key-pair k8s://openshift-pipelines/signing-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cosign 提示您输入密码,并创建一个 Kubernetes secret。
-
将加密的
cosign.key私钥和cosign.password解密密码存储在signing-secretsKubernetes secret 中。确保私钥存储为ENCRYPTED COSIGN PRIVATE KEY类型的加密 PEM 文件。
1.4.3. 签名故障排除 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
如果签名 secret 已填充,您可能会遇到以下错误:
Error from server (AlreadyExists): secrets "signing-secrets" already exists
Error from server (AlreadyExists): secrets "signing-secrets" already exists
要解决这个问题:
删除 secret:
oc delete secret signing-secrets -n openshift-pipelines
$ oc delete secret signing-secrets -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新创建密钥对并使用您首选的签名方案将其存储在 secret 中。