Verwenden des Azure Key Vault Provider for Secrets Store CSI-Treibers in einem Azure Kubernetes Service (AKS)-Cluster
Mit dem Azure Key Vault Provider for Secrets Store CSI-Treiber können Sie einen Azure-Schlüsseltresor über ein CSI-Volume als Geheimnisspeicher in einen Azure Kubernetes Service(AKS)-Cluster integrieren.
Funktionen
- Einbinden von Geheimnissen, Schlüsseln und Zertifikaten in einen Pod mithilfe eines CSI-Volumes
- Unterstützung von CSI-Inlinevolumes
- Unterstützung für das Einbinden mehrerer Geheimnisspeicherobjekte als einzelnes Volume
- Unterstützung der Podportabilität mit der
SecretProviderClass
-CRD-Datei - Unterstützung von Windows-Containern
- Synchronisieren mit Kubernetes-Geheimnissen
- Unterstützung für die automatische Rotation eingebundener Inhalte und synchronisierter Kubernetes-Geheimnisse
Begrenzungen
Ein Container, der das Einbinden von Unterpfad-Volumes verwendet, erhält keine Geheimnis-Updates, wenn er rotiert wird. Weitere Informationen finden Sie unter Bekannte Einschränkungen des Secrets Store CSI-Treibers.
Voraussetzungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Überprüfen Sie, ob Ihre Version der Azure CLI 2.30.0 oder höher ist. Wenn es sich um eine frühere Version handelt, installieren Sie die neueste Version.
- Wenn Sie den Eingang im Cluster einschränken, stellen Sie sicher, dass die Ports 9808 und 8095 geöffnet sind.
- Die empfohlene Mindestversion von Kubernetes basiert auf dem rollierendem Kubernetes-Versionsunterstützungsfenster. Stellen Sie sicher, mindestens Version N-2auszuführen.
Erstellen eines AKS-Clusters mit Azure Key Vault Provider für Secrets Store CSI-Treiberunterstützung
Erstellen Sie mithilfe des Befehls
az group create
eine Azure-Ressourcengruppe.az group create --name myResourceGroup --location eastus2
Verwenden Sie den Befehl
az aks create
mit dem Parameter--enable-addons azure-keyvault-secrets-provider
, um einen AKS-Cluster mit Azure Key Vault Provider for Secrets Store CSI-Treiber zu erstellen. Das Add-On erstellt eine benutzerseitig zugewiesene verwaltete Identität, mit der Sie sich bei Ihrem Schlüsseltresor authentifizieren können. Im folgenden Beispiel wird ein AKS-Cluster mit aktiviertem Azure Key Vault-Anbieter für den Secrets Store CSI-Treiber erstellt.Hinweis
Wenn Sie die Microsoft Entra-Workload-ID verwenden möchten, müssen Sie auch die Parameter
--enable-oidc-issuer
und--enable-workload-identity
verwenden, wie im folgenden Beispiel: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
Der vorherige Befehl erstellt eine benutzerseitig zugewiesene verwaltete Identität (
azureKeyvaultSecretsProvider
) für den Zugriff auf Azure-Ressourcen. Im folgenden Beispiel wird über diese Identität eine Verbindung mit dem Schlüsseltresor hergestellt, in dem die Geheimnisse gespeichert werden. Sie können jedoch auch andere Methoden für den Identitätszugriff verwenden. Notieren Sie sich die IdentitätclientId
in der Ausgabe...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Hinweis
Nachdem Sie diese Funktion aktiviert haben, erstellt AKS eine verwaltete Identität mit dem Namen azurekeyvaultsecretsprovider-xxx
In der Knotenressourcengruppe und weist es automatisch den VMSS-Skalierungssets (Virtual Machine Scale Sets) zu. Sie können diese verwaltete Identität oder Ihre eigene verwaltete Identität verwenden, um auf den Schlüsseltresor zuzugreifen. Es wird nicht unterstützt, um die Erstellung der Identität zu verhindern.
Upgrade eines vorhandenen AKS-Clusters mit Azure Key Vault Provider for Secrets Store CSI-Treiberunterstützung
Aktualisieren Sie einen vorhandenen AKS-Cluster mit Azure Key Vault Provider for Secrets Store-CSI-Treiber mithilfe des Befehls
az aks enable-addons
mit aktiviertem Add-Onazure-keyvault-secrets-provider
. Das Add-On erstellt eine benutzerseitig zugewiesene verwaltete Identität, mit der Sie sich bei Ihrem Schlüsseltresor authentifizieren können.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Hinweis
Nachdem Sie diese Funktion aktiviert haben, erstellt AKS eine verwaltete Identität mit dem Namen azurekeyvaultsecretsprovider-xxx
In der Knotenressourcengruppe und weist es automatisch den VMSS-Skalierungssets (Virtual Machine Scale Sets) zu. Sie können diese verwaltete Identität oder Ihre eigene verwaltete Identität verwenden, um auf den Schlüsseltresor zuzugreifen. Es wird nicht unterstützt, um die Erstellung der Identität zu verhindern.
Überprüfen der Installation des Azure Key Vault Provider for Secrets Store CSI-Treibers
Rufen Sie die Anmeldeinformationen für den AKS-Cluster mit dem Befehl [
az aks get-credentials
] [az-aks-get-credentials] ab.az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Vergewissern Sie sich, dass die Installation abgeschlossen ist, indem Sie mit dem Befehl
kubectl get pods
alle Pods mit den Bezeichnungensecrets-store-csi-driver
undsecrets-store-provider-azure
im Namespace „kube-system“ auflisten.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
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
Stellen Sie sicher, dass auf jedem Knoten im Knotenpool Ihres Clusters ein Secrets Store CSI-Treiberpod und ein Secrets Store Provider-Azure-Pod ausgeführt werden.
Erstellen einer Azure Key Vault-Instanz oder Verwenden einer vorhandenen
Erstellen oder aktualisieren Sie einen Schlüsseltresor mit Azure rollenbasierter Zugriffssteuerung (Azure RBAC), aktiviert mit dem Befehl
az keyvault create
oderaz keyvault update
mit der Kennzeichnung--enable-rbac-authorization
. Der Name der Schlüsseltresor-Instanz muss global eindeutig sein. Weitere Informationen zu Berechtigungsmodellen für Schlüsseltresore und Azure RBAC finden Sie unter Bereitstellen des Zugriffs auf Key Vault-Schlüssel, Zertifikate und Geheimnisse mit einer rollenbasierten Azure-Zugriffssteuerung## 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
Ihr Key Vault kann Schlüssel, Geheimnisse und Zertifikate speichern. Verwenden Sie in diesem Beispiel den Befehl
az keyvault secret set
, um ein Nur-Text-Geheimnis namensExampleSecret
festzulegen.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Notieren Sie sich die folgenden Eigenschaften für die zukünftige Verwendung:
- Der Name des geheimen Objekts im Schlüsseltresor
- Der Objekttyp (Geheimnis, Schlüssel oder Zertifikat)
- Der Name Ihrer Key Vault-Ressource
- Die Azure-Mandanten-ID des Abonnements
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie den Azure Key Vault Provider for Secrets Store CSI-Treiber in einem AKS-Cluster verwenden. Bereitstellen einer Identität für den Zugriff auf den Azure-Schlüsseltresor. Um zu erfahren, wie das geht, fahren Sie mit dem nächsten Artikel fort.
Azure Kubernetes Service