Freigeben über


Signieren von Containerimages mithilfe von Notation, Azure Key Vault und einem von einer Zertifizierungsstelle ausgestellten Zertifikat

Dieser Artikel ist Teil einer Reihe zur Sicherstellung der Integrität und Authentizität von Containerimages und anderen Open Container Initiative (OCI)-Artefakten. Für einen vollständigen Überblick beginnen Sie mit der Übersicht, in der erklärt wird, warum das Signieren wichtig ist und die verschiedenen Szenarien skizziert werden.

Das Signieren und Überprüfen von Containerimages mithilfe eines Zertifikats von einer vertrauenswürdigen Zertifizierungsstelle ist eine wertvolle Sicherheitspraxis. Es hilft Ihnen, die Identität des Herausgebers eines Containerimages und des Containerimages selbst verantwortungsbewusst zu identifizieren, zu autorisieren und zu überprüfen. Vertrauenswürdige CAs wie GlobalSign, DigiCert und andere spielen eine entscheidende Rolle in:

  • Überprüfen der Identität eines Benutzers oder einer Organisation.
  • Aufrechterhaltung der Sicherheit digitaler Zertifikate.
  • Zertifikate sofort bei Gefahr oder Missbrauch widerrufen.

Hier sind einige wichtige Komponenten, mit denen Sie Containerimages mithilfe eines Zertifikats einer vertrauenswürdigen Zertifizierungsstelle signieren und überprüfen können:

  • Notation ist ein Open-Source-Sicherheitstool für Lieferketten, das von der Notär Project-Community entwickelt und von Microsoft unterstützt wird. Es unterstützt das Signieren und Überprüfen von Containerimages und anderen Artefakten.
  • Azure Key Vault ist ein cloudbasierter Dienst zum Verwalten kryptografischer Schlüssel, geheimer Schlüssel und Zertifikate. Es hilft Ihnen, ein Zertifikat mit einem Signaturschlüssel sicher zu speichern und zu verwalten.
  • Das Key Vault-Plug-In (notation-azure-kv) ist eine Erweiterung der Notation. Es verwendet die im Key Vault gespeicherten Schlüssel zum Signieren und Überprüfen der digitalen Signaturen von Containerimages und Artefakten.
  • Azure Container Registry ist eine private Registrierung, die Sie zum Anfügen von Signaturen an Containerimages verwenden können, zusammen mit dem Speichern und Verwalten dieser Images.

Wenn Sie ein Bild überprüfen, wird die Signatur verwendet, um die Integrität des Bilds und die Identität des Signierers zu überprüfen. Mit dieser Überprüfung wird sichergestellt, dass Containerimages nicht manipuliert werden und von einer vertrauenswürdigen Quelle stammen.

In diesem Artikel erfahren Sie, wie Sie:

  • Installieren Sie die Befehlszeilenschnittstelle (Notation Command-Line Interface, CLI) und das Key Vault-Plug-In.
  • Erstellen oder Importieren eines von einer Zertifizierungsstelle ausgestellten Zertifikats im Key Vault.
  • Erstellen und Übertragen eines Containerimages mithilfe von Containerregistrierungsaufgaben.
  • Signieren Sie ein Containerimage mithilfe der Notation CLI und des Key Vault-Plug-Ins.
  • Überprüfen Sie mithilfe der Notation CLI eine Containerimagesignatur.
  • Verwenden Sie Zeitstempel.

Voraussetzungen

  • Erstellen oder verwenden Sie eine Containerregistrierung zum Speichern von Containerimages und Signaturen.
  • Erstellen Sie oder verwenden Sie einen Key Vault. Es wird empfohlen, nur einen neuen Schlüsseltresor zum Speichern von Zertifikaten zu erstellen.
  • Installieren und konfigurieren Sie die neueste Azure CLI-Version , oder führen Sie Befehle in Azure Cloud Shell aus.

