Włączanie uwierzytelniania tożsamości zarządzanej platformy Azure dla klastrów Kubernetes za pomocą rozwiązania kubelogin
Integracja aplikacji Microsoft Entra zarządzana przez usługę AKS upraszcza proces integracji firmy Microsoft Entra. Wcześniej trzeba było utworzyć aplikację klienta i serwera, a dzierżawa firmy Microsoft Entra musiała przypisać uprawnienia roli Czytelnicy katalogu. Teraz dostawca zasobów usługi AKS zarządza aplikacjami klienta i serwera.
Administratorzy klastra mogą skonfigurować kontrolę dostępu opartą na rolach platformy Kubernetes (Kubernetes RBAC) na podstawie tożsamości użytkownika lub członkostwa w grupie katalogów. Uwierzytelnianie entra firmy Microsoft jest udostępniane klastrom usługi AKS za pomocą protokołu OpenID Connect. OpenID Connect to warstwa tożsamości oparta na protokole OAuth 2.0. Aby uzyskać więcej informacji na temat programu OpenID Connect, zobacz dokumentację programu OpenID Connect.
Dowiedz się więcej o przepływie integracji entra firmy Microsoft w dokumentacji firmy Microsoft Entra.
Ten artykuł zawiera szczegółowe informacje na temat włączania i używania tożsamości zarządzanych dla zasobów platformy Azure w klastrze usługi AKS.
Ograniczenia
Poniżej przedstawiono ograniczenia integracji uwierzytelniania tożsamości zarządzanej platformy Azure w usłudze AKS.
- Nie można wyłączyć integracji po dodaniu.
- Obniżanie wersji ze zintegrowanego klastra do starszych klastrów microsoft Entra ID nie jest obsługiwane.
- Klastry bez obsługi kontroli dostępu opartej na rolach platformy Kubernetes nie mogą dodać integracji.
Zanim rozpoczniesz
Aby prawidłowo zainstalować dodatek usługi AKS dla tożsamości zarządzanej, należy spełnić następujące wymagania.
- Masz zainstalowany i skonfigurowany interfejs wiersza polecenia platformy Azure w wersji 2.29.0 lub nowszej. Uruchom polecenie
az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Potrzebujesz
kubectl
minimalnej wersji 1.18.1 lubkubelogin
. W przypadku interfejsu wiersza polecenia platformy Azure i modułu Azure PowerShell te dwa polecenia są dołączane i automatycznie zarządzane. Oznacza to, że są one domyślnie uaktualniane i nieaz aks install-cli
są wymagane ani zalecane. Jeśli używasz zautomatyzowanego potoku, musisz zarządzać uaktualnieniami dla poprawnej lub najnowszej wersji. Różnica między wersjami pomocniczymi platformy Kubernetes ikubectl
nie powinna być więcej niż jedną wersją . W przeciwnym razie problemy z uwierzytelnianiem występują w niewłaściwej wersji. - Jeśli używasz narzędzia Helm, potrzebujesz minimalnej wersji programu Helm 3.3.
- Ta konfiguracja wymaga grupy microsoft Entra dla klastra. Ta grupa jest zarejestrowana jako grupa administracyjna w klastrze w celu udzielenia uprawnień administratora. Jeśli nie masz istniejącej grupy Microsoft Entra, możesz go utworzyć przy użyciu
az ad group create
polecenia .
Uwaga
Zintegrowane klastry microsoft Entra z użyciem nowszej wersji kubernetes niż wersja 1.24 automatycznie używają kubelogin
formatu. Począwszy od platformy Kubernetes w wersji 1.24, domyślnym formatem poświadczeń clusterUser dla klastrów identyfikatorów Entra firmy Microsoft jest exec
, który wymaga kubelogin
pliku binarnego w ścieżce wykonywania. Nie ma żadnych zmian zachowania dla klastrów entra firmy Microsoft ani klastrów Microsoft Entra ID z wersją starszą niż 1.24.
Istniejący kubeconfig
pobrany plik nadal działa. Opcjonalny format parametru zapytania jest dołączany podczas pobierania poświadczeń clusterUser w celu zastąpienia domyślnej zmiany zachowania. Jeśli chcesz zachować stary kubeconfig
format, możesz jawnie określić format platformy Azure.
Włączanie integracji w klastrze usługi AKS
Tworzenie nowego klastra
Utwórz grupę zasobów platformy Azure przy użyciu
az group create
polecenia .az group create --name myResourceGroup --location centralus
Utwórz klaster usługi AKS i włącz dostęp administracyjny dla grupy Microsoft Entra przy użyciu
az aks create
polecenia .az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
Pomyślne utworzenie klastra usługi Microsoft Entra ID zarządzanego przez usługę AKS zawiera następującą sekcję w treści odpowiedzi:
"AADProfile": { "adminGroupObjectIds": [ "5d24****-****-****-****-****afa27aed" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "72f9****-****-****-****-****d011db47" }
Korzystanie z istniejącego klastra
Włącz integrację z usługą Microsoft Entra zarządzaną przez usługę AKS w istniejącym klastrze z włączoną kontrolą dostępu opartą az aks update
na rolach kubernetes przy użyciu polecenia . Pamiętaj, aby ustawić grupę administracyjną, aby zachować dostęp do klastra.
az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]
Pomyślna aktywacja klastra usługi Microsoft Entra ID zarządzanego przez usługę AKS zawiera następującą sekcję w treści odpowiedzi:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Migrowanie starszego klastra do integracji
Jeśli klaster korzysta ze starszej integracji firmy Microsoft Entra, możesz przeprowadzić uaktualnienie do integracji usługi Microsoft Entra zarządzanej przez usługę az aks update
AKS za pomocą polecenia .
Ostrzeżenie
Klastry w warstwie Bezpłatna mogą wystąpić przestoje serwera interfejsu API podczas uaktualniania. Zalecamy uaktualnienie w godzinach pracy poza biznesem.
Po uaktualnieniu zawartość kubeconfig ulegnie zmianie. Należy uruchomić polecenie az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name>
, aby scalić nowe poświadczenia z plikiem kubeconfig.
az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
Pomyślna migracja klastra usługi Microsoft Entra ID zarządzanego przez usługę AKS zawiera następującą sekcję w treści odpowiedzi:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Uzyskiwanie dostępu do klastra z włączoną obsługą
Pobierz poświadczenia użytkownika, aby uzyskać dostęp do klastra
az aks get-credentials
przy użyciu polecenia .az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Postępuj zgodnie z instrukcjami, aby się zalogować.
Ustaw
kubelogin
opcję korzystania z interfejsu wiersza polecenia platformy Azure.kubelogin convert-kubeconfig -l azurecli
Wyświetl węzły w klastrze za
kubectl get nodes
pomocą polecenia .kubectl get nodes
Logowanie nieinterakcyjne przy użyciu narzędzia kubelogin
Istnieją nieinterakcyjne scenariusze, które nie obsługują kubectl
usługi . W takich przypadkach użyj polecenia kubelogin
, aby nawiązać połączenie z klastrem przy użyciu nieinterakcyjnych poświadczeń jednostki usługi w celu wykonywania potoków ciągłej integracji.
Uwaga
Zintegrowane klastry microsoft Entra z użyciem nowszej wersji kubernetes niż wersja 1.24 automatycznie używają kubelogin
formatu. Począwszy od platformy Kubernetes w wersji 1.24, domyślnym formatem poświadczeń clusterUser dla klastrów identyfikatorów Entra firmy Microsoft jest exec
, który wymaga kubelogin
pliku binarnego w ścieżce wykonywania. Nie ma żadnych zmian zachowania dla klastrów entra firmy Microsoft ani klastrów Microsoft Entra ID z wersją starszą niż 1.24.
Istniejący kubeconfig
pobrany plik nadal działa. Opcjonalny format parametru zapytania jest dołączany podczas pobierania poświadczeń clusterUser w celu zastąpienia domyślnej zmiany zachowania. Jeśli chcesz zachować stary kubeconfig
format, możesz jawnie określić format platformy Azure.
Podczas pobierania poświadczeń clusterUser można użyć parametru
format
zapytania, aby zastąpić domyślne zachowanie. Możesz ustawić wartość tak, abyazure
korzystała z oryginalnego formatu kubeconfig:az aks get-credentials --format azure
Jeśli zintegrowany klaster firmy Microsoft Entra używa rozwiązania Kubernetes w wersji 1.24 lub starszej, musisz ręcznie przekonwertować format kubeconfig.
export KUBECONFIG=/path/to/kubeconfig kubelogin convert-kubeconfig
Uwaga
Jeśli zostanie wyświetlony komunikat o błędzie : Wtyczka uwierzytelniania platformy Azure została usunięta. Należy uruchomić polecenie kubelogin convert-kubeconfig
w celu ręcznego przekonwertowania formatu kubeconfig.
Aby uzyskać więcej informacji, zobacz Znane problemy z platformą Azure Kubelogin.
Rozwiązywanie problemów z dostępem
Ważne
Krok opisany w tej sekcji sugeruje alternatywną metodę uwierzytelniania w porównaniu z normalnym uwierzytelnianiem grupy Firmy Microsoft Entra. Użyj tej opcji tylko w nagłych wypadkach.
Jeśli nie masz dostępu administracyjnego do prawidłowej grupy firmy Microsoft Entra, możesz wykonać to obejście. Zaloguj się przy użyciu konta, które jest członkiem roli administratora klastra usługi Azure Kubernetes Service i przyznaj grupie lub administratorowi dzierżawy poświadczenia dostępu do klastra.
Następne kroki
- Dowiedz się więcej o integracji firmy Microsoft Entra z kontrolą dostępu opartą na rolach platformy Kubernetes.
- Dowiedz się więcej na temat pojęć związanych z tożsamościami AKS i Kubernetes.
- Dowiedz się, jak używać narzędzia kubelogin dla wszystkich obsługiwanych metod uwierzytelniania firmy Microsoft Entra w usłudze AKS.
- Szablony usługi Azure Resource Manager (ARM) umożliwiają tworzenie klastrów z włączoną obsługą identyfikatora entra firmy Microsoft zarządzanego przez usługę AKS.
Azure Kubernetes Service