Dela via


Självstudie: Använda Azure Key Vault-providern för Secrets Store CSI-drivrutinen i ett AKS-kluster (Azure Kubernetes Service)

Lär dig hur du ansluter till Azure Key Vault med CSI-drivrutinen i ett AKS-kluster (Azure Kubernetes Service) med hjälp av Service Connector. I den här självstudien slutför du följande uppgifter:

  • Skapa ett AKS-kluster och ett Azure Key Vault.
  • Skapa en anslutning mellan AKS-klustret och Azure Key Vault med Service Connector.
  • Skapa en SecretProviderClass CRD och en pod som använder CSI-providern för att testa anslutningen.
  • Rensa resurser.

Viktigt!

Service Connect i AKS är för närvarande i förhandsversion. Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Varning

Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver mycket stort förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.

Förutsättningar

Skapa Azure-resurser

  1. Skapa en resursgrupp för den här självstudien.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Skapa ett AKS-kluster med följande kommando eller referera till självstudien. Det här är klustret där vi skapar tjänstanslutningen, podddefinitionen och distribuerar exempelprogrammet till.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Anslut till klustret med följande kommando.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Skapa ett Azure Key Vault med följande kommando eller referera till självstudien. Det här är måltjänsten som är ansluten till AKS-klustret och CSI-drivrutinen synkroniserar hemligheter från.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Skapa en hemlighet i Key Vault med följande kommando.

    az keyvault secret set \
        --vault-name MyKeyVault \
        --name ExampleSecret \
        --value MyAKSExampleSecret
    

Skapa en tjänstanslutning i AKS med Service Connector (förhandsversion)

Skapa en tjänstanslutning mellan ett AKS-kluster och ett Azure Key Vault med hjälp av Azure Portal eller Azure CLI.

  1. Öppna Kubernetes-tjänsten i Azure Portal och välj Service Connector på den vänstra menyn.

  2. Välj Skapa och fyll i inställningarna enligt nedan. Lämna de andra inställningarna med sina standardvärden.

    Inställning Alternativ beskrivning
    Kubernetes-namnområde standard Namnområdet där du behöver anslutningen i klustret.
    Typ av tjänst Key Vault (aktivera CSI) Välj Key Vault som måltjänsttyp och kontrollera alternativet för att aktivera CSI.
    Anslutningens namn keyvault_conn Använd anslutningsnamnet som tillhandahålls av Service Connector eller välj ditt eget anslutningsnamn.
    Abonnemang <MySubscription> Prenumerationen för din Azure Key Vault-måltjänst.
    Nyckelvalv <MyKeyVault> Det målnyckelvalv som du vill ansluta till.
    Klienttyp Python Det kodspråk eller ramverk som du använder för att ansluta till måltjänsten.
  3. När anslutningen har skapats visar sidan Service Connector information om den nya anslutningen.

    Skärmbild av Azure Portal som visar kubernetes-resurser som skapats av Service Connector.

Testa anslutningen

  1. Klona exempellagringsplatsen:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Gå till lagringsplatsens exempelmapp för Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Ersätt platshållarna i secret_provider_class.yaml filen i azure-keyvault-csi-provider mappen.

    • Ersätt <AZURE_KEYVAULT_NAME> med namnet på nyckelvalvet som vi skapade och anslöt. Du kan få värdet från Azure Portal för Service Connector.
    • Ersätt <AZURE_KEYVAULT_TENANTID> med klientorganisations-ID:t för nyckelvalvet. Du kan få värdet från Azure Portal för Service Connector.
    • Ersätt <AZURE_KEYVAULT_CLIENTID> med identitetsklient-ID för azureKeyvaultSecretsProvider tillägget. Du kan få värdet från Azure Portal för Service Connector.
    • Ersätt <KEYVAULT_SECRET_NAME> med namnet på nyckelvalvets hemlighet som vi skapade, till exempel ExampleSecret
  4. Distribuera Kubernetes-resurserna till klustret med kubectl apply kommandot . Installera kubectl lokalt med kommandot az aks install-cli om det inte är installerat.

    1. SecretProviderClass Distribuera CRD.
    kubectl apply -f secret_provider_class.yaml
    
    1. podDistribuera . Kommandot skapar en podd med namnet sc-demo-keyvault-csi i standardnamnområdet för aks-klustret.
    kubectl apply -f pod.yaml
    
  5. Kontrollera att distributionen lyckas genom att visa podden med kubectl.

    kubectl get pod/sc-demo-keyvault-csi
    
  6. När podden har startats är det monterade innehållet på den volymsökväg som anges i din distributions-YAML tillgängligt. Använd följande kommandon för att verifiera dina hemligheter och skriva ut en testhemlighet.

    • Visa hemligheter som lagras i hemlighetsarkivet med hjälp av följande kommando.
    kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
    
    • Visa en hemlighet i arkivet med hjälp av följande kommando. Det här exempelkommandot visar testhemligheten ExampleSecret.
    kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
    

Rensa resurser

Om du inte behöver återanvända de resurser som du har skapat i den här självstudien tar du bort alla resurser som du har skapat genom att ta bort resursgruppen.

az group delete \
    --resource-group MyResourceGroup

Nästa steg

Läs följande artiklar om du vill veta mer om begrepp för Service Connector och hur det hjälper AKS att ansluta till tjänster.