Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Kubernetes Service (AKS) en het onderliggende containermodel bieden een grotere schaalbaarheid en beheerbaarheid voor cloudtoepassingen. Met AKS kunt u flexibele softwaretoepassingen starten op basis van de runtimebehoeften van uw systeem. Deze flexibiliteit kan echter nieuwe uitdagingen opleveren.
In deze toepassingsomgevingen helpt het gebruik van ondertekende containerinstallatiekopieën te controleren of uw implementaties zijn gebouwd op basis van een vertrouwde entiteit en dat er sinds het maken van installatiekopieën niet met installatiekopieën is geknoeid. Image Integrity is een service waarmee u een ingebouwde definitie van Azure Policy kunt toevoegen om te controleren of alleen ondertekende images in uw AKS-clusters worden geïmplementeerd.
Notitie
Afbeeldingsintegriteit is een functie gebaseerd op Ratify. Op een AKS-cluster zijn ImageIntegrityde naam en eigenschapsnaam van de functie, terwijl de namen van de relevante pods voor afbeeldingsintegriteit de naam bevatten Ratify.
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Vereisten
Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
aks-previewCLI-extensie versie 0.5.96 of hoger.Zorg ervoor dat de Azure Policy-invoegtoepassing voor AKS is ingeschakeld in uw cluster. Zie Azure Policy-invoegtoepassing installeren voor AKS als u deze invoegtoepassing niet hebt geïnstalleerd.
Een AKS-cluster ingeschakeld met OIDC Issuer. Zie Een AKS-cluster configureren met OIDC Issuer als u een nieuw cluster wilt maken of een bestaand cluster wilt bijwerken.
De
EnableImageIntegrityPreviewfunctievlagken die zijn geregistreerd in uw Azure-abonnement. Registreer de functievlagmen met behulp van de volgende opdrachten:Registreer de
EnableImageIntegrityPreviewfunctievlagmen met behulp van deaz feature registeropdracht.# 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*.Controleer de registratiestatus met behulp van de
az feature showopdracht.# Verify the EnableImageIntegrityPreview feature flag registration status az feature show --namespace "Microsoft.ContainerService" --name "EnableImageIntegrityPreview"Zodra de status Geregistreerd wordt weergegeven, vernieuwt u de registratie van de
Microsoft.ContainerServiceresourceprovider met behulp van deaz provider registeropdracht.az provider register --namespace Microsoft.ContainerService
Overwegingen en beperkingen
- Uw AKS-clusters moeten Kubernetes versie 1.26 of hoger uitvoeren.
- Gebruik deze functie niet voor productieregisters of workloads van Azure Container Registry (ACR).
- Afbeeldingsintegriteit ondersteunt maximaal 200 unieke handtekeningen tegelijk clusterbreed.
- Notatie is de enige ondersteunde verificator.
- Controle is het enige ondersteunde verificatiebeleidseffect.
Hoe afbeeldingsintegriteit werkt
Image Integrity maakt gebruik van Ratify, Azure Policy en Gatekeeper om ondertekende installatiekopieën te valideren voordat ze in uw AKS-clusters worden geïmplementeerd. Als u afbeeldingsintegriteit inschakelt in uw cluster, wordt een Ratify pod geïmplementeerd. Deze Ratify pod voert de volgende taken uit:
- Hiermee worden certificaten van Azure Key Vault afgestemd op de configuratie die u hebt ingesteld via
RatifyCRD's. - Toegang tot afbeeldingen die zijn opgeslagen in ACR wanneer validatieaanvragen afkomstig zijn van Azure Policy. Om deze ervaring mogelijk te maken, breidt Azure Policy Gatekeeper uit, een toegangscontrollerwebhook voor Open Policy Agent (OPA).
- Bepaalt of de doelafbeelding is ondertekend met een vertrouwd certificaat en daarom als vertrouwd wordt beschouwd.
-
AzurePolicyenGatekeeperverbruik de validatieresultaten als de nalevingsstatus om te bepalen of de implementatieaanvraag moet worden toegestaan.
Afbeeldingsintegriteit inschakelen op uw AKS-cluster
Notitie
Verificatie van afbeeldingshandtekening is een beheerscenario en maakt gebruik van Azure Policy om afbeeldingshandtekeningen op AKS-clusters op schaal te controleren. We raden u aan het ingebouwde Azure Policy-initiatief voor afbeeldingsintegriteit van AKS te gebruiken, dat beschikbaar is in de ingebouwde definitiebibliotheek van Azure Policy.
Maak een beleidstoewijzing met het AKS-beleidsinitiatief
[Preview]: Use Image Integrity to ensure only trusted images are deployedmet behulp van deaz policy assignment createopdracht.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}De
Ratifypod wordt geïmplementeerd nadat u de functie hebt ingeschakeld.
Notitie
Het beleid implementeert de Image Integrity-functie op uw cluster wanneer er een updatebewerking op het cluster wordt gedetecteerd. Als u de functie onmiddellijk wilt inschakelen, moet u een beleidsherstel maken met behulp van de az policy remediation create opdracht.
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}
Verificatieconfiguraties instellen
Om de integriteit van de installatiekopieën correct te verifiëren, moet u configuraties instellen Ratify via K8s CRD'smet behulp van kubectl.
In dit artikel gebruiken we een zelfondertekend CA-certificaat uit de officiële ratificatiedocumentatie voor het instellen van verificatieconfiguraties. Zie CRD's ratificeren voor meer voorbeelden.
Maak een
VerifyConfigbestand met de naamverify-config.yamlen kopieer in de volgende YAML: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: - "*"Breng de
VerifyConfigaan op je cluster met behulp van dekubectl applyopdracht.kubectl apply -f verify-config.yaml
Voorbeeldafbeeldingen in uw AKS-cluster implementeren
Implementeer een ondertekende installatiekopieën met behulp van de
kubectl run demoopdracht.kubectl run demo-signed --image=ghcr.io/deislabs/ratify/notary-image:signedIn de volgende voorbeelduitvoer ziet u dat afbeeldingsintegriteit de implementatie toestaat:
ghcr.io/deislabs/ratify/notary-image:signed pod/demo-signed created
Als u uw eigen afbeeldingen wilt gebruiken, raadpleegt u de richtlijnen voor het ondertekenen van afbeeldingen.
Afbeeldingsintegriteit uitschakelen
Beleidsinitiatief verwijderen
Eerst moet u het beleidsinitiatief verwijderen met behulp van de
az policy assignment deleteopdracht.az policy assignment delete --name 'deploy-trustedimages'
Diable-invoegtoepassing
Schakel vervolgens de invoegtoepassing Afbeeldingsintegriteit in uw cluster uit met behulp van de
az aks updateopdracht met de--disable-image-integrityvlag.az aks update --resource-group myResourceGroup --name MyManagedCluster --disable-image-integrity
Volgende stappen
In dit artikel hebt u geleerd hoe u Image Integrity kunt gebruiken om ondertekende installatiekopieën te valideren voordat u ze implementeert in uw AKS-clusters (Azure Kubernetes Service). Als u wilt weten hoe u uw eigen containers kunt ondertekenen, raadpleeg dan Build, sign en verify container images met behulp van Notary en Azure Key Vault (voorbeeldversie).