Używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS)

Dostawca usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych umożliwia integrację usługi Azure Key Vault jako magazynu wpisów tajnych z klastrem usługi Azure Kubernetes Service (AKS) za pośrednictwem woluminu CSI.

Funkcje

  • Instaluje wpisy tajne, klucze i certyfikaty w zasobniku przy użyciu woluminu CSI.
  • Obsługuje woluminy wbudowane CSI.
  • Obsługuje instalowanie wielu wpisów tajnych magazynu obiektów jako pojedynczego woluminu.
  • Obsługuje przenośność zasobnika za pomocą crD SecretProviderClass .
  • Obsługuje kontenery systemu Windows.
  • Synchronizuje się z wpisami tajnymi platformy Kubernetes.
  • Obsługuje autorotytację zainstalowanej zawartości i zsynchronizowanych wpisów tajnych platformy Kubernetes.

Ograniczenia

Kontener korzystający z instalacji woluminu subPath nie otrzymuje aktualizacji wpisów tajnych podczas rotacji. Aby uzyskać więcej informacji, zobacz Secrets Store CSI Driver known limitations (Znane ograniczenia sterownika CSI magazynu wpisów tajnych).

Wymagania wstępne

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Sprawdź, czy wersja interfejsu wiersza polecenia platformy Azure to 2.30.0 lub nowsza. Jeśli jest to starsza wersja, zainstaluj najnowszą wersję.
  • Jeśli ograniczasz ruch przychodzący do klastra, upewnij się, że porty 9808 i 8095 są otwarte.
  • Minimalna zalecana wersja rozwiązania Kubernetes jest oparta na kroczącym oknie obsługi wersji rozwiązania Kubernetes. Upewnij się, że używasz wersji N-2 lub nowszej.

Tworzenie klastra usługi AKS za pomocą dostawcy usługi Azure Key Vault dla obsługi sterowników CSI magazynu wpisów tajnych

  1. Utwórz grupę zasobów platformy Azure przy użyciu az group create polecenia .

    az group create --name myResourceGroup --location eastus2
    
  2. Utwórz klaster usługi AKS za pomocą dostawcy usługi Azure Key Vault dla funkcji sterownika CSI magazynu wpisów tajnych przy użyciu az aks create polecenia z parametrem --enable-managed-identity i parametrem --enable-addons azure-keyvault-secrets-provider . Dodatek tworzy tożsamość zarządzaną przypisaną przez użytkownika, której można użyć do uwierzytelniania w magazynie kluczy. Poniższy przykład tworzy klaster usługi AKS z włączonym dostawcą usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych.

    Uwaga

    Jeśli chcesz użyć Tożsamość obciążeń Microsoft Entra, musisz również użyć --enable-oidc-issuer parametrów i--enable-workload-identity, takich jak w poniższym przykładzie:

    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity
    
    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-managed-identity --enable-addons azure-keyvault-secrets-provider
    
  3. Poprzednie polecenie tworzy tożsamość zarządzaną przypisaną przez użytkownika, azureKeyvaultSecretsProvider, aby uzyskać dostęp do zasobów platformy Azure. W poniższym przykładzie użyto tej tożsamości do nawiązania połączenia z magazynem kluczy, który przechowuje wpisy tajne, ale można również użyć innych metod dostępu do tożsamości. Zanotuj wartości tożsamości clientId w danych wyjściowych.

    ...,
     "addonProfiles": {
        "azureKeyvaultSecretsProvider": {
          ...,
          "identity": {
            "clientId": "<client-id>",
            ...
          }
        }
    

Uwaga

Po włączeniu tej funkcji usługa AKS automatycznie tworzy zarządzaną identity named azurekeyvaultsecretsprovider-xxx grupę zasobów węzła i przypisuje ją do zestawów skalowania maszyn wirtualnych (VMSS). Możesz użyć tej tożsamości zarządzanej lub własnej tożsamości zarządzanej, aby uzyskać dostęp do magazynu kluczy. Nie jest obsługiwane zapobieganie tworzeniu tożsamości.

Uaktualnianie istniejącego klastra usługi AKS za pomocą dostawcy usługi Azure Key Vault na potrzeby obsługi sterowników CSI magazynu wpisów tajnych

  • Uaktualnij istniejący klaster usługi AKS za pomocą dostawcy usługi Azure Key Vault dla funkcji sterownika CSI magazynu wpisów tajnych przy użyciu az aks enable-addons polecenia i włącz azure-keyvault-secrets-provider dodatek. Dodatek tworzy tożsamość zarządzaną przypisaną przez użytkownika, której można użyć do uwierzytelniania w magazynie kluczy.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
    

Uwaga

Po włączeniu tej funkcji usługa AKS automatycznie tworzy zarządzaną identity named azurekeyvaultsecretsprovider-xxx grupę zasobów węzła i przypisuje ją do zestawów skalowania maszyn wirtualnych (VMSS). Możesz użyć tej tożsamości zarządzanej lub własnej tożsamości zarządzanej, aby uzyskać dostęp do magazynu kluczy. Nie jest obsługiwane zapobieganie tworzeniu tożsamości.

Weryfikowanie dostawcy usługi Azure Key Vault dla instalacji sterownika CSI magazynu wpisów tajnych

  1. Sprawdź, czy instalacja została zakończona przy użyciu kubectl get pods polecenia , które wyświetla listę wszystkich zasobników z etykietami secrets-store-csi-driver i secrets-store-provider-azure w przestrzeni nazw kube-system.

    kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    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
    
  2. Sprawdź, czy każdy węzeł w puli węzłów klastra ma zasobnik sterownika CSI Magazynu wpisów tajnych i zasobnik dostawcy magazynu wpisów tajnych uruchomiony na platformie Azure.

Tworzenie lub używanie istniejącej usługi Azure Key Vault

  1. Utwórz lub zaktualizuj magazyn kluczy za pomocą kontroli dostępu opartej na rolach platformy Azure (RBAC) włączonej az keyvault create za pomocą polecenia lub az keyvault update polecenia z flagą --enable-rbac-authorization . Nazwa magazynu kluczy musi być globalnie unikatowa. Aby uzyskać więcej informacji na temat modeli uprawnień magazynu kluczy i kontroli dostępu opartej na rolach platformy Azure, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault przy użyciu kontroli dostępu opartej na rolach platformy Azure

    ## 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. Magazyn kluczy może przechowywać klucze, wpisy tajne i certyfikaty. W tym przykładzie az keyvault secret set użyj polecenia , aby ustawić wpis tajny w postaci zwykłego tekstu o nazwie ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. Zanotuj następujące właściwości do użycia w przyszłości:

    • Nazwa obiektu wpisu tajnego w magazynie kluczy
    • Typ obiektu (wpis tajny, klucz lub certyfikat)
    • Nazwa zasobu magazynu kluczy
    • Identyfikator dzierżawy platformy Azure subskrypcji

Następne kroki

W tym artykule przedstawiono sposób używania dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi AKS. Teraz musisz podać tożsamość, aby uzyskać dostęp do usługi Azure Key Vault. Aby dowiedzieć się, jak to zrobić, przejdź do następnego artykułu.