Installieren des Notation CLI- und Key Vault-Plug-Ins

  1. Installieren Sie Notation v1.3.2 in einer Linux AMD64-Umgebung. Um das Paket für andere Umgebungen herunterzuladen, befolgen Sie das Notation-Installationshandbuch.

    # Download, extract, and install
    curl -Lo notation.tar.gz https://github.com/notaryproject/notation/releases/download/v1.3.2/notation_1.3.2_linux_amd64.tar.gz
    tar xvzf notation.tar.gz
    
    # Copy the Notation CLI to the desired bin directory in PATH, for example
    cp ./notation /usr/local/bin
    
  2. Installieren Sie das Key Vault-Plug-In (notation-azure-kv) v1.2.1 in einer Linux AMD64-Umgebung.

    Hinweis

    Sie finden die URL- und SHA256-Prüfsumme für das Plug-In auf der Releaseseite des Plug-Ins.

    notation plugin install --url https://github.com/Azure/notation-azure-kv/releases/download/v1.2.1/notation-azure-kv_1.2.1_linux_amd64.tar.gz --sha256sum 67c5ccaaf28dd44d2b6572684d84e344a02c2258af1d65ead3910b3156d3eaf5
    
  3. Auflisten der verfügbaren Plug-Ins und Bestätigen, dass das notation-azure-kv Plug-In mit Version 1.2.1 in der Liste enthalten ist:

    notation plugin ls
    

Konfigurieren von Umgebungsvariablen

Dieser Artikel verwendet aus praktischen Gründen Umgebungsvariablen bei der Konfiguration von Key Vault und der Containerregistrierung. Aktualisieren Sie die Werte dieser Umgebungsvariablen für Ihre spezifischen Ressourcen.

  1. Konfigurieren von Umgebungsvariablen für Key Vault und Zertifikate:

    AKV_SUB_ID=myAkvSubscriptionId
    AKV_RG=myAkvResourceGroup
    AKV_NAME=myakv 
    
    # Name of the certificate created or imported in Key Vault 
    CERT_NAME=wabbit-networks-io 
    
    # X.509 certificate subject
    CERT_SUBJECT="CN=wabbit-networks.io,O=Notation,L=Seattle,ST=WA,C=US"
    
  2. Konfigurieren von Umgebungsvariablen für Container-Registrierung und Container-Images:

    ACR_SUB_ID=myAcrSubscriptionId
    ACR_RG=myAcrResourceGroup
    # Name of the existing registry example: myregistry.azurecr.io 
    ACR_NAME=myregistry 
    # Existing full domain of the container registry 
    REGISTRY=$ACR_NAME.azurecr.io 
    # Container name inside the container registry where the image will be stored 
    REPO=net-monitor 
    TAG=v1 
    # Source code directory that contains the Dockerfile to build 
    IMAGE_SOURCE=https://github.com/wabbit-networks/net-monitor.git#main  
    

Anmelden mithilfe der Azure CLI

az login

Weitere Informationen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.

Erstellen oder Importieren eines von einer Zertifizierungsstelle ausgestellten Zertifikats im Key Vault

Grundlegendes zu Zertifikatanforderungen

Wenn Sie Zertifikate für die Signatur und Überprüfung erstellen, müssen die Zertifikate die Zertifikatanforderungen des Notarprojekts erfüllen.

Im Anschluss sind die Anforderungen für Stamm- und Zwischenzertifikate aufgeführt:

  • Die basicConstraints Erweiterung muss vorhanden und als criticalgekennzeichnet sein. Das CA Feld muss auf den Wert true gesetzt werden.
  • Die keyUsage Erweiterung muss vorhanden und als criticalgekennzeichnet sein. Bitpositionen für keyCertSign müssen festgelegt werden.

