Dodawanie szyfrowania usługa zarządzania kluczami itp. do klastra usługi Azure Kubernetes Service

W tym artykule pokazano, jak włączyć szyfrowanie magazynowane dla wpisów tajnych usługi Azure Kubernetes Service (AKS) w magazynie wartości klucza etcd przy użyciu usługi Azure Key Vault i wtyczki usługa zarządzania kluczami (KMS). Możesz użyć wtyczki KMS, aby:

  • Użyj klucza w magazynie kluczy na potrzeby szyfrowania etcd.
  • Przynieś własne klucze.
  • Podaj szyfrowanie magazynowanych wpisów tajnych przechowywanych w plikach itp.
  • Obracanie kluczy w magazynie kluczy.

Aby uzyskać więcej informacji na temat korzystania z usługi KMS, zobacz Szyfrowanie danych tajnych w spoczynku.

Wymagania wstępne

Ostrzeżenie

Usługa KMS obsługuje integrację z siecią wirtualną serwera API (wersja zapoznawcza).

Możesz użyć kubectl get po -n kube-system polecenia , aby zweryfikować wyniki i pokazać, że zasobnik konnectivity-agent jest uruchomiony. Jeśli zasobnik jest uruchomiony, klaster usługi AKS używa konnectivity. W przypadku korzystania z integracji z siecią wirtualną az aks show -g -n programu API Server można uruchomić polecenie , aby sprawdzić, czy enableVnetIntegration ustawienie ma wartość true.

Ograniczenia

Podczas integrowania szyfrowania KMS itp. z usługą AKS obowiązują następujące ograniczenia:

  • Usunięcie klucza, magazynu kluczy lub skojarzonej tożsamości nie jest obsługiwane.
  • Szyfrowanie usługi KMS itp. nie działa z tożsamością zarządzaną przypisaną przez system. Przed włączeniem funkcji należy ustawić zasady dostępu do magazynu kluczy. Tożsamość zarządzana przypisana przez system nie jest dostępna do momentu utworzenia klastra. Rozważ zależność cyklu.
  • Usługa Azure Key Vault z zaporą umożliwiającą dostęp publiczny nie jest obsługiwana, ponieważ blokuje ruch z wtyczki KMS do magazynu kluczy.
  • Maksymalna liczba wpisów tajnych obsługiwanych przez klaster z włączoną usługą KMS wynosi 2000. Należy jednak pamiętać, że usługa KMS v2 nie jest ograniczona przez to ograniczenie i może obsługiwać większą liczbę wpisów tajnych.
  • Usługa Bring Your Own (BYO) Azure Key Vault z innej dzierżawy nie jest obsługiwana.
  • Po włączeniu usługi KMS nie można zmienić skojarzonego trybu magazynu kluczy (publicznego i prywatnego). Aby zaktualizować tryb magazynu kluczy, należy najpierw wyłączyć usługę KMS, a następnie ponownie ją włączyć.
  • Jeśli klaster ma włączoną usługę KMS, ma prywatny magazyn kluczy i nie korzysta z tunelu integracji z siecią wirtualną serwera interfejsu API, nie można go zatrzymać, a następnie uruchomić klaster.
  • Użycie interfejsu API zestawów skalowania maszyn wirtualnych w celu skalowania węzłów w klastrze w dół do zera cofa przydział węzłów. Klaster przechodzi w dół i staje się nieodwracalny.
  • Po wyłączeniu usługi KMS nie można zniszczyć kluczy. Zniszczenie kluczy powoduje, że serwer interfejsu API przestanie działać.

Usługa KMS obsługuje publiczny magazyn kluczy lub prywatny magazyn kluczy.

Włączanie usługi KMS dla publicznego magazynu kluczy

W poniższych sekcjach opisano sposób włączania usługi KMS dla publicznego magazynu kluczy.

Tworzenie publicznego magazynu kluczy i klucza

Ostrzeżenie

Usunięcie klucza lub magazynu kluczy nie jest obsługiwane i powoduje, że wpisy tajne w klastrze są nieodwracalne.

Jeśli musisz odzyskać magazyn kluczy lub klucz, zobacz Zarządzanie odzyskiwaniem usługi Azure Key Vault przy użyciu funkcji usuwania nietrwałego i ochrony przed przeczyszczeniem.

