De Azure Key Vault-provider gebruiken voor het CSI-stuurprogramma Secrets Store in een AKS-cluster (Azure Kubernetes Service)

Met de Azure Key Vault-provider voor Het CSI-stuurprogramma Secrets Store kan een Azure Key Vault worden geïntegreerd als een geheim archief 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 koppelen van meerdere geheimen opslagobjecten 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 met subPath-volumekoppeling ontvangt geen geheime updates wanneer deze wordt geroteerd. Zie Geheimen Store CSI Driver bekende beperkingen voor meer informatie.

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.
  • Als u inkomend verkeer beperkt tot het cluster, controleert u of de poorten 9808 en 8095 zijn geopend.
  • De minimaal aanbevolen Kubernetes-versie is gebaseerd op het doorlopende ondersteuningsvenster voor Kubernetes-versies. Zorg ervoor dat u versie N-2 of hoger gebruikt.

Een AKS-cluster maken met Azure Key Vault-provider voor ondersteuning voor Secrets Store CSI-stuurprogramma

  1. Maak een Azure-resourcegroep met behulp van de az group create opdracht.

    az group create --name myResourceGroup --location eastus2
    
  2. Maak een AKS-cluster met de Azure Key Vault-provider voor de CSI-stuurprogrammafunctie secrets store met behulp van de opdracht met de az aks create parameter --enable-managed-identity en de --enable-addons azure-keyvault-secrets-provider parameter. De invoegtoepassing maakt een door de gebruiker toegewezen beheerde identiteit die u kunt gebruiken om te verifiëren 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
    
    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-managed-identity --enable-addons azure-keyvault-secrets-provider
    
  3. Met de vorige opdracht maakt u een door de gebruiker toegewezen beheerde identiteit om azureKeyvaultSecretsProvidertoegang 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. Noteer de identiteit clientId in de uitvoer.

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

Notitie

Nadat u deze functie hebt ingeschakeld, maakt AKS automatisch een beheerde identity named 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 de identiteit wordt gemaakt.

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 de azure-keyvault-secrets-provider invoegtoepassing in. De invoegtoepassing maakt een door de gebruiker toegewezen beheerde identiteit die u kunt gebruiken om te verifiëren 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 identity named 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 de identiteit wordt gemaakt.

Controleer de Azure Key Vault-provider voor de installatie van het stuurprogramma Secrets Store CSI

  1. Controleer of de installatie is voltooid met behulp van de kubectl get pods opdracht, waarin alle pods met de secrets-store-csi-driver en secrets-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
    
  2. Controleer of elk knooppunt in de knooppuntgroep van uw cluster een pod voor het CSI-stuurprogramma Secrets Store en een Azure-pod van de Geheimen Store-provider heeft.

Een bestaande Azure Key Vault maken of gebruiken

  1. Een sleutelkluis maken of bijwerken met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) ingeschakeld met behulp van de az keyvault create opdracht of de az 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
    
  2. Uw sleutelkluis kan sleutels, geheimen en certificaten opslaan. In dit voorbeeld gebruikt u de opdracht om een geheim zonder opmaak in te stellen met de az keyvault secret set naam ExampleSecret.

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