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

    Обзор

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

    Генерация ключа подписи

    WARNING

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

    Использование 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

    Получение открытого ключа подписи

    TIP

    Если у вас нет разрешения, вы можете попросить администратора получить открытый ключ.

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

    Получение Secret с ключом подписи

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

    Перезапуск 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

    Ссылки