Tworzenie magazynu kluczy i klucza dla publicznego magazynu kluczy RBAC

Użyj az keyvault create polecenia , aby utworzyć magazyn kluczy bez używania kontroli dostępu opartej na rolach platformy Azure (Azure RBAC):

az keyvault create --name MyKeyVault --resource-group MyResourceGroup

Użyj az keyvault key create polecenia , aby utworzyć klucz:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Użyj az keyvault key show polecenia , aby wyeksportować identyfikator klucza:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

W tym przykładzie identyfikator klucza jest przechowywany w pliku KEY_ID.

Tworzenie magazynu kluczy i klucza dla publicznego magazynu kluczy RBAC

Użyj az keyvault create polecenia , aby utworzyć magazyn kluczy przy użyciu kontroli dostępu opartej na rolach platformy Azure:

export KEYVAULT_RESOURCE_ID=$(az keyvault create --name MyKeyVault --resource-group MyResourceGroup  --enable-rbac-authorization true --query id -o tsv)

Przypisz sobie uprawnienia, aby utworzyć klucz:

az role assignment create --role "Key Vault Crypto Officer" --assignee-object-id $(az ad signed-in-user show --query id --out tsv) --assignee-principal-type "User" --scope $KEYVAULT_RESOURCE_ID

Użyj az keyvault key create polecenia , aby utworzyć klucz:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Użyj az keyvault key show polecenia , aby wyeksportować identyfikator klucza:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

W tym przykładzie identyfikator klucza jest przechowywany w pliku KEY_ID.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika dla publicznego magazynu kluczy

Użyj az identity create polecenia , aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika:

az identity create --name MyIdentity --resource-group MyResourceGroup

Użyj az identity show polecenia , aby uzyskać identyfikator obiektu tożsamości:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Powyższy przykład przechowuje wartość identyfikatora obiektu tożsamości w pliku IDENTITY_OBJECT_ID.

Użyj az identity show polecenia , aby uzyskać identyfikator zasobu tożsamości:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

W tym przykładzie jest przechowywana wartość identyfikatora zasobu tożsamości w pliku IDENTITY_RESOURCE_ID.

Przypisywanie uprawnień do odszyfrowywania i szyfrowania publicznego magazynu kluczy

W poniższych sekcjach opisano sposób przypisywania uprawnień odszyfrowywania i szyfrowania dla prywatnego magazynu kluczy.

Przypisywanie uprawnień dla publicznego magazynu kluczy RBAC innego niż RBAC

Jeśli magazyn kluczy nie jest ustawiony za pomocą --enable-rbac-authorizationusługi , możesz użyć az keyvault set-policy polecenia , aby utworzyć zasady usługi Azure Key Vault.

az keyvault set-policy -n MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Przypisywanie uprawnień dla publicznego magazynu kluczy RBAC

Jeśli magazyn kluczy jest ustawiony za pomocą --enable-rbac-authorizationpolecenia , przypisz rolę użytkownika kryptograficznego usługi Key Vault, aby udzielić uprawnień odszyfrowywania i szyfrowania.

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Tworzenie klastra usługi AKS z magazynem kluczy publicznych i włączanie szyfrowania KMS itp.

Aby włączyć szyfrowanie KMS itp., utwórz klaster usługi AKS przy użyciu polecenia az aks create . Możesz użyć parametrów --enable-azure-keyvault-kms, --azure-keyvault-kms-key-vault-network-accessi --azure-keyvault-kms-key-id z parametrami az aks create.

az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID

Aktualizowanie istniejącego klastra usługi AKS w celu włączenia szyfrowania KMS itp. dla publicznego magazynu kluczy

Aby włączyć szyfrowanie KMS itp. dla istniejącego klastra, użyj polecenia az aks update . Możesz użyć parametrów --enable-azure-keyvault-kms, --azure-keyvault-kms-key-vault-network-accessi --azure-keyvault-kms-key-id z parametrami az-aks-update.

az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID

