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
Utwórz grupę zasobów platformy Azure przy użyciu
az group create
polecenia .az group create --name myResourceGroup --location eastus2
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-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 --generate-ssh-keys
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keys
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ściclientId
w danych wyjściowych...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Uwaga
Po włączeniu tej funkcji usługa AKS automatycznie tworzy tożsamość zarządzaną o nazwie azurekeyvaultsecretsprovider-xxx
w grupie 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łączazure-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 tożsamość zarządzaną o nazwie azurekeyvaultsecretsprovider-xxx
w grupie 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
Pobierz poświadczenia klastra usługi AKS przy użyciu polecenia [
az aks get-credentials
][az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Sprawdź, czy instalacja została zakończona przy użyciu
kubectl get pods
polecenia , które wyświetla listę wszystkich zasobników z etykietamisecrets-store-csi-driver
isecrets-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
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
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 lubaz 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
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 nazwieExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
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.
Azure Kubernetes Service