Hier sind die Anforderungen für Zertifikate, die eine Zertifizierungsstelle ausgibt:

  • X.509-Zertifikateigenschaften:
    • Betreff muss gemeinsamen Namen (CN), Land/Region (C), Bundesland oder Provinz () und Organisation (STO) enthalten. In diesem Artikel wird $CERT_SUBJECT als Thema verwendet.
    • Als Flag für die X.509-Schlüsselverwendung darf nur DigitalSignature verwendet werden.
    • Erweiterte Schlüsselverwendungen (Extended Key Usages, EKUs) müssen leer oder 1.3.6.1.5.5.7.3.3 (für die Codesignatur) sein.
  • Schlüsseleigenschaften:
    • Die exportable-Eigenschaft muss auf false festgelegt werden.
    • Wählen Sie einen unterstützten Schlüsseltyp und eine unterstützte Größe aus der Notary Project-Spezifikation aus.

Wichtig

Um eine erfolgreiche Integration mit Imageintegrität sicherzustellen, sollte der Inhaltstyp des Zertifikats auf PEM festgelegt werden.

Dieses Handbuch verwendet Version 1.0.1 des Key Vault-Plug-Ins. Frühere Versionen des Plug-Ins hatten eine Einschränkung, die eine bestimmte Zertifikatreihenfolge in einer Zertifikatkette erforderte. Version 1.0.1 des Plug-Ins hat diese Einschränkung nicht, daher wird empfohlen, Version 1.0.1 oder höher zu verwenden.

Erstellen eines von einer Zertifizierungsstelle ausgestellten Zertifikats

Erstellen Sie eine Zertifikatsignierungsanforderung (CERTIFICATE Signing Request, CSR), indem Sie die Anweisungen unter Erstellen und Zusammenführen einer Zertifikatsignaturanforderung in Key Vault befolgen.

Stellen Sie beim Zusammenführen der CSR sicher, dass Sie die gesamte Kette zusammenführen, die vom Zertifizierungsstellenanbieter zurückgegeben wurde.

Importieren des Zertifikats im Key Vault

So importieren Sie das Zertifikat

  1. Rufen Sie die Zertifikatdatei vom Zertifizierungsstellenanbieter mit vollständiger Zertifikatkette ab.
  2. Importieren Sie das Zertifikat in Key Vault, indem Sie die Anweisungen unter Importieren eines Zertifikats in Azure Key Vault befolgen.

Wenn das Zertifikat nach dem Erstellen oder Importieren keine Zertifikatkette enthält, können Sie die Zwischen- und Stammzertifikate von Ihrem Zertifizierungsstelle-Anbieter abrufen. Sie können Ihren Anbieter bitten, Ihnen eine PEM-Datei bereitzustellen, die die Zwischenzertifikate (falls vorhanden) und Stammzertifikate enthält. Sie können diese Datei dann verwenden, wenn Sie Containerimages signieren.

Signieren eines Containerimages mithilfe des Notation CLI- und Key Vault-Plug-Ins

Wenn Sie mit der Containerregistrierung und dem Key Vault arbeiten, ist es wichtig, die entsprechenden Berechtigungen zu erteilen, um einen sicheren und kontrollierten Zugriff zu gewährleisten. Sie können den Zugriff für verschiedene Entitäten autorisieren, z. B. Benutzerprinzipale, Dienstprinzipale oder verwaltete Identitäten, je nach Ihren spezifischen Szenarien. In diesem Artikel ist der Zugriff für einen angemeldeten Azure-Benutzer autorisiert.

Autorisieren des Zugriffs auf die Containerregistrierung

Für Register, die für die attributbasierte Zugriffssteuerung (ABAC) von Microsoft Entra aktiviert sind, sind die Rollen Container Registry Repository Reader und Container Registry Repository Writer erforderlich, um Containerimages in der Containerregistrierung zu erstellen und zu signieren.

Für Registrierungen, die für ABAC nicht aktiviert sind, sind die AcrPull- und AcrPush-Rollen erforderlich.

