Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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/binInstallieren 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 67c5ccaaf28dd44d2b6572684d84e344a02c2258af1d65ead3910b3156d3eaf5Auflisten der verfügbaren Plug-Ins und Bestätigen, dass das
notation-azure-kvPlug-In mit Version1.2.1in 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.
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"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
basicConstraintsErweiterung muss vorhanden und alscriticalgekennzeichnet sein. DasCAFeld muss auf den Werttruegesetzt werden. - Die
keyUsageErweiterung muss vorhanden und alscriticalgekennzeichnet sein. Bitpositionen fürkeyCertSignmü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_SUBJECTals Thema verwendet. - Als Flag für die X.509-Schlüsselverwendung darf nur
DigitalSignatureverwendet 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.
- Betreff muss gemeinsamen Namen (
- Schlüsseleigenschaften:
- Die
exportable-Eigenschaft muss auffalsefestgelegt werden. - Wählen Sie einen unterstützten Schlüsseltyp und eine unterstützte Größe aus der Notary Project-Spezifikation aus.
- Die
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
- Rufen Sie die Zertifikatdatei vom Zertifizierungsstellenanbieter mit vollständiger Zertifikatkette ab.
- 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.
Legen Sie das Abonnement fest, das die Containerregistrierungsressource enthält:
az account set --subscription $ACR_SUB_IDRollen 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
Authentifizieren Sie sich bei Ihrer Containerregistrierung mithilfe Ihrer individuellen Azure-Identität:
az acr login --name $ACR_NAMEWichtig
Wenn Sie Docker auf Ihrem System installiert haben und
az acr loginoderdocker loginverwendet haben, um sich bei Ihrer Containerregistrierung zu authentifizieren, sind Ihre Anmeldeinformationen bereits gespeichert und für Notation verfügbar. In diesem Fall müssen Sienotation loginnicht 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.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}@$DIGESTIn 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.
Verwenden von Azure RBAC (empfohlen)
Legen Sie das Abonnement fest, das die Key Vault-Ressource enthält:
az account set --subscription $AKV_SUB_IDWeisen Sie die Rollen zu.
Wenn das Zertifikat die gesamte Zertifikatkette enthält, muss der Prinzipal mit den folgenden Rollen zugewiesen werden:
-
Key Vault Secrets Userzum Lesen geheimer Schlüssel -
Key Vault Certificates Userzum Lesen von Zertifikaten -
Key Vault Crypto Userfü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 Userzum Lesen von Zertifikaten -
Key Vault Crypto Userfü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
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_NAMEZertifikats ab:KEY_ID=$(az keyvault certificate show -n $CERT_NAME --vault-name $AKV_NAME --query 'kid' -o tsv)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-kvWenn 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:
- Umgebungsanmeldeinformationen
- Anmeldeinformationen für Workloadidentität
- Anmeldeinformationen für verwaltete Identität
- Azure CLI-Anmeldeinformationen
Wenn Sie einen Anmeldeinformationstyp angeben möchten, verwenden Sie eine zusätzliche Plug-In-Konfiguration namens
credential_type. Sie können beispielsweisecredential_typeexplizit aufazureclifestlegen, 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 $IMAGEIn der folgenden Tabelle werden die Werte von
credential_typefür verschiedene Anmeldedatentypen dargestellt.Anmeldeinformationstyp Wert für credential_typeUmgebungsanmeldeinformationen environmentAnmeldeinformationen für Workloadidentität workloadidAnmeldeinformationen für verwaltete Identität managedidAzure CLI-Anmeldeinformationen azurecliZeigen Sie das Diagramm signierter Bilder und zugehöriger Signaturen an:
notation ls $IMAGEIn der folgenden Beispielausgabe wird eine Signatur des Typs
application/vnd.cncf.notary.signature, die durch Digestsha256:d7258166ca820f5ab7190247663464f2dcb149df4d1b6c4943dcaac59157de8eidentifiziert wird, mit$IMAGEassoziiert.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
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_CERTVertrauensspeicher das Stammzertifikat$STORE_NAMEhinzugefügt:STORE_TYPE="ca" STORE_NAME="wabbit-networks.io" notation cert add --type $STORE_TYPE --store $STORE_NAME $ROOT_CERTListen Sie das Stammzertifikat auf, um zu bestätigen, dass
$ROOT_CERTerfolgreich hinzugefügt wurde.notation cert lsKonfigurieren 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" ] } ] } EOFDie vorangehende
trustpolicy.jsonDatei definiert eine Vertrauensrichtlinie mit dem Namenwabbit-networks-images. Diese Vertrauensrichtlinie gilt für alle Artefakte, die in den in$REGISTRY/$REPO-Repositorys gespeichert sind. Der benannte Vertrauensspeicher$STORE_NAMEvom Typ$STORE_TYPEenthält die Stammzertifikate. Diese Richtlinie geht auch davon aus, dass der Benutzer einer bestimmten Identität mit dem X.509-Subjekt$CERT_SUBJECTvertraut. Weitere Informationen finden Sie unter Vertrauensspeicher- und Vertrauenspolitik-Spezifikation.Verwenden Sie
notation policy, um die Vertrauensrichtlinien-Konfiguration austrustpolicy.jsonzu importieren.notation policy import ./trustpolicy.jsonZeigen Sie die Vertrauensrichtlinienkonfiguration an, um den erfolgreichen Import zu bestätigen:
notation policy showVerwenden Sie
notation verify, um die Integrität des Images zu überprüfen:notation verify $IMAGENach 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.
Verwandte Inhalte
Notation bietet kontinuierliche Integrations- und Continuous Delivery-Lösungen (CI/CD) in Azure-Pipelines und GitHub-Aktionen:
- Informationen zum Signieren und Überprüfen von Containerimages in einer Azure DevOps-Pipeline finden Sie unter Signieren und Überprüfen eines Containerimages mithilfe von Notation in einer Azure-Pipeline.
- Informationen zum Signieren von Containerimages mithilfe von GitHub-Aktionen finden Sie unter Sign a container image by using Notation in GitHub Actions.
- Informationen zum Überprüfen von Containerimages mithilfe von GitHub-Aktionen finden Sie unter Überprüfen eines Containerimages mithilfe der Notation in GitHub-Aktionen.
So stellen Sie sicher, dass nur vertrauenswürdige Containerimages auf Azure Kubernetes Service (AKS) bereitgestellt werden:
- Verwenden Sie azure Policy Image Integrity (Vorschau), indem Sie den Leitfaden verwenden, um signierte Bilder zu überprüfen, bevor Sie sie in Ihren Azure Kubernetes-Dienstclustern (Vorschau) bereitstellen.
- Verwenden Sie Ratify und Azure-Richtlinie, indem Sie den Leitfaden zum Überprüfen von Containerimagesignaturen mithilfe von Ratify und Azure-Richtlinie folgen.