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.
Azure Kubernetes Service (AKS) und das zugrunde liegende Containermodell bieten eine höhere Skalierbarkeit und Verwaltbarkeit für cloudnative Anwendungen. Mit AKS können Sie flexible Softwareanwendungen entsprechend den Laufzeitanforderungen Ihres Systems starten. Diese Flexibilität kann jedoch neue Herausforderungen mit sich bringen.
In diesen Anwendungsumgebungen können Sie mit signierten Container-Images sicherstellen, dass Ihre Bereitstellungen von einer vertrauenswürdigen Instanz erstellt wurden und dass die Images seit ihrer Erstellung nicht manipuliert wurden. Image Integrity ist ein Dienst, mit dem Sie eine in Azure Policy integrierte Definition hinzufügen können, um zu überprüfen, dass nur signierte Images in Ihren AKS-Clustern bereitgestellt werden.
Hinweis
Image Integrity ist eine Funktion, die auf Ratify basiert. In einem AKS-Cluster lauten Featurename und Eigenschaftenname ImageIntegrity, während die relevanten Namen von Image Integrity-Pods Ratify enthalten.
Wichtig
AKS-Previewfunktionen stehen gemäß dem Self-Service- und Aktivierungsprinzip zur Verfügung. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von Service Level Agreements und der Herstellergarantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Voraussetzungen
Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
aks-previewDie CLI-Erweiterung Version 0.5.96 oder höher.Stellen Sie sicher, dass das Azure Policy Add-On für AKS in Ihrem Cluster aktiviert ist. Wenn Sie dieses Add-On nicht installiert haben, finden Sie weitere Informationen unter Installieren des Azure Policy Add-Ons für AKS.
Ein AKS-Cluster, der mit dem OIDC-Aussteller aktiviert ist. Um einen neuen Cluster zu erstellen oder einen bestehenden Cluster zu aktualisieren, siehe Konfigurieren eines AKS-Clusters mit OIDC-Aussteller.
Die
EnableImageIntegrityPreviewin Ihrem Azure-Abonnement registrierten Featurekennzeichnungen. Registrieren Sie die Featureflags, indem Sie den folgenden Befehl ausführen:Registrieren Sie die
EnableImageIntegrityPreviewFeaturekennzeichnungen mithilfe desaz feature registerBefehls.# Register the EnableImageIntegrityPreview feature flag az feature register --namespace "Microsoft.ContainerService" --name "EnableImageIntegrityPreview" It may take a few minutes for the status to show as *Registered*.Überprüfen Sie den Registrierungsstatus mithilfe des Befehls
az feature show.# Verify the EnableImageIntegrityPreview feature flag registration status az feature show --namespace "Microsoft.ContainerService" --name "EnableImageIntegrityPreview"Sobald im Status Registriert angezeigt wird, aktualisieren Sie die Registrierung des
Microsoft.ContainerServiceRessourcenanbieters mithilfe des Befehlsaz provider register.az provider register --namespace Microsoft.ContainerService
Überlegungen und Einschränkungen
- Ihre AKS-Cluster müssen Kubernetes Version 1.26 oder höher ausführen.
- Sie sollten dieses Feature nicht für ACR-Registrierungen (Production Azure Container Registry) oder Workloads verwenden.
- Die Imageintegrität unterstützt maximal 200 eindeutige Signaturen gleichzeitig clusterweit.
- Notation ist der einzige unterstützte Verifizierer.
- Die Überwachung ist die einzige unterstützte Auswirkung auf die Überprüfungsrichtlinie.
Funktionsweise der Imageintegrität
Die Imageintegrität verwendet Ratify, Azure Policy und Gatekeeper, um signierte Images zu überprüfen, bevor sie in Ihren AKS-Clustern bereitgestellt werden. Wenn Sie die Imageintegrität in Ihrem Cluster aktivieren, wird ein Ratify Pod bereitgestellt. Dieser Pod Ratify führt die folgenden Aufgaben aus:
- Stimmt Zertifikate aus Azure Key Vault gemäß der Konfiguration ab, die Sie über
RatifyCRDs eingerichtet haben. - Greift auf in ACR gespeicherte Bilder zu, wenn Validierungsanforderungen von Azure Policy stammen. Um diese Erfahrung zu ermöglichen, erweitert Azure Policy Gatekeeper, einen Zugangscontroller-Webhook für Open Policy Agent (OPA).
- Bestimmt, ob das Zielimage mit einem vertrauenswürdigen Zertifikat signiert und daher als vertrauenswürdig betrachtet wird.
-
AzurePolicyundGatekeeperverwenden die Validierungsergebnisse als Konformitätszustand, um zu entscheiden, ob die Bereitstellungsanforderung zugelassen werden soll.
Aktivieren von Imageintegrität für Ihren AKS-Cluster
Hinweis
Die Überprüfung von Bildsignaturen ist ein governanceorientiertes Szenario und nutzt Azure Policy, um Bildsignaturen in AKS-Clustern im großen Stil zu überprüfen. Es wird empfohlen, die integrierte AKS-Imageintegrität Azure Policy-Initiative zu verwenden, die in Azure Policy integrierten Definitionsbibliothek verfügbar ist.
Erstellen Sie mit dem Befehl
[Preview]: Use Image Integrity to ensure only trusted images are deployedeine Richtlinienzuweisungaz policy assignment createmit der Richtlinieninitiative AKS.export SCOPE="/subscriptions/${SUBSCRIPTION}/resourceGroups/${RESOURCE_GROUP}" export LOCATION=$(az group show --name ${RESOURCE_GROUP} --query location -o tsv) az policy assignment create --name 'deploy-trustedimages' --policy-set-definition 'af28bf8b-c669-4dd3-9137-1e68fdc61bd6' --display-name 'Audit deployment with unsigned container images' --scope ${SCOPE} --mi-system-assigned --role Contributor --identity-scope ${SCOPE} --location ${LOCATION}Der
RatifyPod wird bereitgestellt, nachdem Sie das Feature aktiviert haben.
Hinweis
Die Richtlinie stellt das Feature Imageintegrität in Ihrem Cluster bereit, wenn ein Updatevorgang im Cluster erkannt wird. Wenn Sie das Feature sofort aktivieren möchten, müssen Sie mithilfe des Befehls az policy remediation create eine Richtlinienkorrektur erstellen.
assignment_id=$(az policy assignment show --name 'deploy-trustedimages' --scope ${SCOPE} --query id -o tsv)
az policy remediation create --policy-assignment "$assignment_id" --definition-reference-id deployAKSImageIntegrity --name remediation --resource-group ${RESOURCE_GROUP}
Einrichten von Überprüfungskonfigurationen
Damit die Imageintegrität das signierte Zielimage ordnungsgemäß überprüfen kann, müssen Sie Ratify Konfigurationen über K8s-CRDs mit kubectl einrichten.
In diesem Artikel verwenden wir ein selbstsigniertes Zertifizierungsstellenzertifikat aus der offiziellen Ratify-Dokumentation, um Überprüfungskonfigurationen einzurichten. Weitere Beispiele finden Sie unter Ratify CRDs.
Erstellen Sie eine
VerifyConfigDatei namensverify-config.yaml, und fügen Sie den folgenden YAML-Code ein:apiVersion: config.ratify.deislabs.io/v1beta1 kind: KeyManagementProvider metadata: name: certstore-inline spec: provider: inline parameters: value: | -----BEGIN CERTIFICATE----- MIIDQzCCAiugAwIBAgIUDxHQ9JxxmnrLWTA5rAtIZCzY8mMwDQYJKoZIhvcNAQEL BQAwKTEPMA0GA1UECgwGUmF0aWZ5MRYwFAYDVQQDDA1SYXRpZnkgU2FtcGxlMB4X DTIzMDYyOTA1MjgzMloXDTMzMDYyNjA1MjgzMlowKTEPMA0GA1UECgwGUmF0aWZ5 MRYwFAYDVQQDDA1SYXRpZnkgU2FtcGxlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAshmsL2VM9ojhgTVUUuEsZro9jfI27VKZJ4naWSHJihmOki7IoZS8 3/3ATpkE1lGbduJ77M9UxQbEW1PnESB0bWtMQtjIbser3mFCn15yz4nBXiTIu/K4 FYv6HVdc6/cds3jgfEFNw/8RVMBUGNUiSEWa1lV1zDM2v/8GekUr6SNvMyqtY8oo ItwxfUvlhgMNlLgd96mVnnPVLmPkCmXFN9iBMhSce6sn6P9oDIB+pr1ZpE4F5bwa gRBg2tWN3Tz9H/z2a51Xbn7hCT5OLBRlkorHJl2HKKRoXz1hBgR8xOL+zRySH9Qo 3yx6WvluYDNfVbCREzKJf9fFiQeVe0EJOwIDAQABo2MwYTAdBgNVHQ4EFgQUKzci EKCDwPBn4I1YZ+sDdnxEir4wHwYDVR0jBBgwFoAUKzciEKCDwPBn4I1YZ+sDdnxE ir4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQEL BQADggEBAGh6duwc1MvV+PUYvIkDfgj158KtYX+bv4PmcV/aemQUoArqM1ECYFjt BlBVmTRJA0lijU5I0oZje80zW7P8M8pra0BM6x3cPnh/oZGrsuMizd4h5b5TnwuJ hRvKFFUVeHn9kORbyQwRQ5SpL8cRGyYp+T6ncEmo0jdIOM5dgfdhwHgb+i3TejcF 90sUs65zovUjv1wa11SqOdu12cCj/MYp+H8j2lpaLL2t0cbFJlBY6DNJgxr5qync cz8gbXrZmNbzC7W5QK5J7fcx6tlffOpt5cm427f9NiK2tira50HU7gC3HJkbiSTp Xw10iXXMZzSbQ0/Hj2BF4B40WfAkgRg= -----END CERTIFICATE----- --- apiVersion: config.ratify.deislabs.io/v1beta1 kind: Store metadata: name: store-oras spec: name: oras # If you want to you use Workload Identity for Ratify to access Azure Container Registry, # uncomment the following lines, and fill the proper ClientID: # See more: https://ratify.dev/docs/reference/oras-auth-provider # parameters: # authProvider: # name: azureWorkloadIdentity # clientID: XXX --- apiVersion: config.ratify.deislabs.io/v1beta1 kind: Verifier metadata: name: verifier-notary-inline spec: name: notation artifactTypes: application/vnd.cncf.notary.signature parameters: verificationCertStores: # certificates for validating signatures certs: # name of the trustStore - certstore-inline # name of the certificate store CRD to include in this trustStore trustPolicyDoc: # policy language that indicates which identities are trusted to produce artifacts version: "1.0" trustPolicies: - name: default registryScopes: - "*" signatureVerification: level: strict trustStores: - ca:certs trustedIdentities: - "*"Wenden Sie die
VerifyConfigmithilfe des Befehlskubectl applyauf Ihren Cluster an.kubectl apply -f verify-config.yaml
Bereitstellen von Beispielimages in Ihrem AKS-Cluster
Stellen Sie ein signiertes Image mithilfe des Befehls
kubectl run demobereit.kubectl run demo-signed --image=ghcr.io/deislabs/ratify/notary-image:signedDie folgende Beispielausgabe zeigt, dass die Imageintegrität die Bereitstellung zulässt:
ghcr.io/deislabs/ratify/notary-image:signed pod/demo-signed created
Wenn Sie Ihre eigenen Images verwenden möchten, lesen Sie die Anleitung für die Bildsignierung.
Deaktivieren der Imageintegrität
Benutzerdefinierte Richtlinieninitiative entfernen
Zuerst sollten Sie die Richtlinieninitiative mit dem
az policy assignment deleteBefehl entfernen.az policy assignment delete --name 'deploy-trustedimages'
Diable-Add-On
Deaktivieren Sie dann das Image Integrity-Add-On auf Ihrem Cluster mithilfe des
az aks updateBefehls mit der--disable-image-integrityKennzeichnung.az aks update --resource-group myResourceGroup --name MyManagedCluster --disable-image-integrity
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie die Imageintegrität verwenden, um signierte Images zu überprüfen, bevor Sie sie in Ihren AKS-Clustern (Azure Kubernetes Service) bereitstellen. Wenn Sie erfahren möchten, wie Sie Ihre eigenen Container signieren, lesen Sie Erstellen, Signieren und Überprüfen von Containerimages mithilfe von Notar und Azure Key Vault (Vorschau).