Validar assinatura da imagem
As Operações do Azure IoT assinam suas imagens do docker e helm para permitir que os usuários verifiquem a integridade e a origem das imagens que usam. A assinatura utiliza um par de chaves público/privado para provar que a Microsoft criou uma imagem de contêiner ao criar uma assinatura digital e adicioná-la à imagem. Esse artigo fornece as etapas para verificar se uma imagem foi assinada pela Microsoft.
Baixar Notação.
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
Baixar o certificado público de assinatura da Microsoft:
https://www.microsoft.com/pkiops/certs/Microsoft%20Supply%20Chain%20RSA%20Root%20CA%202022.crt
.Certifique-se de que está salvo como
msft_signing_cert.crt
.Adicionar o certificado à CLI de notação.
notation cert add --type ca --store supplychain msft_signing_cert.crt
Verificar o certificado na notação.
notation cert ls
A saída do comando se parece com o exemplo a seguir:
STORE TYPE STORE NAME CERTIFICATE ca supplychain msft_signing_cert.crt
Crie um arquivo de política de confiança com seu escopo de imagem.
{ "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" ] } ] }
- Permitimos todos os registryScopes para evitar listar cada imagem agrupada com as Operações do Azure IoT e evitar modificações futuras.
CN=Azure IoT Operations
abrange todas as imagens das Operações do Azure IoT. No entanto, outras imagens da Microsoft precisam deCN=Microsoft SCD Products RSA Signing
.
Use notação para verificar suas imagens baixadas em relação a política de segurança.
Substitua o espaço reservado da versão pelo número de versão da imagem que você deseja verificar. Para uma instância existente das Operações do Azure IoT, você pode encontrar o número de versão na página de visão geral da instância no portal do Azure ou executando az iot ops show. Para uma lista completa de versões disponíveis, confira azure-iot-operations releases.
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>
A saída do comando se parece com o exemplo a seguir:
Successfully verified signature for mcr.microsoft.com/azureiotoperations/aio-operator@sha256:09cbca56a2149d624cdc4ec952abe9a92ee88c347790c6657e3dd2a0fcc12d10