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 unpod
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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Installare l'interfaccia della riga di comando di Azure e accedere all'interfaccia della riga di comando di Azure usando il comando az login.
- Installare Docker e kubectl per gestire le risorse dell'immagine del contenitore e Kubernetes.
- Conoscenza di base del contenitore e del servizio Azure Kubernetes. Iniziare dalla preparazione di un'applicazione per il servizio Azure Kubernetes.
Creare risorse Azure
Creare un gruppo di risorse per questa esercitazione.
az group create \ --name MyResourceGroup \ --location eastus
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
Connettersi al cluster con il comando seguente.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
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
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.
Aprire il Servizio Kubernetes nel portale di Azure e selezionare Connettore di servizi nel menu a sinistra.
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. Dopo aver creato la connessione, nella pagina Connettore di servizi vengono visualizzate informazioni sulla nuova connessione.
Testare la connessione
Clonare il repository di esempio:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Passare alla cartella di esempio del repository per Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Sostituire i segnaposto nel file
secret_provider_class.yaml
nella cartellaazure-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 aggiuntivoazureKeyvaultSecretsProvider
. È 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
- Sostituire
Distribuire le risorse Kubernetes nel cluster con il comando
kubectl apply
. Per installarekubectl
in locale, usare il comando az aks install-cli se non è installato.- Distribuire il
SecretProviderClass
CRD.
kubectl apply -f secret_provider_class.yaml
- Distribuire la
pod
. Il comando crea un pod denominatosc-demo-keyvault-csi
nello spazio dei nomi predefinito del cluster del servizio Azure Kubernetes.
kubectl apply -f pod.yaml
- Distribuire il
Controllare che la distribuzione abbia avuto esito positivo visualizzando il pod con
kubectl
.kubectl get pod/sc-demo-keyvault-csi
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.