Weitere Informationen zu ABAC finden Sie unter Attributbasierte Zugriffssteuerung von Microsoft Entra für Repositoryberechtigungen.

  1. Legen Sie das Abonnement fest, das die Containerregistrierungsressource enthält:

    az account set --subscription $ACR_SUB_ID
    
  2. Rollen zuweisen:

    USER_ID=$(az ad signed-in-user show --query id -o tsv)
    ROLE1="Container Registry Repository Reader" # For ABAC-enabled registries. Otherwise, use "AcrPull" for non-ABAC-enabled registries.
    ROLE2="Container Registry Repository Writer" # For ABAC-enabled registries. Otherwise, use "AcrPush" for non-ABAC-enabled registries.
    az role assignment create --role "$ROLE1" --role "$ROLE2" --assignee $USER_ID --scope "/subscriptions/$ACR_SUB_ID/resourceGroups/$ACR_RG/providers/Microsoft.ContainerRegistry/registries/$ACR_NAME"
    

Erstellen und Hochladen von Container-Images in die Containerregistrierung

  1. Authentifizieren Sie sich bei Ihrer Containerregistrierung mithilfe Ihrer individuellen Azure-Identität:

    az acr login --name $ACR_NAME
    

    Wichtig

    Wenn Sie Docker auf Ihrem System installiert haben und az acr login oder docker login verwendet haben, um sich bei Ihrer Containerregistrierung zu authentifizieren, sind Ihre Anmeldeinformationen bereits gespeichert und für Notation verfügbar. In diesem Fall müssen Sie notation login nicht erneut ausführen, um sich bei Ihrer Containerregistrierung zu authentifizieren. Weitere Informationen zu Authentifizierungsoptionen für Notation finden Sie unter Authentifizieren mit OCI-kompatiblen Registrierungen.

  2. Erstellen und pushen Sie ein neues Image mithilfe von Container Registry-Aufgaben. Verwenden Sie immer digest, um das Image für die Signatur zu identifizieren, da Tags veränderlich sind und überschrieben werden können.

    DIGEST=$(az acr build -r $ACR_NAME -t $REGISTRY/${REPO}:$TAG $IMAGE_SOURCE --no-logs --query "outputImages[0].digest" -o tsv)
    IMAGE=$REGISTRY/${REPO}@$DIGEST
    

    In diesem Artikel, wenn das Image bereits erstellt und in der Registry gespeichert ist, dient das Tag für dieses Image als Bezeichner zur Vereinfachung.

    IMAGE=$REGISTRY/${REPO}@$TAG
    

Autorisieren des Zugriffs auf Key Vault

In diesem Abschnitt werden zwei Optionen zum Autorisieren des Zugriffs auf Key Vault beschrieben.

  1. Legen Sie das Abonnement fest, das die Key Vault-Ressource enthält:

    az account set --subscription $AKV_SUB_ID
    
  2. Weisen Sie die Rollen zu.

    Wenn das Zertifikat die gesamte Zertifikatkette enthält, muss der Prinzipal mit den folgenden Rollen zugewiesen werden:

    • Key Vault Secrets User zum Lesen geheimer Schlüssel
    • Key Vault Certificates User zum Lesen von Zertifikaten
    • Key Vault Crypto User für Signaturvorgänge
    USER_ID=$(az ad signed-in-user show --query id -o tsv)
    az role assignment create --role "Key Vault Secrets User" --role "Key Vault Certificates User" --role "Key Vault Crypto User" --assignee $USER_ID --scope "/subscriptions/$AKV_SUB_ID/resourceGroups/$AKV_RG/providers/Microsoft.KeyVault/vaults/$AKV_NAME"
    

    Wenn das Zertifikat nicht die Kette enthält, müssen dem Prinzipal die folgenden Rollen zugewiesen werden:

    • Key Vault Certificates User zum Lesen von Zertifikaten
    • Key Vault Crypto User für Signaturvorgänge
    USER_ID=$(az ad signed-in-user show --query id -o tsv)
    az role assignment create --role "Key Vault Certificates User" --role "Key Vault Crypto User" --assignee $USER_ID --scope "/subscriptions/$AKV_SUB_ID/resourceGroups/$AKV_RG/providers/Microsoft.KeyVault/vaults/$AKV_NAME"
    