Użyj następującego polecenia, aby zaktualizować wszystkie wpisy tajne. Jeśli to polecenie nie zostanie uruchomione, wpisy tajne, które zostały utworzone wcześniej, nie będą już szyfrowane. W przypadku większych klastrów warto rozdzielić wpisy tajne według przestrzeni nazw lub utworzyć skrypt aktualizacji.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Obracanie istniejących kluczy w publicznym magazynie kluczy

Po zmianie identyfikatora klucza (w tym zmianie nazwy klucza lub wersji klucza), możesz użyć polecenia az aks update . Aby obrócić istniejące klucze w usłudze KMS, możesz użyć --enable-azure-keyvault-kmsparametrów az-aks-update , --azure-keyvault-kms-key-vault-network-accessi --azure-keyvault-kms-key-id .

Ostrzeżenie

Pamiętaj, aby zaktualizować wszystkie wpisy tajne po rotacji klucza. Jeśli nie zaktualizujesz wszystkich wpisów tajnych, wpisy tajne będą niedostępne, jeśli utworzone wcześniej klucze nie istnieją lub już nie działają.

Po obróceniu klucza poprzedni klucz (klucz1) jest nadal buforowany i nie należy go usuwać. Jeśli chcesz natychmiast usunąć poprzedni klucz (klucz1), musisz dwukrotnie obrócić klucz. Następnie klucz2 i klucz3 są buforowane, a klucz1 można usunąć bez wpływu na istniejący klaster.

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID 

Użyj następującego polecenia, aby zaktualizować wszystkie wpisy tajne. Jeśli to polecenie nie zostanie uruchomione, wpisy tajne, które zostały utworzone wcześniej, będą nadal szyfrowane przy użyciu poprzedniego klucza. W przypadku większych klastrów warto rozdzielić wpisy tajne według przestrzeni nazw lub utworzyć skrypt aktualizacji.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Włączanie usługi KMS dla prywatnego magazynu kluczy

Jeśli włączysz usługę KMS dla prywatnego magazynu kluczy, usługa AKS automatycznie utworzy prywatny punkt końcowy i link prywatny w grupie zasobów węzła. Magazyn kluczy jest dodawany do prywatnego połączenia punktu końcowego z klastrem usługi AKS.

Tworzenie prywatnego magazynu kluczy i klucza

Ostrzeżenie

Usunięcie klucza lub magazynu kluczy nie jest obsługiwane i powoduje, że wpisy tajne w klastrze są nieodwracalne.

Jeśli musisz odzyskać magazyn kluczy lub klucz, zobacz Zarządzanie odzyskiwaniem usługi Azure Key Vault przy użyciu funkcji usuwania nietrwałego i ochrony przed przeczyszczeniem.

Użyj az keyvault create polecenia , aby utworzyć prywatny magazyn kluczy:

az keyvault create --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Tworzenie lub aktualizowanie kluczy w prywatnym magazynie kluczy, który nie ma prywatnego punktu końcowego, nie jest obsługiwane. Aby dowiedzieć się, jak zarządzać magazynami kluczy prywatnych, zobacz Integrowanie magazynu kluczy przy użyciu usługi Azure Private Link.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika dla prywatnego magazynu kluczy

Użyj az identity create polecenia , aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika:

az identity create --name MyIdentity --resource-group MyResourceGroup

Użyj az identity show polecenia , aby uzyskać identyfikator obiektu tożsamości:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Powyższy przykład przechowuje wartość identyfikatora obiektu tożsamości w pliku IDENTITY_OBJECT_ID.

Użyj az identity show polecenia , aby uzyskać identyfikator zasobu tożsamości:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

W tym przykładzie jest przechowywana wartość identyfikatora zasobu tożsamości w pliku IDENTITY_RESOURCE_ID.

Przypisywanie uprawnień do odszyfrowywania i szyfrowania prywatnego magazynu kluczy

W poniższych sekcjach opisano sposób przypisywania uprawnień odszyfrowywania i szyfrowania dla prywatnego magazynu kluczy.

Przypisywanie uprawnień dla prywatnego magazynu kluczy RBAC innego niż RBAC

Uwaga

W przypadku korzystania z prywatnego magazynu kluczy usługa AKS nie może zweryfikować uprawnień tożsamości. Przed włączeniem usługi KMS upewnij się, że udzielono tożsamości uprawnień dostępu do magazynu kluczy.

