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.
Met de Azure Key Vault-provider voor het CSI-stuurprogramma Secrets Store kan een Azure Key Vault worden geïntegreerd als een geheime opslag met een AKS-cluster (Azure Kubernetes Service) via een CSI-volume.
Functies
- Hiermee koppelt u geheimen, sleutels en certificaten aan een pod met behulp van een CSI-volume.
- Ondersteunt inline CSI-volumes.
- Ondersteunt het monteren van meerdere geheimenopslagobjecten als één volume.
- Ondersteunt draagbaarheid van pods met de
SecretProviderClass
CRD. - Ondersteunt Windows-containers.
- Synchroniseert met Kubernetes-geheimen.
- Ondersteunt automatischerotatie van gekoppelde inhoud en gesynchroniseerde Kubernetes-geheimen.
Beperkingen
- Een container die een
ConfigMap
ofSecret
alssubPath
volumekoppeling gebruikt, ontvangt geen automatische updates wanneer het geheim wordt vernieuwd. Dit is een Kubernetes-beperking. Om de wijzigingen van kracht te laten worden, moet de toepassing het gewijzigde bestand opnieuw laden door te kijken naar wijzigingen in het bestandssysteem of door de pod opnieuw te starten. Raadpleeg Secrets Store CSI Driver bekende beperkingen voor meer informatie. - De invoegtoepassing creëert een beheerde identiteit met de naam
azurekeyvaultsecretsprovider-xxx
in de knooppuntresourcegroep en wijst deze automatisch toe aan de Virtual Machine Scale Sets (VMSS). U kunt deze beheerde identiteit of uw eigen beheerde identiteit gebruiken voor toegang tot de sleutelkluis. Het wordt niet ondersteund om te voorkomen dat een identiteit gecreëerd wordt.
Vereisten
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- Controleer of uw versie van de Azure CLI 2.30.0 of hoger is. Als het een eerdere versie is, installeert u de nieuwste versie.
Netwerk
- Als u geïsoleerde netwerkclusters gebruikt, is het raadzaam om een privé-eindpunt in te stellen voor toegang tot Azure Key Vault.
- Als het cluster een uitgaand type
userDefinedRouting
heeft en een firewallapparaat gebruikt dat uitgaand verkeer kan beheren op basis van domeinnamen, zoals Azure Firewall, moet u ervoor zorgen dat de vereiste uitgaande netwerkregels en FQDN's zijn toegestaan. - Als u inkomend verkeer beperkt tot het cluster, controleert u of de poorten 9808 en 8095 zijn geopend.
Rollen
- De identiteit die wordt gebruikt met de
SecretProviderClass
moetKey Vault Certificate User
hebben om toegang te krijgen totkey
ofcertificate
objecttypen. - De identiteit die met de
SecretProviderClass
wordt gebruikt, moetKey Vault Secrets User
hebben om toegang te krijgen tot hetsecret
objecttype.
Een AKS-cluster maken met Azure Key Vault-provider voor ondersteuning voor Secrets Store CSI-stuurprogramma
Maak een Azure-resourcegroep met behulp van de
az group create
opdracht.az group create --name myResourceGroup --location eastus2
Maak een AKS-cluster met de Azure Key Vault-provider voor het stuurprogramma Secrets Store CSI met behulp van de
az aks create
opdracht met de--enable-addons azure-keyvault-secrets-provider
parameter. De invoegtoepassing maakt een door de gebruiker toegewezen beheerde identiteit die u kunt gebruiken om te authenticeren bij uw sleutelkluis. In het volgende voorbeeld wordt een AKS-cluster gemaakt waarbij de Azure Key Vault-provider voor het CSI-stuurprogramma Secrets Store is ingeschakeld.Notitie
Als u Microsoft Entra Workload-ID wilt gebruiken, moet u ook de
--enable-oidc-issuer
en--enable-workload-identity
parameters gebruiken, zoals in het volgende voorbeeld:az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keys
Met de vorige opdracht maakt u een door de gebruiker toegewezen beheerde identiteit om
azureKeyvaultSecretsProvider
toegang te krijgen tot Azure-resources. In het volgende voorbeeld wordt deze identiteit gebruikt om verbinding te maken met de sleutelkluis waarin de geheimen worden opgeslagen, maar u kunt ook andere methoden voor identiteitstoegang gebruiken. Let op de identiteitclientId
in de uitvoer...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Notitie
Nadat u deze functie hebt ingeschakeld, maakt AKS automatisch een beheerde identiteit met de naam azurekeyvaultsecretsprovider-xxx
in de knooppuntresourcegroep en wijst deze automatisch toe aan de VIRTUELE-machineschaalsets (VMSS). U kunt deze beheerde identiteit of uw eigen beheerde identiteit gebruiken voor toegang tot de sleutelkluis. Het wordt niet ondersteund om te voorkomen dat een identiteit gecreëerd wordt.
Een bestaand AKS-cluster upgraden met Azure Key Vault-provider voor ondersteuning voor het CSI-stuurprogramma secrets store
Werk een bestaand AKS-cluster bij met de Azure Key Vault-provider voor het stuurprogramma Secrets Store CSI met behulp van de
az aks enable-addons
opdracht en schakel deazure-keyvault-secrets-provider
invoegtoepassing in. De invoegtoepassing maakt een door de gebruiker toegewezen beheerde identiteit die u kunt gebruiken om te authenticeren bij uw sleutelkluis.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Notitie
Nadat u deze functie hebt ingeschakeld, maakt AKS automatisch een beheerde identiteit met de naam azurekeyvaultsecretsprovider-xxx
in de knooppuntresourcegroep en wijst deze automatisch toe aan de VIRTUELE-machineschaalsets (VMSS). U kunt deze beheerde identiteit of uw eigen beheerde identiteit gebruiken voor toegang tot de sleutelkluis. Het wordt niet ondersteund om te voorkomen dat een identiteit gecreëerd wordt.
Controleer de Azure Key Vault-provider voor de installatie van het stuurprogramma Secrets Store CSI
Haal de AKS-clusterreferenties op met behulp van de
az aks get-credentials
opdracht.az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Controleer of de installatie is voltooid met behulp van de
kubectl get pods
opdracht, waarin alle pods met desecrets-store-csi-driver
ensecrets-store-provider-azure
labels in de kube-system-naamruimte worden vermeld.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
NAME READY STATUS RESTARTS AGE aks-secrets-store-csi-driver-4vpkj 3/3 Running 2 4m25s aks-secrets-store-csi-driver-ctjq6 3/3 Running 2 4m21s aks-secrets-store-csi-driver-tlvlq 3/3 Running 2 4m24s aks-secrets-store-provider-azure-5p4nb 1/1 Running 0 4m21s aks-secrets-store-provider-azure-6pqmv 1/1 Running 0 4m24s aks-secrets-store-provider-azure-f5qlm 1/1 Running 0 4m25s
Controleer of elk knooppunt in de knooppuntgroep van uw cluster een Secrets Store CSI Driver-pod en een Secrets Store Provider Azure-pod heeft.
Een bestaande Azure Key Vault maken of gebruiken
Een sleutelkluis maken of bijwerken met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) ingeschakeld met behulp van de
az keyvault create
opdracht of deaz keyvault update
opdracht met de--enable-rbac-authorization
vlag. De naam van de sleutelkluis moet wereldwijd uniek zijn. Zie Toegang bieden tot Key Vault-sleutels, -certificaten en -geheimen met een op rollen gebaseerd toegangsbeheer van Azure voor meer informatie over sleutelkluismachtigingsmodellen en Azure RBAC## Create a new Azure key vault az keyvault create --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization ## Update an existing Azure key vault az keyvault update --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization
Uw sleutelkluis kan sleutels, geheimen en certificaten opslaan. In dit voorbeeld gebruikt u de
az keyvault secret set
opdracht om een tekstgeheim genaamdExampleSecret
in te stellen.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Noteer de volgende eigenschappen voor toekomstig gebruik:
- De naam van het geheime object in de sleutelkluis
- Het objecttype (geheim, sleutel of certificaat)
- De naam van uw sleutelkluisresource
- De Azure-tenant-id van het abonnement
Volgende stappen
In dit artikel hebt u geleerd hoe u de Azure Key Vault-provider voor het CSI-stuurprogramma Secrets Store gebruikt in een AKS-cluster. U moet nu een identiteit opgeven voor toegang tot Azure Key Vault. Als u wilt weten hoe u dit kunt doen, gaat u verder met het volgende artikel.
Azure Kubernetes Service