Lire en anglais

Partager via


Vérifier la signature des images

Opérations Azure IoT signe ses images Docker et Helm pour permettre aux utilisateurs de vérifier l’intégrité et l’origine des images qu’ils utilisent. La signature utilise une paire de clés publique/privée pour prouver que Microsoft a créé une image conteneur en créant une signature numérique et en l’ajoutant à l’image. Cet article décrit les étapes permettant de vérifier qu’une image a été signée par Microsoft.

  1. Téléchargez Notation.

    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
    
  2. Téléchargez le certificat public de signature Microsoft : https://www.microsoft.com/pkiops/certs/Microsoft%20Supply%20Chain%20RSA%20Root%20CA%202022.crt.

    Vérifiez qu’il est enregistré en tant que msft_signing_cert.crt.

  3. Ajoutez le certificat à l’interface CLI de Notation.

    notation cert add --type ca --store supplychain msft_signing_cert.crt
    
  4. Vérifiez le certificat dans Notation.

    notation cert ls
    

    La sortie de la commande doit se présenter comme dans l’exemple suivant :

    STORE TYPE  STORE NAME  CERTIFICATE 
    ca          supplychain msft_signing_cert.crt
    
  5. Créez un fichier de stratégie de confiance avec votre étendue d’images.

    {
        "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"
                ]
            }
        ]
    }
    
    • Nous permettons à toutes les étendues de registre d’éviter de lister toutes les images regroupées avec Opérations Azure IoT et d’éviter les modifications futures.
    • CN=Azure IoT Operations couvre toutes les images d’Opérations Azure IoT. Cependant, d’autres images Microsoft ont besoin de CN=Microsoft SCD Products RSA Signing.
  6. Utilisez Notation pour vérifier vos images téléchargées relativement à la stratégie de confiance.

    Remplacez l’espace réservé à la version par le numéro de version de l’image que vous souhaitez vérifier. Pour une instance existante d’Azure IoT Operations, vous pouvez trouver le numéro de version sur la page de présentation de l’instance dans le Portail Microsoft Azure ou en exécutant az iot ops show. Pour obtenir la liste complète des versions disponibles, consultez 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>
    

    La sortie de la commande doit se présenter comme dans l’exemple suivant :

    Successfully verified signature for mcr.microsoft.com/azureiotoperations/aio-operator@sha256:09cbca56a2149d624cdc4ec952abe9a92ee88c347790c6657e3dd2a0fcc12d10