Weitere Informationen zum Zugriff auf den Azure Key Vault mithilfe der Azure rollenbasierten Zugriffssteuerung (RBAC) finden Sie unter Bereitstellen des Zugriffs auf Key Vault-Schlüssel, Zertifikate und Geheimnisse mithilfe der Azure rollenbasierten Zugriffssteuerung.

Verwende eine Zugriffsrichtlinie (Legacy)

Führen Sie den folgenden Befehl aus, um das Abonnement festzulegen, das die Key Vault-Ressourcen enthält:

az account set --subscription $AKV_SUB_ID

Wenn das Zertifikat die gesamte Zertifikatkette enthält, muss dem Prinzipal die Schlüsselberechtigung Sign, die geheime Berechtigung Getund die Zertifikatberechtigung erteilt Getwerden. Verwenden Sie den folgenden Befehl, um dem Prinzipal diese Berechtigungen zu erteilen:

USER_ID=$(az ad signed-in-user show --query id -o tsv)
az keyvault set-policy -n $AKV_NAME --key-permissions sign --secret-permissions get --certificate-permissions get --object-id $USER_ID

Wenn das Zertifikat die Kette nicht enthält, muss dem Prinzipal die Schlüsselberechtigung Sign und die Zertifikatberechtigung Get erteilt werden. Verwenden Sie den folgenden Befehl, um dem Prinzipal diese Berechtigungen zu erteilen:

USER_ID=$(az ad signed-in-user show --query id -o tsv)
az keyvault set-policy -n $AKV_NAME --key-permissions sign --certificate-permissions get --object-id $USER_ID

Weitere Informationen zum Zuweisen einer Richtlinie zu einem Prinzipal finden Sie unter Zuweisen einer Key Vault-Zugriffsrichtlinie (Legacy).

Signieren von Containerimages mithilfe des Zertifikats im Key Vault

  1. Rufen Sie die Schlüssel-ID für ein Zertifikat ab. Ein Zertifikat im Key Vault kann mehrere Versionen aufweisen. Der folgende Befehl ruft die Schlüssel-ID für die neueste Version des $CERT_NAME Zertifikats ab:

    KEY_ID=$(az keyvault certificate show -n $CERT_NAME --vault-name $AKV_NAME --query 'kid' -o tsv) 
    
  2. Signieren Sie das Containerimage mit dem CoSE-Signaturformat (CBOR Object Signing and Encryption), indem Sie die Schlüssel-ID verwenden.

    Wenn das Zertifikat die gesamte Zertifikatkette enthält, führen Sie den folgenden Befehl aus:

    notation sign --signature-format cose $IMAGE --id $KEY_ID --plugin azure-kv 
    

    Wenn das Zertifikat die Kette nicht enthält, verwenden Sie den --plugin-config ca_certs=<ca_bundle_file> Parameter, um die Zertifizierungsstellenzertifikate in einer PEM-Datei an das Key Vault-Plug-In zu übergeben. Führen Sie den folgenden Befehl aus:

    notation sign --signature-format cose $IMAGE --id $KEY_ID --plugin azure-kv --plugin-config ca_certs=<ca_bundle_file> 
    

    Um sich bei Key Vault zu authentifizieren, werden standardmäßig die folgenden Anmeldeinformationstypen (sofern aktiviert) in der reihenfolge ausprobiert:

    Wenn Sie einen Anmeldeinformationstyp angeben möchten, verwenden Sie eine zusätzliche Plug-In-Konfiguration namens credential_type. Sie können beispielsweise credential_type explizit auf azurecli festlegen, um eine Azure CLI-Anmeldeinformation zu verwenden, wie in diesem Beispiel gezeigt:

    notation sign --signature-format cose --id $KEY_ID --plugin azure-kv --plugin-config credential_type=azurecli $IMAGE
    

    In der folgenden Tabelle werden die Werte von credential_type für verschiedene Anmeldedatentypen dargestellt.

    Anmeldeinformationstyp Wert für credential_type
    Umgebungsanmeldeinformationen environment
    Anmeldeinformationen für Workloadidentität workloadid
    Anmeldeinformationen für verwaltete Identität managedid
    Azure CLI-Anmeldeinformationen azurecli
  3. Zeigen Sie das Diagramm signierter Bilder und zugehöriger Signaturen an:

    notation ls $IMAGE
    

    In der folgenden Beispielausgabe wird eine Signatur des Typs application/vnd.cncf.notary.signature, die durch Digest sha256:d7258166ca820f5ab7190247663464f2dcb149df4d1b6c4943dcaac59157de8e identifiziert wird, mit $IMAGE assoziiert.

    myregistry.azurecr.io/net-monitor@sha256:17cc5dd7dfb8739e19e33e43680e43071f07497ed716814f3ac80bd4aac1b58f
    └── application/vnd.cncf.notary.signature
        └── sha256:d7258166ca820f5ab7190247663464f2dcb149df4d1b6c4943dcaac59157de8e
    

