Подписать Docker-образ в Artifact Registry и настроить проверку подписи с помощью Connoisseur

С помощью инструкции подпишем Docker-образ в Artifact-Registry и настроим проверку подписи в Managed Kubernetes. Подпись и проверка Docker-образов необходимы для обеспечения подлинности и целостности образов.

Перед началом работы

  1. Создайте кластер с публичным IP и хотя бы одной группой узлов.

  2. Установите плагин Connoisseur.

  3. Подключитесь к кластеру.

  4. Загрузите Docker-образ в репозиторий Artifact Registry.

  5. Установите Cosign на ваше устройство.

Шаг 1. Подпишите образ

  1. Создайте пару ключей с помощью Cosign:

    cosign generate-key-pair

    Задайте и введите пароль для закрытого ключа.

  2. Чтобы подписать Docker-образ в Artifact Registry, выполните команду:

    cosign sign --key cosign.key --tlog-upload = false <URI_реестра>/<название_Docker-образа>:<тег>
  3. Чтобы проверить корректность подписи Docker-образа, выполните команду:

    cosign verify --key cosign.pub --insecure-ignore-tlog = true <URI_реестра>/<название_Docker-образа>:<тег>

Шаг 2. Добавьте публичный ключ в конфигурационный файл Connaisseur

  1. Пройдите аутентификацию в API.

  2. Выполните HTTP-запрос:

    PATCH /v2/clusters/ { clusterId } /addons/connaisseur

    Где clusterIdидентификатор кластера.

    В теле запроса передайте параметры:

    {
    "clusterId" : <идентификатор_кластера>,
    "addonName" : сonnaisseur,
    "addonConfiguration" :
    validators:
    - name: cloud.ru
    type: cosign
    trustRoots:
    - name: default
    key: |
    -----BEGIN PUBLIC KEY-----
    Публичный ключ cosign.pub
    -----END PUBLIC KEY-----
    auth:
    secretName: cloud-registry-secret
    policy:
    - pattern: <URI_реестра>/*:*
    validator: cloud.ru
    with:
    verifyInTransparencyLog: false
    }

Шаг 3. Создайте под с подписанным образом

В терминале или PowerShell выполните команду:

kubectl run pod --image = <URI_реестра>/<название_Docker-образа>:<тег>

Результат:

pod/pod created

Шаг 4. Удалите ресурсы

Если вы закончили работать с примером, удалите созданные ресурсы:

  1. Удалите кластер.

  2. Удалите образ из Artifact Registry.

  3. Удалите реестр Artifact Registry.

Evolution