Signing Key Configuration

目录

Overview

要在 Tekton Chains 中启用工件签名,您需要生成并配置签名密钥。本文档说明了如何为不同的签名方法生成和配置签名密钥。

Generate Signing Key

WARNING

签名密钥用于生成工件的签名信息,请妥善保管。

Using Cosign

您可以使用 cosign 工具生成签名密钥对:

$ COSIGN_PASSWORD={password} cosign generate-key-pair k8s://tekton-pipelines/signing-secrets

注意:

  • 您需要安装 cosign CLI 并能够访问 Kubernetes 集群
  • COSIGN_PASSWORD 是用于加密签名密钥的密码
  • tekton-pipelines 是 Chains 组件部署的命名空间(默认是 tekton-pipelines
  • signing-secrets 是用于存储签名密钥的 Secret 名称

执行后,您可以查看对应的 Secret 资源:

$ kubectl get secret signing-secrets -n tekton-pipelines -o yaml

apiVersion: v1
data:
  cosign.key: <base64-encoded-private-key>
  cosign.password: <base64-encoded-password>
  cosign.pub: <base64-encoded-public-key>
immutable: true
kind: Secret
metadata:
  name: signing-secrets
  namespace: tekton-pipelines
type: Opaque

Get the Signing Public Key

TIP

如果您没有权限,可以请管理员获取公钥。

$ export NAMESPACE=<tekton-pipelines>
$ kubectl get secret -n $NAMESPACE signing-secrets -o jsonpath='{.data.cosign\.pub}' | base64 -d > cosign.pub

Get the Signing Secret

$ export NAMESPACE=<tekton-pipelines>
$ kubectl get secret -n $NAMESPACE signing-secrets -o yaml > signing-secrets.yaml

Restart Tekton Chains

配置签名密钥后,重启 Tekton Chains 组件使其生效:

$ kubectl delete pods -n tekton-pipelines -l app=tekton-chains-controller

等待组件启动:

$ kubectl get pods -n tekton-pipelines -l app=tekton-chains-controller -w

NAME                                        READY   STATUS    RESTARTS   AGE
tekton-chains-controller-55876dfbbd-5wv5z   1/1     Running   0          1m30s

References