Delen via


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 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 of Secret als subPath 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

Netwerk

Rollen

  • De identiteit die wordt gebruikt met de SecretProviderClass moet Key Vault Certificate User hebben om toegang te krijgen tot key of certificateobjecttypen.
  • De identiteit die met de SecretProviderClass wordt gebruikt, moet Key Vault Secrets User hebben om toegang te krijgen tot het secretobjecttype.

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 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
    
  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. Let op de identiteit clientId 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 de azure-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

  1. Haal de AKS-clusterreferenties op met behulp van de az aks get-credentials opdracht.

    az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
    
  2. 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
    
  3. 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

  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 az keyvault secret set opdracht om een tekstgeheim genaamd ExampleSecret in te stellen.

    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.