Проверка подписи образа
Операции Интернета вещей Azure подписывают образы docker и helm, чтобы пользователи могли проверить целостность и происхождение используемых образов. Подписывание использует пару открытого и закрытого ключа, чтобы доказать, что корпорация Майкрософт создала образ контейнера, создав цифровую подпись и добавив ее в образ. В этой статье приведены действия по проверке подписи образа корпорацией Майкрософт.
Скачайте нотацию.
export NOTATION_VERSION=1.1.0 curl -LO https://github.com/notaryproject/notation/releases/download/v$NOTATION_VERSION/notation_$NOTATION_VERSION\_linux_amd64.tar.gz sudo tar xvzf notation_1.1.0_linux_amd64.tar.gz -C /usr/bin/ notation
Скачайте открытый сертификат для подписи Майкрософт:
https://www.microsoft.com/pkiops/certs/Microsoft%20Supply%20Chain%20RSA%20Root%20CA%202022.crt
Убедитесь, что он сохранен как
msft_signing_cert.crt
.Добавьте сертификат в интерфейс командной строки нотации.
notation cert add --type ca --store supplychain msft_signing_cert.crt
Проверьте нотацию сертификата.
notation cert ls
Выходные данные команды выглядят следующим образом:
STORE TYPE STORE NAME CERTIFICATE ca supplychain msft_signing_cert.crt
Создайте файл trustpolicy с областью изображения.
{ "version": "1.0", "trustPolicies": [ { "name": "supplychain", "registryScopes": [ "*" ], "signatureVerification": { "level" : "strict" }, "trustStores": [ "ca:supplychain" ], "trustedIdentities": [ "x509.subject: CN=Azure IoT Operations,O=Microsoft Corporation,L=Redmond,ST=Washington,C=US", "x509.subject: CN=Microsoft SCD Products RSA Signing,O=Microsoft Corporation,L=Redmond,ST=Washington,C=US" ] } ] }
- Мы разрешаем всем реестрамScopes избегать перечисления всех образов, которые объединяются с операциями Интернета вещей Azure и чтобы избежать будущих изменений.
CN=Azure IoT Operations
охватывает все образы операций Интернета вещей Azure. Однако для других образов Майкрософт требуетсяCN=Microsoft SCD Products RSA Signing
.
Используйте нотацию, чтобы проверить скачанные образы в отношении доверия.
Замените заполнитель версии номером версии образа, который требуется проверить. Для существующего экземпляра операций Интернета вещей Azure можно найти номер версии на странице обзора экземпляра в портал Azure или запустив az iot ops show. Полный список доступных версий см . в выпусках azure-iot-operations.
notation policy import <TRUSTPOLICY_FILE>.json export NOTATION_EXPERIMENTAL=1 notation verify --allow-referrers-api mcr.microsoft.com/azureiotoperations/aio-operator:<AZURE_IOT_OPERATIONS_VERSION>
Выходные данные команды выглядят следующим образом:
Successfully verified signature for mcr.microsoft.com/azureiotoperations/aio-operator@sha256:09cbca56a2149d624cdc4ec952abe9a92ee88c347790c6657e3dd2a0fcc12d10