• Русский
  • Конфигурация ключа подписи

    Overview

    Для включения подписи артефактов в Tekton Chains необходимо сгенерировать и настроить ключи подписи. В этом документе объясняется, как сгенерировать и настроить ключи подписи для различных методов подписи.

    Generate Signing Key

    WARNING

    Ключ подписи используется для генерации информации о подписи артефактов. Пожалуйста, храните его в безопасности.

    Using Cosign

    Вы можете использовать инструмент cosign для генерации пары ключей подписи:

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

    Примечание:

    • Необходимо установить CLI cosign и иметь доступ к Kubernetes кластеру
    • COSIGN_PASSWORD — пароль для шифрования ключа подписи
    • tekton-pipelines — namespace, в котором развернут компонент 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