Udostępnij za pośrednictwem


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 lub kubelogin. 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 nie az 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 i kubectl 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

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

    az group create --name myResourceGroup --location centralus
    
  2. 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ą

  1. 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
    
  2. Postępuj zgodnie z instrukcjami, aby się zalogować.

  3. Ustaw kubelogin opcję korzystania z interfejsu wiersza polecenia platformy Azure.

    kubelogin convert-kubeconfig -l azurecli
    
  4. 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ą kubectlusł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, aby azure 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