Hinweis

Seit Notation v1.2.0 verwendet Notation standardmäßig das OCI-Verweisertagschema , um die Signatur in der Containerregistrierung zu speichern. Sie können die OCI Referrers-API auch mithilfe des Flags --force-referrers-tag falseaktivieren, falls erforderlich. Containerregistrierungsfunktionen unterstützen die OCI Referrers-API, mit Ausnahme von Registrierungen, die mit kundengesteuerten Schlüsseln (CMKs) verschlüsselt sind.

Überprüfen eines Containerimages mithilfe der Notation CLI

  1. Fügen Sie das Stammzertifikat einem benannten Vertrauensspeicher zur Signaturüberprüfung hinzu. Wenn Sie nicht über das Stammzertifikat verfügen, können Sie es von Ihrer Zertifizierungsstelle abrufen. Im folgenden Beispiel wird dem $ROOT_CERT Vertrauensspeicher das Stammzertifikat $STORE_NAME hinzugefügt:

    STORE_TYPE="ca" 
    STORE_NAME="wabbit-networks.io" 
    notation cert add --type $STORE_TYPE --store $STORE_NAME $ROOT_CERT  
    
  2. Listen Sie das Stammzertifikat auf, um zu bestätigen, dass $ROOT_CERT erfolgreich hinzugefügt wurde.

    notation cert ls 
    
  3. Konfigurieren Sie eine Vertrauensrichtlinie vor der Überprüfung. Mit Vertrauensrichtlinien können Benutzer fein abgestimmte Überprüfungsrichtlinien angeben. Verwenden Sie den folgenden Befehl:

    cat <<EOF > ./trustpolicy.json
    {
        "version": "1.0",
        "trustPolicies": [
            {
                "name": "wabbit-networks-images",
                "registryScopes": [ "$REGISTRY/$REPO" ],
                "signatureVerification": {
                    "level" : "strict" 
                },
                "trustStores": [ "$STORE_TYPE:$STORE_NAME" ],
                "trustedIdentities": [
                    "x509.subject: $CERT_SUBJECT"
                ]
            }
        ]
    }
    EOF
    

    Die vorangehende trustpolicy.json Datei definiert eine Vertrauensrichtlinie mit dem Namen wabbit-networks-images. Diese Vertrauensrichtlinie gilt für alle Artefakte, die in den in $REGISTRY/$REPO-Repositorys gespeichert sind. Der benannte Vertrauensspeicher $STORE_NAME vom Typ $STORE_TYPE enthält die Stammzertifikate. Diese Richtlinie geht auch davon aus, dass der Benutzer einer bestimmten Identität mit dem X.509-Subjekt $CERT_SUBJECT vertraut. Weitere Informationen finden Sie unter Vertrauensspeicher- und Vertrauenspolitik-Spezifikation.

  4. Verwenden Sie notation policy, um die Vertrauensrichtlinien-Konfiguration aus trustpolicy.json zu importieren.

    notation policy import ./trustpolicy.json
    
  5. Zeigen Sie die Vertrauensrichtlinienkonfiguration an, um den erfolgreichen Import zu bestätigen:

    notation policy show
    
  6. Verwenden Sie notation verify, um die Integrität des Images zu überprüfen:

    notation verify $IMAGE
    

    Nach erfolgreicher Überprüfung des Bilds über die Vertrauensrichtlinie wird der SHA256-Digest des überprüften Bilds in einer erfolgreichen Ausgabemeldung zurückgegeben. Hier ist ein Beispiel für das Ergebnis:

    Successfully verified signature for myregistry.azurecr.io/net-monitor@sha256:17cc5dd7dfb8739e19e33e43680e43071f07497ed716814f3ac80bd4aac1b58f

