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

  1. Erstellen Sie mithilfe des Befehls az group create eine Azure-Ressourcengruppe.

    az group create --name myResourceGroup --location eastus2
    
  2. 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
    
  3. 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ät clientId 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-On azure-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

  1. 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
    
  2. Vergewissern Sie sich, dass die Installation abgeschlossen ist, indem Sie mit dem Befehl kubectl get pods alle Pods mit den Bezeichnungen secrets-store-csi-driver und secrets-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
    
  3. 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

  1. Erstellen oder aktualisieren Sie einen Schlüsseltresor mit Azure rollenbasierter Zugriffssteuerung (Azure RBAC), aktiviert mit dem Befehl az keyvault create oder az 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
    
  2. 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 namens ExampleSecret festzulegen.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. 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.