Підписування та валідація образів
Ця сторінка описує, як використовувати Cosign для валідації походження артефактів образів Istio.
Cosign — це інструмент, розроблений у рамках проєкту sigstore, що спрощує підписування та валідацію підписаних артефактів Open Container Initiative (OCI), таких як контейнери.
Починаючи з Istio 1.12, ми підписуємо всі офіційно опубліковані образи контейнерів у рамках нашого процесу випуску нової версії. Кінцеві користувачі можуть перевіряти ці образи за допомогою процесу, описаного нижче.
Цей процес підходить як для ручного виконання, так і для інтеграції з конвеєрами збірки або розгортання для автоматизованої перевірки артефактів.
Необхідні умови
Перш ніж почати, виконайте наступне:
Завантажте останню збірку Cosign для вашої архітектури, а також її підпис.
Перевірте підпис бінарного файлу
cosign
:$ openssl dgst -sha256 \ -verify <(curl -ssL https://raw.githubusercontent.com/sigstore/cosign/main/release/release-cosign.pub) \ -signature <(cat /path/to/cosign.sig | base64 -d) \ /path/to/cosign-binary
Зробіть бінарний файл виконуваним (
chmod +x
) і перемістіть його в теку, що знаходиться вPATH
.
Валідація образу
Щоб перевірити образ контейнера, виконайте наступне:
$ ./cosign-binary verify --key "https://istio.io/misc/istio-key.pub" gcr.io/istio-release/pilot:1.24.0
Цей процес працюватиме для будь-якого випущеного образу або кандидата на випуск, зібраного за допомогою інфраструктури збирання Istio.
Приклад з виводом:
$ cosign verify --key "https://istio.io/misc/istio-key.pub" gcr.io/istio-release/pilot:1.12.0
Verification for gcr.io/istio-release/pilot:1.12.0 --
The following checks were performed on each of these signatures:
- The cosign claims were validated
- The signatures were verified against the specified public key
- Any certificates were verified against the Fulcio roots.
[{"critical":{"identity":{"docker-reference":"gcr.io/istio-release/pilot"},"image":{"docker-manifest-digest":"sha256:c37fd83f6435ca0966d653dc6ac42c9fe5ac11d0d5d719dfe97de84acbf7a32d"},"type":"cosign container image signature"},"optional":null}]