Zarządzanie kontami lokalnymi przy użyciu integracji usługi Microsoft Entra zarządzanej przez usługę AKS
Podczas wdrażania klastra usługi AKS konta lokalne są domyślnie włączone. Nawet jeśli włączysz integrację RBAC lub Microsoft Entra, dostęp nadal istnieje jako opcja backdoor bez --admin
inspekcji. W tym artykule pokazano, jak wyłączyć konta lokalne w istniejącym klastrze, utworzyć nowy klaster z wyłączonymi kontami lokalnymi i ponownie włączyć konta lokalne w istniejących klastrach.
Zanim rozpoczniesz
- Aby zapoznać się z omówieniem i instrukcjami konfiguracji, zobacz Integracja z usługą Microsoft Entra zarządzana przez usługę AKS.
Wyłączanie kont lokalnych
Konta lokalne można wyłączyć przy użyciu parametru disable-local-accounts
. Pole properties.disableLocalAccounts
zostało dodane do interfejsu API klastra zarządzanego, aby wskazać, czy funkcja jest włączona, czy nie w klastrze.
Uwaga
W klastrach z włączoną integracją firmy Microsoft Entra użytkownicy przypisani do grupy administratorów firmy Microsoft Entra określonej przez
aad-admin-group-object-ids
program mogą nadal uzyskiwać dostęp przy użyciu poświadczeń innych niż administrator. W klastrach bez włączonej integracji z firmą Microsoft Entra iproperties.disableLocalAccounts
ustawić natrue
wartość , próba uwierzytelnienia przy użyciu poświadczeń użytkownika lub administratora zakończy się niepowodzeniem.Po wyłączeniu kont użytkowników lokalnych w istniejącym klastrze usługi AKS, w którym użytkownicy mogli uwierzytelniać się przy użyciu kont lokalnych, administrator musi wymienić certyfikaty klastra, aby odwołać certyfikaty , do których mógł mieć dostęp. Jeśli jest to nowy klaster, nie jest wymagana żadna akcja.
Tworzenie nowego klastra bez kont lokalnych
Utwórz nowy klaster usługi AKS bez kont lokalnych przy użyciu
az aks create
polecenia z flagądisable-local-accounts
.az aks create \ --resource-group <resource-group> \ --name <cluster-name> \ --enable-aad \ --aad-admin-group-object-ids <aad-group-id> \ --disable-local-accounts \ --generate-ssh-keys
W danych wyjściowych potwierdź, że konta lokalne są wyłączone, sprawdzając, czy pole
properties.disableLocalAccounts
ma wartośćtrue
."properties": { ... "disableLocalAccounts": true, ... }
Uruchom polecenie ,
az aks get-credentials
aby upewnić się, że klaster został ustawiony, aby wyłączyć konta lokalne.az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
Dane wyjściowe powinny wyświetlić następujący komunikat o błędzie wskazujący, że funkcja uniemożliwia dostęp:
Operation failed with status: 'Bad Request'. Details: Getting static credential isn't allowed because this cluster is set to disable local accounts.
Wyłączanie kont lokalnych w istniejącym klastrze
Wyłącz konta lokalne w istniejącym klastrze usługi AKS z włączoną integracją firmy Microsoft przy użyciu
az aks update
polecenia z parametremdisable-local-accounts
.az aks update --resource-group <resource-group> --name <cluster-name> --disable-local-accounts
W danych wyjściowych potwierdź, że konta lokalne są wyłączone, sprawdzając, czy pole
properties.disableLocalAccounts
ma wartośćtrue
."properties": { ... "disableLocalAccounts": true, ... }
Uruchom polecenie ,
az aks get-credentials
aby upewnić się, że klaster został ustawiony, aby wyłączyć konta lokalne.az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
Dane wyjściowe powinny wyświetlić następujący komunikat o błędzie wskazujący, że funkcja uniemożliwia dostęp:
Operation failed with status: 'Bad Request'. Details: Getting static credential isn't allowed because this cluster is set to disable local accounts.
Ponowne włączanie kont lokalnych w istniejącym klastrze
Ponownie włącz wyłączone konto lokalne w istniejącym klastrze przy użyciu
az aks update
polecenia z parametremenable-local-accounts
.az aks update --resource-group <resource-group> --name <cluster-name> --enable-local-accounts
W danych wyjściowych potwierdź, że konta lokalne są ponownie włączone, sprawdzając, czy pole
properties.disableLocalAccounts
jest ustawione nafalse
."properties": { ... "disableLocalAccounts": false, ... }
Uruchom polecenie ,
az aks get-credentials
aby upewnić się, że klaster jest ustawiony w celu włączenia kont lokalnych.az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
Dane wyjściowe powinny wyświetlić następujący komunikat informujący o pomyślnym włączeniu kont lokalnych w klastrze:
Merged "<cluster-name>-admin" as current context in C:\Users\<username>\.kube\config
Następne kroki
- Dowiedz się więcej o integracji kontroli dostępu opartej na rolach platformy Azure na potrzeby autoryzacji kubernetes.
Azure Kubernetes Service