Udostępnij przez


Weryfikowanie podpisywania obrazów

Operacje usługi Azure IoT podpisują obrazy platformy Docker i helm, aby umożliwić użytkownikom weryfikowanie integralności i pochodzenia używanych obrazów. Podpisywanie korzysta z pary kluczy publicznych/prywatnych, aby udowodnić, że firma Microsoft utworzyła obraz kontenera, tworząc podpis cyfrowy i dodając go do obrazu. Ten artykuł zawiera kroki umożliwiające sprawdzenie, czy obraz został podpisany przez firmę Microsoft.

  1. Notacja pobierania.

    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. Pobierz certyfikat publiczny podpisywania firmy Microsoft: https://www.microsoft.com/pkiops/certs/Microsoft%20Supply%20Chain%20RSA%20Root%20CA%202022.crt.

    Upewnij się, że został zapisany jako msft_signing_cert.crt.

  3. Dodaj certyfikat do interfejsu wiersza polecenia notacji.

    notation cert add --type ca --store supplychain msft_signing_cert.crt
    
  4. Sprawdź notację certyfikatu.

    notation cert ls
    

    Dane wyjściowe polecenia wyglądają podobnie do następującego przykładu:

    STORE TYPE  STORE NAME  CERTIFICATE 
    ca          supplychain msft_signing_cert.crt
    
  5. Utwórz plik trustpolicy z zakresem obrazu.

    {
        "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"
                ]
            }
        ]
    }
    
    • Zezwalamy wszystkim rejestromScopes na unikanie wyświetlania listy wszystkich obrazów, które są powiązane z operacjami usługi Azure IoT i uniknąć przyszłych modyfikacji.
    • CN=Azure IoT Operations Obejmuje wszystkie obrazy operacji usługi Azure IoT. Jednak inne obrazy firmy Microsoft wymagają CN=Microsoft SCD Products RSA Signing.
  6. Użyj notacji, aby zweryfikować pobrane obrazy względem zasad zaufania.

    Zastąp symbol zastępczy wersji numerem wersji obrazu, który chcesz sprawdzić. W przypadku istniejącego wystąpienia operacji usługi Azure IoT numer wersji można znaleźć na stronie przeglądu wystąpienia w witrynie Azure Portal lub uruchamiając polecenie az iot ops show. Aby uzyskać pełną listę dostępnych wersji, zobacz azure-iot-operations releases (Wydania operacji platformy 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>
    

    Dane wyjściowe polecenia wyglądają podobnie do następującego przykładu:

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