Condividi tramite


Esercitazione: Usare il provider di Azure Key Vault per il driver CSI dell'archivio segreti in un cluster del Servizio Azure Kubernetes

Informazioni su come connettersi ad Azure Key Vault usando il driver CSI in un cluster del Servizio Azure Kubernetes (AKS) con l'aiuto di Connettore di servizi. In questa esercitazione si completano le attività seguenti:

  • Creare un cluster del servizio Azure Kubernetes e un insieme di credenziali delle chiavi di Azure.
  • Creare una connessione tra il cluster del servizio Azure Kubernetes e i Azure Key Vault con Connettore di servizi.
  • Creare un SecretProviderClass CRD e un pod che utilizza il provider CSI per testare la connessione.
  • Pulire le risorse.

Importante

Il servizio Connect all'interno del servizio Azure Kubernetes è attualmente in anteprima. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Avviso

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.

Prerequisiti

Creare risorse Azure

  1. Creare un gruppo di risorse per questa esercitazione.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Creare un cluster del servizio Azure Kubernetes con il comando seguente o fare riferimento all'esercitazione. È il cluster in cui viene creata la connessione al servizio e la definizione del pod e in cui viene distribuita l'applicazione di esempio.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Connettersi al cluster con il comando seguente.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Creare un Azure Key Vault con il comando seguente o fare riferimento all'esercitazione. Questo è il servizio di destinazione connesso al cluster del servizio Azure Kubernetes e il driver CSI sincronizza i segreti da.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Creare un segreto nell'insieme di credenziali delle chiavi con il comando seguente.

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

Creare una connessione al servizio nel servizio Azure Kubernetes con connettore di servizi (anteprima)

Creare una connessione al servizio tra un cluster del servizio Azure Kubernetes e un Azure Key Vault tramite iI portale di Azure o l'interfaccia della riga di comando di Azure.

  1. Aprire il Servizio Kubernetes nel portale di Azure e selezionare Connettore di servizi nel menu a sinistra.

  2. Selezionare Crea e compilare le impostazioni come illustrato di seguito. Per le altre impostazioni lasciare i valori predefiniti.

    Impostazione Scelta Descrizione
    Spazio dei nomi Kubernetes default Spazio dei nomi in cui è necessaria la connessione nel cluster.
    Tipo di servizio Key Vault (abilitare CSI) Scegliere Key Vault come tipo di servizio di destinazione e selezionare l'opzione per abilitare CSI.
    Nome connessione keyvault_conn Usare il nome della connessione fornito dal connettore di servizi o selezionare il proprio nome di connessione.
    Abbonamento <MySubscription> Sottoscrizione per il servizio di destinazione di Azure Key Vault.
    Key vault <MyKeyVault> Insieme di credenziali delle chiavi di destinazione a cui connettersi.
    Tipo client Python Linguaggio di codice o framework usato per connettersi al servizio di destinazione.
  3. Dopo aver creato la connessione, nella pagina Connettore di servizi vengono visualizzate informazioni sulla nuova connessione.

    Screenshot del portale di Azure, visualizzazione delle risorse Kubernetes create da Connettore di servizi.

Testare la connessione

  1. Clonare il repository di esempio:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Passare alla cartella di esempio del repository per Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Sostituire i segnaposto nel file secret_provider_class.yaml nella cartella azure-keyvault-csi-provider.

    • Sostituire <AZURE_KEYVAULT_NAME> con il nome dell'insieme di credenziali delle chiavi creato e connesso. È possibile ottenere il valore dal portale di Azure di Connettore di servizi.
    • Sostituire <AZURE_KEYVAULT_TENANTID> con l'ID tenant dell'insieme di credenziali delle chiavi. È possibile ottenere il valore dal portale di Azure di Connettore di servizi.
    • Sostituire <AZURE_KEYVAULT_CLIENTID> con l'ID client di identità del componente aggiuntivo azureKeyvaultSecretsProvider. È possibile ottenere il valore dal portale di Azure di Connettore di servizi.
    • Sostituire <KEYVAULT_SECRET_NAME> con il nome del segreto dell'insieme di credenziali delle chiavi creato, ad esempio, ExampleSecret
  4. Distribuire le risorse Kubernetes nel cluster con il comando kubectl apply. Per installare kubectl in locale, usare il comando az aks install-cli se non è installato.

    1. Distribuire il SecretProviderClass CRD.
    kubectl apply -f secret_provider_class.yaml
    
    1. Distribuire la pod. Il comando crea un pod denominato sc-demo-keyvault-csi nello spazio dei nomi predefinito del cluster del servizio Azure Kubernetes.
    kubectl apply -f pod.yaml
    
  5. Controllare che la distribuzione abbia avuto esito positivo visualizzando il pod con kubectl.

    kubectl get pod/sc-demo-keyvault-csi
    
  6. Dopo l'avvio del pod, il contenuto montato nel percorso del volume specificato nella distribuzione YAML è disponibile. Usare i comandi seguenti per convalidare i segreti e stampare un segreto di test.

    • Visualizzare i segreti contenuti nell'archivio segreti usando il comando seguente.
    kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
    
    • Visualizzare un segreto nell'archivio usando il comando seguente. Questo comando di esempio mostra il segreto ExampleSecret di test.
    kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
    

Pulire le risorse

Se non è necessario riutilizzare le risorse create in questa esercitazione, eliminare tutte le risorse create eliminando il gruppo di risorse.

az group delete \
    --resource-group MyResourceGroup

Passaggi successivi

Leggere gli articoli seguenti per altre informazioni sui concetti di connettore di servizi e su come consente al servizio Azure Kubernetes di connettersi ai servizi.