Jeśli magazyn kluczy nie jest ustawiony za pomocą --enable-rbac-authorizationusługi , możesz użyć az keyvault set-policy polecenia , aby utworzyć zasady magazynu kluczy na platformie Azure:

az keyvault set-policy -n MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Przypisywanie uprawnień dla prywatnego magazynu kluczy RBAC

Jeśli magazyn kluczy jest ustawiony za pomocą --enable-rbac-authorizationpolecenia , przypisz rolę RBAC platformy Azure obejmującą uprawnienia odszyfrowywania i szyfrowania:

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

W przypadku magazynów kluczy prywatnych rola Współautor usługi Key Vault jest wymagana do utworzenia łącza prywatnego między prywatnym magazynem kluczy a klastrem.

az role assignment create --role "Key Vault Contributor" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Tworzenie klastra usługi AKS z prywatnym magazynem kluczy i włączanie szyfrowania KMS itp.

Aby włączyć szyfrowanie usługi KMS itp. dla prywatnego magazynu kluczy, utwórz klaster usługi AKS przy użyciu polecenia az aks create . Możesz użyć parametrów --enable-azure-keyvault-kms, --azure-keyvault-kms-key-id, --azure-keyvault-kms-key-vault-network-accessi --azure-keyvault-kms-key-vault-resource-id z parametrami az-aks-create.

az aks create --name myAKSCluster --resource-group MyResourceGroup --assign-identity $IDENTITY_RESOURCE_ID --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Aktualizowanie istniejącego klastra usługi AKS w celu włączenia szyfrowania KMS itp. dla prywatnego magazynu kluczy

Aby włączyć szyfrowanie usługi KMS itp. w istniejącym klastrze z prywatnym magazynem kluczy, użyj polecenia az aks update . Możesz użyć parametrów --enable-azure-keyvault-kms, --azure-keyvault-kms-key-id, --azure-keyvault-kms-key-vault-network-accessi --azure-keyvault-kms-key-vault-resource-id z parametrami az-aks-update.

az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Użyj następującego polecenia, aby zaktualizować wszystkie wpisy tajne. Jeśli to polecenie nie zostanie uruchomione, wpisy tajne, które zostały utworzone wcześniej, nie są szyfrowane. W przypadku większych klastrów warto rozdzielić wpisy tajne według przestrzeni nazw lub utworzyć skrypt aktualizacji.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Obracanie istniejących kluczy w prywatnym magazynie kluczy

Po zmianie identyfikatora klucza (w tym nazwy klucza i wersji klucza) możesz użyć polecenia az aks update . Aby obrócić istniejące klucze usługi KMS, możesz użyć --enable-azure-keyvault-kmsparametrów az-aks-update , --azure-keyvault-kms-key-id--azure-keyvault-kms-key-vault-network-access, i --azure-keyvault-kms-key-vault-resource-id .

Ostrzeżenie

Pamiętaj, aby zaktualizować wszystkie wpisy tajne po rotacji klucza. Jeśli nie zaktualizujesz wszystkich wpisów tajnych, wpisy tajne będą niedostępne, jeśli utworzone wcześniej klucze nie istnieją lub już nie działają.

Po obróceniu klucza poprzedni klucz (klucz1) jest nadal buforowany i nie należy go usuwać. Jeśli chcesz natychmiast usunąć poprzedni klucz (klucz1), musisz dwukrotnie obrócić klucz. Następnie klucz2 i klucz3 są buforowane, a klucz1 można usunąć bez wpływu na istniejący klaster.

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Użyj następującego polecenia, aby zaktualizować wszystkie wpisy tajne. Jeśli nie zaktualizujesz wszystkich wpisów tajnych, utworzone wcześniej wpisy tajne są szyfrowane przy użyciu poprzedniego klucza. W przypadku większych klastrów warto rozdzielić wpisy tajne według przestrzeni nazw lub utworzyć skrypt aktualizacji.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Aktualizowanie trybu magazynu kluczy

Uwaga

Aby zmienić inny magazyn kluczy w innym trybie (publicznym lub prywatnym), można uruchomić az aks update bezpośrednio. Aby zmienić tryb dołączonego magazynu kluczy, należy najpierw wyłączyć usługę KMS, a następnie włączyć ją ponownie przy użyciu nowych identyfikatorów magazynu kluczy.

