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

  1. Skapa en Azure-resursgrupp med kommandot az group create .

    az group create --name myResourceGroup --location eastus2
    
  2. Skapa ett AKS-kluster med Azure Key Vault-providern för CSI-drivrutinsfunktionen i Secrets Store med kommandot az aks create med parametern --enable-managed-identity och 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
    
    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-managed-identity --enable-addons azure-keyvault-secrets-provider
    
  3. Föregående kommando skapar en användartilldelad hanterad identitet, , azureKeyvaultSecretsProviderfö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 identiteten clientId i utdata.

    ...,
     "addonProfiles": {
        "azureKeyvaultSecretsProvider": {
          ...,
          "identity": {
            "clientId": "<client-id>",
            ...
          }
        }
    

Kommentar

När du har aktiverat den här funktionen skapar AKS en hanterad identity named 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 aktivera azure-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 identity named 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

  1. Kontrollera att installationen är klar med kubectl get pods kommandot som visar alla poddar med secrets-store-csi-driver etiketterna och secrets-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
    
  2. 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

  1. Skapa eller uppdatera ett nyckelvalv med rollbaserad åtkomstkontroll i Azure (Azure RBAC) aktiverat med kommandot az keyvault create eller az 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
    
  2. 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 namnet ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. 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.