Zelfstudie: De Azure Key Vault-provider gebruiken voor het CSI-stuurprogramma Secrets Store in een AKS-cluster (Azure Kubernetes Service)
Meer informatie over het maken van verbinding met Azure Key Vault met behulp van het CSI-stuurprogramma in een AKS-cluster (Azure Kubernetes Service) met behulp van Service Connector. In deze zelfstudie voert u de volgende taken uit:
- Maak een AKS-cluster en een Azure Key Vault.
- Maak een verbinding tussen het AKS-cluster en de Azure Key Vault met Service Connector.
- Maak een
SecretProviderClass
CRD en eenpod
verbruik van de CSI-provider om de verbinding te testen. - Schoon resources op.
Belangrijk
Service Connect binnen AKS is momenteel in preview. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Waarschuwing
Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. De verificatiestroom die in deze procedure wordt beschreven, vereist een zeer hoge mate van vertrouwen in de toepassing en brengt risico's met zich mee die niet aanwezig zijn in andere stromen. U moet deze stroom alleen gebruiken wanneer andere veiligere stromen, zoals beheerde identiteiten, niet haalbaar zijn.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Installeer de Azure CLI en meld u aan bij Azure CLI met behulp van de opdracht az login .
- Installeer Dockeren kubectl om containerinstallatiekopieën en Kubernetes-resources te beheren.
- Basiskennis van container en AKS. Ga aan de slag met het voorbereiden van een toepassing voor AKS.
Azure-resources maken
Maak een resourcegroep voor deze zelfstudie.
az group create \ --name MyResourceGroup \ --location eastus
Maak een AKS-cluster met de volgende opdracht of raadpleeg de zelfstudie. Dit is het cluster waarin we de serviceverbinding, poddefinitie maken en de voorbeeldtoepassing implementeren.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
Maak verbinding met het cluster met de volgende opdracht.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Maak een Azure Key Vault met de volgende opdracht of raadpleeg de zelfstudie. Dit is de doelservice die is verbonden met het AKS-cluster en het CSI-stuurprogramma synchroniseert geheimen van.
az keyvault create \ --resource-group MyResourceGroup \ --name MyKeyVault \ --location EastUS
Maak een geheim in de Sleutelkluis met de volgende opdracht.
az keyvault secret set \ --vault-name MyKeyVault \ --name ExampleSecret \ --value MyAKSExampleSecret
Een serviceverbinding maken in AKS met Service Connector (preview)
Maak een serviceverbinding tussen een AKS-cluster en een Azure Key Vault met behulp van Azure Portal of de Azure CLI.
Open uw Kubernetes-service in Azure Portal en selecteer Serviceconnector in het linkermenu.
Selecteer Maken en vul de instellingen in, zoals hieronder wordt weergegeven. Laat de andere instellingen ongewijzigd met de standaardwaarden.
Instelling Keuze Beschrijving Kubernetes-naamruimte default De naamruimte waar u de verbinding in het cluster nodig hebt. Servicetype Key Vault (CSI inschakelen) Kies Key Vault als doelservicetype en schakel de optie in om CSI in te schakelen. Verbindingsnaam keyvault_conn Gebruik de verbindingsnaam die is opgegeven door Service Connector of kies uw eigen verbindingsnaam. Abonnement <MySubscription>
Het abonnement voor uw Azure Key Vault-doelservice. Sleutelkluis <MyKeyVault>
De doelsleutelkluis waarmee u verbinding wilt maken. Clienttype Python De codetaal of het framework dat u gebruikt om verbinding te maken met de doelservice. Zodra de verbinding is gemaakt, geeft de pagina Serviceconnector informatie weer over de nieuwe verbinding.
Test de verbinding
Kloon de voorbeeldopslagplaats:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Ga naar de voorbeeldmap van de opslagplaats voor Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Vervang de tijdelijke aanduidingen in het
secret_provider_class.yaml
bestand in deazure-keyvault-csi-provider
map.- Vervang door
<AZURE_KEYVAULT_NAME>
de naam van de sleutelkluis die we hebben gemaakt en verbonden. Mogelijk krijgt u de waarde van Azure Portal van Service Connector. - Vervang door
<AZURE_KEYVAULT_TENANTID>
de tenant-id van de sleutelkluis. Mogelijk krijgt u de waarde van Azure Portal van Service Connector. - Vervang door
<AZURE_KEYVAULT_CLIENTID>
de id-client-id van deazureKeyvaultSecretsProvider
invoegtoepassing. Mogelijk krijgt u de waarde van Azure Portal van Service Connector. - Vervang door
<KEYVAULT_SECRET_NAME>
de naam van het sleutelkluisgeheim dat we hebben gemaakt, bijvoorbeeldExampleSecret
- Vervang door
Implementeer de Kubernetes-resources in uw cluster met de
kubectl apply
opdracht. Installeerkubectl
lokaal met behulp van de opdracht az aks install-cli als deze niet is geïnstalleerd.- Implementeer de
SecretProviderClass
CRD.
kubectl apply -f secret_provider_class.yaml
- Implementeer de
pod
. Met de opdracht maakt u een pod met de naam insc-demo-keyvault-csi
de standaardnaamruimte van uw AKS-cluster.
kubectl apply -f pod.yaml
- Implementeer de
Controleer of de implementatie is geslaagd door de pod weer te geven met
kubectl
.kubectl get pod/sc-demo-keyvault-csi
Nadat de pod is gestart, is de gekoppelde inhoud op het volumepad dat is opgegeven in uw YAML-implementatie beschikbaar. Gebruik de volgende opdrachten om uw geheimen te valideren en een testgeheim af te drukken.
- Geef geheimen weer die zijn opgeslagen in het geheimenarchief met behulp van de volgende opdracht.
kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
- Geef een geheim weer in de store met behulp van de volgende opdracht. Met deze voorbeeldopdracht wordt het testgeheim
ExampleSecret
weergegeven.
kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
Resources opschonen
Als u de resources die u in deze zelfstudie hebt gemaakt niet opnieuw hoeft te gebruiken, verwijdert u alle resources die u hebt gemaakt door de resourcegroep te verwijderen.
az group delete \
--resource-group MyResourceGroup
Volgende stappen
Lees de volgende artikelen voor meer informatie over serviceconnectorconcepten en hoe het AKS helpt om verbinding te maken met services.