W poniższych sekcjach opisano sposób migrowania dołączonego publicznego magazynu kluczy do trybu prywatnego.

Wyłączanie usługi KMS w klastrze

Wyłącz usługę KMS w istniejącym klastrze i zwolnij magazyn kluczy:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Zmienianie trybu magazynu kluczy

Zaktualizuj magazyn kluczy z publicznego na prywatny:

az keyvault update --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Włączanie usługi KMS dla klastra przy użyciu zaktualizowanego magazynu kluczy

Włącz usługę KMS przy użyciu zaktualizowanego prywatnego magazynu kluczy:

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Po skonfigurowaniu usługi KMS możesz włączyć ustawienia diagnostyczne dla magazynu kluczy, aby sprawdzić dzienniki szyfrowania.

Wyłączanie usługi KMS

Przed wyłączeniem usługi KMS możesz użyć następującego polecenia interfejsu wiersza polecenia platformy Azure, aby sprawdzić, czy usługa KMS jest włączona:

az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}" -o table

Jeśli wyniki potwierdzają, że usługa KMS jest włączona, uruchom następujące polecenie, aby wyłączyć usługę KMS w klastrze:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Użyj następującego polecenia, aby zaktualizować wszystkie wpisy tajne. Jeśli nie uruchomisz tego polecenia, wpisy tajne, które zostały utworzone wcześniej, są nadal szyfrowane przy użyciu poprzedniego klucza, a uprawnienia szyfrowania i odszyfrowywania w magazynie kluczy są nadal wymagane. W przypadku większych klastrów warto rozdzielić wpisy tajne według przestrzeni nazw lub utworzyć skrypt aktualizacji.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Obsługa usługi KMS w wersji 2

Począwszy od usługi AKS w wersji 1.27, włączenie funkcji usługi KMS powoduje skonfigurowanie usługi KMS w wersji 2. Usługa KMS w wersji 2 nie jest ograniczona do 2000 wpisów tajnych, które są obsługiwane przez wcześniejsze wersje. Aby uzyskać więcej informacji, zobacz Ulepszenia usługi KMS w wersji 2.

Migrowanie do usługi KMS w wersji 2

Jeśli wersja klastra jest nowsza niż 1.27 i jest już włączona usługa KMS, uaktualnienie do usługi KMS 1.27 lub nowszej jest zablokowane. Wykonaj następujące kroki, aby przeprowadzić migrację do usługi KMS w wersji 2:

  1. Wyłącz usługę KMS w klastrze.
  2. Przeprowadź migrację magazynu.
  3. Uaktualnij klaster do wersji 1.27 lub nowszej.
  4. Włącz usługę KMS w klastrze.
  5. Przeprowadź migrację magazynu.

Wyłączanie usługi KMS w celu migracji magazynu

Aby wyłączyć usługę KMS w istniejącym klastrze, użyj az aks update polecenia z argumentem --disable-azure-keyvault-kms :

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Migrowanie magazynu

Aby zaktualizować wszystkie wpisy tajne, użyj kubectl get secrets polecenia z argumentem --all-namespaces :

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Uaktualnianie klastra usługi AKS

Aby uaktualnić klaster usługi AKS, użyj az aks upgrade polecenia . Ustaw wersję na 1.27.x lub nowszą, używając argumentu --kubernetes-version .

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version <AKS version>

Oto przykład:

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.27.1

Włączanie usługi KMS po migracji magazynu

Możesz ponownie włączyć funkcję usługi KMS w klastrze, aby zaszyfrować wpisy tajne. Następnie klaster usługi AKS używa usługi KMS w wersji 2. Jeśli nie chcesz migrować do usługi KMS w wersji 2, możesz utworzyć nowy klaster w wersji 1.27 lub nowszej z włączonym usługą KMS.

Migrowanie magazynu dla usługi KMS w wersji 2

Aby ponownie zaszyfrować wszystkie wpisy tajne w usłudze KMS w wersji 2, użyj kubectl get secrets polecenia z argumentem --all-namespaces :

kubectl get secrets --all-namespaces -o json | kubectl replace -f -