Zeitstempel verwenden

Seit der Notation v1.2.0-Version unterstützt Notation RFC 3161-kompatible Zeitstempel. Diese Erweiterung erweitert die Vertrauensstellung von Signaturen, die innerhalb des Gültigkeitszeitraums des Zertifikats erstellt wurden, indem sie einer Zeitstempelautorität (Time Stamp Authority, TSA) vertrauen. Diese Vertrauensstellung ermöglicht eine erfolgreiche Signaturüberprüfung auch nach Ablauf der Zertifikate.

Als Image signierer sollten Sie sicherstellen, dass Sie Containerimages mit Zeitstempeln signieren, die ein vertrauenswürdiger TSA generiert hat. Als Bildprüfer sollten Sie sicherstellen, dass Sie sowohl dem Bildsignierer als auch dem zugehörigen TSA vertrauen und Vertrauen über Vertrauensspeicher und Vertrauensrichtlinien einrichten.

Die Zeitstempeln reduziert Kosten, da die Notwendigkeit, Bilder aufgrund des Ablaufs von Zertifikaten regelmäßig neu zu signieren, entfällt. Diese Fähigkeit ist besonders wichtig, wenn Sie kurzlebige Zertifikate verwenden. Ausführliche Anweisungen zum Signieren und Überprüfen von Bildern mithilfe von Zeitstempeln finden Sie im Leitfaden zum Zeitstempel von Notarprojekt.

Häufig gestellte Fragen

  • Was sollte ich tun, wenn das Zertifikat abläuft?

    Wenn Ihr Zertifikat abläuft, müssen Sie ein neues von einer vertrauenswürdigen Zertifizierungsstelle erhalten, zusammen mit einem neuen privaten Schlüssel. Sie können kein abgelaufenes Zertifikat verwenden, um Containerimages zu signieren.

    Bilder, die vor ablaufen des Zertifikats signiert wurden, werden möglicherweise weiterhin erfolgreich überprüft, wenn sie mit Zeitstempel signiert wurden. Ohne Zeitstempel schlägt die Signaturüberprüfung fehl, und Sie müssen diese Bilder erneut mit dem neuen Zertifikat zur erfolgreichen Überprüfung signieren.

  • Was soll ich tun, wenn das Zertifikat widerrufen wird?

    Durch den Widerruf Ihres Zertifikats wird die Signatur ungültig. Diese Situation kann aus mehreren Gründen auftreten, z. B. Kompromittierung des privaten Schlüssels oder Änderungen der Zugehörigkeit des Zertifikatinhabers.

    Um dieses Problem zu beheben, sollten Sie zuerst sicherstellen, dass Der Quellcode und die Buildumgebung auf dem neuesten Stand und sicher sind. Erstellen Sie dann Containerimages aus dem Quellcode, rufen Sie ein neues Zertifikat zusammen mit einem neuen privaten Schlüssel von einem vertrauenswürdigen Zertifizierungsstellenanbieter ab, und signieren Sie neue Containerimages mit dem neuen Zertifikat, indem Sie diesen Leitfaden befolgen.

Notation bietet kontinuierliche Integrations- und Continuous Delivery-Lösungen (CI/CD) in Azure-Pipelines und GitHub-Aktionen:

So stellen Sie sicher, dass nur vertrauenswürdige Containerimages auf Azure Kubernetes Service (AKS) bereitgestellt werden: