Använda Azure Key Vault-providern för Secrets Store CSI Driver i ett AKS-kluster (Azure Kubernetes Service)
Azure Key Vault-providern för Secrets Store CSI Driver möjliggör integrering av ett Azure Key Vault som ett hemligt arkiv med ett AKS-kluster (Azure Kubernetes Service) via en CSI-volym.
Funktioner
- Monterar hemligheter, nycklar och certifikat till en podd med hjälp av en CSI-volym.
- Stöder interna CSI-volymer.
- Stöd för montering av flera hemligheter lagrar objekt som en enda volym.
- Stöder poddportabilitet med
SecretProviderClass
CRD. - Stöder Windows-containrar.
- Synkroniserar med Kubernetes-hemligheter.
- Stöder autorotation av monterat innehåll och synkroniserade Kubernetes-hemligheter.
Begränsningar
En container med subPath-volymmontering tar inte emot hemliga uppdateringar när den roteras. Mer information finns i Hemligheter Store CSI Driver kända begränsningar.
Förutsättningar
- Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- Kontrollera att din version av Azure CLI är 2.30.0 eller senare. Om det är en tidigare version installerar du den senaste versionen.
- Om du begränsar Ingress till klustret kontrollerar du att portarna 9808 och 8095 är öppna.
- Den lägsta rekommenderade Kubernetes-versionen baseras på det löpande supportfönstret för Kubernetes-versionen. Kontrollera att du kör version N-2 eller senare.
Skapa ett AKS-kluster med Stöd för Azure Key Vault-provider för Secrets Store CSI-drivrutin
Skapa en Azure-resursgrupp med kommandot
az group create
.az group create --name myResourceGroup --location eastus2
Skapa ett AKS-kluster med Azure Key Vault-providern för CSI-drivrutinsfunktionen i Secrets Store med hjälp av
az aks create
kommandot med parametern--enable-addons azure-keyvault-secrets-provider
. Tillägget skapar en användartilldelad hanterad identitet som du kan använda för att autentisera till ditt nyckelvalv. I följande exempel skapas ett AKS-kluster med Azure Key Vault-providern för Secrets Store CSI-drivrutinen aktiverad.Kommentar
Om du vill använda Microsoft Entra-arbetsbelastnings-ID måste du också använda parametrarna
--enable-oidc-issuer
och--enable-workload-identity
, till exempel i följande exempel: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
Föregående kommando skapar en användartilldelad hanterad identitet, ,
azureKeyvaultSecretsProvider
för att få åtkomst till Azure-resurser. I följande exempel används den här identiteten för att ansluta till nyckelvalvet som lagrar hemligheterna, men du kan också använda andra metoder för identitetsåtkomst. Anteckna identitetenclientId
i utdata...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Kommentar
När du har aktiverat den här funktionen skapar AKS en hanterad identitet med namnet azurekeyvaultsecretsprovider-xxx
i nodresursgruppen och tilldelar den automatiskt till VMSS (Virtual Machine Scale Sets). Du kan använda den här hanterade identiteten eller din egen hanterade identitet för att få åtkomst till nyckelvalvet. Det stöds inte för att förhindra att identiteten skapas.
Uppgradera ett befintligt AKS-kluster med Stöd för Azure Key Vault-provider för Secrets Store CSI-drivrutin
Uppgradera ett befintligt AKS-kluster med Azure Key Vault-providern för CSI-drivrutinsfunktionen i Secrets Store med hjälp av
az aks enable-addons
kommandot och aktiveraazure-keyvault-secrets-provider
tillägget. Tillägget skapar en användartilldelad hanterad identitet som du kan använda för att autentisera till ditt nyckelvalv.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Kommentar
När du har aktiverat den här funktionen skapar AKS en hanterad identitet med namnet azurekeyvaultsecretsprovider-xxx
i nodresursgruppen och tilldelar den automatiskt till VMSS (Virtual Machine Scale Sets). Du kan använda den här hanterade identiteten eller din egen hanterade identitet för att få åtkomst till nyckelvalvet. Det stöds inte för att förhindra att identiteten skapas.
Verifiera installationen av Azure Key Vault-providern för Secrets Store CSI-drivrutinen
Hämta autentiseringsuppgifterna för AKS-klustret med kommandot [
az aks get-credentials
][az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Kontrollera att installationen är klar med
kubectl get pods
kommandot som visar alla poddar medsecrets-store-csi-driver
etiketterna ochsecrets-store-provider-azure
i kube-system-namnområdet.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
Dina utdata bör se ut ungefär som följande exempelutdata:
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
Kontrollera att varje nod i klustrets nodpool har en CSI-drivrutinspodd för Secrets Store och en Azure-podd för Secrets Store-providern som körs.
Skapa eller använda ett befintligt Azure Key Vault
Skapa eller uppdatera ett nyckelvalv med rollbaserad åtkomstkontroll i Azure (Azure RBAC) aktiverat med kommandot
az keyvault create
elleraz keyvault update
kommandot med--enable-rbac-authorization
flaggan . Namnet på nyckelvalvet måste vara globalt unikt. Mer information om nyckelvalvsbehörighetsmodeller och Azure RBAC finns i Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med en rollbaserad åtkomstkontroll i Azure## 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
Ditt nyckelvalv kan lagra nycklar, hemligheter och certifikat. I det här exemplet använder du
az keyvault secret set
kommandot för att ange en oformaterad hemlighet med namnetExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Anteckna följande egenskaper för framtida användning:
- Namnet på det hemliga objektet i nyckelvalvet
- Objekttypen (hemlighet, nyckel eller certifikat)
- Namnet på nyckelvalvsresursen
- Prenumerationens Azure-klientorganisations-ID
Nästa steg
I den här artikeln har du lärt dig hur du använder Azure Key Vault-providern för Secrets Store CSI-drivrutinen i ett AKS-kluster. Nu måste du ange en identitet för att få åtkomst till Azure Key Vault. Fortsätt till nästa artikel om du vill veta mer.
Azure Kubernetes Service