Używanie tożsamości zarządzanej w usłudze Azure Kubernetes Service (AKS)
Klastry usługi Azure Kubernetes Service (AKS) wymagają tożsamości w celu uzyskania dostępu do zasobów platformy Azure, takich jak moduły równoważenia obciążenia i dyski zarządzane. Tożsamość może być tożsamością zarządzaną lub jednostką usługi.
Ten artykuł zawiera szczegółowe informacje na temat włączania następujących typów tożsamości zarządzanych w nowym lub istniejącym klastrze usługi AKS:
- Tożsamość zarządzana przypisana przez system
- Używanie własnej tożsamości zarządzanej przypisanej przez użytkownika
- Wstępnie utworzona tożsamość zarządzana rozwiązania Kubelet
Omówienie
Podczas wdrażania klastra usługi AKS tożsamość zarządzana przypisana przez system jest tworzona automatycznie i zarządzana przez platformę Azure, więc nie wymaga aprowizacji ani rotacji żadnych wpisów tajnych. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane dla zasobów platformy Azure.
Usługa AKS nie tworzy automatycznie jednostki usługi, więc musisz je utworzyć. Klastry korzystające z jednostki usługi w końcu wygasają, a jednostka usługi musi zostać odnowiona, aby uniknąć wpływu na uwierzytelnianie klastra przy użyciu tożsamości. Zarządzanie jednostkami usługi zwiększa złożoność, dzięki czemu łatwiej jest używać tożsamości zarządzanych. Te same wymagania dotyczące uprawnień dotyczą zarówno jednostek usługi, jak i tożsamości zarządzanych. Tożsamości zarządzane używają uwierzytelniania opartego na certyfikatach. Poświadczenia każdej tożsamości zarządzanej mają czas wygaśnięcia 90 dni i są wprowadzane po 45 dniach.
Usługa AKS używa zarówno przypisanych przez system, jak i przypisanych przez użytkownika typów tożsamości zarządzanych, a te tożsamości są niezmienne. Te typy tożsamości nie powinny być mylone z tożsamością obciążenia entra firmy Microsoft, która jest przeznaczona do użycia przez aplikację działającą na zasobniku.
Ważne
Tożsamość zarządzana typu open source firmy Microsoft Entra (wersja zapoznawcza) w usłudze Azure Kubernetes Service została uznana za przestarzałą w dniu 24.01.2022 r. i zarchiwizowana projekt we wrześniu 2023 r. Aby uzyskać więcej informacji, zobacz powiadomienie o wycofaniu. Dodatek zarządzany przez usługę AKS rozpoczyna wycofywanie we wrześniu 2024 r.
Zalecamy najpierw przejrzenie Tożsamość obciążeń Microsoft Entra omówienie. Entra Tożsamość obciążeń uwierzytelnianie zastępuje tożsamość zarządzaną przez firmę Microsoft Entra (wersja zapoznawcza) i jest zalecaną metodą włączenia aplikacji działającej na zasobniku w celu uwierzytelnienia się względem innych usług platformy Azure, które ją obsługują.
Zanim rozpoczniesz
Upewnij się, że masz zainstalowany interfejs wiersza polecenia platformy Azure w wersji 2.23.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.Aby użyć wstępnie utworzonej tożsamości zarządzanej kubelet, musisz zainstalować interfejs wiersza polecenia platformy Azure w wersji 2.26.0 lub nowszej.
Aby zaktualizować tożsamość zarządzaną w istniejącym klastrze, musisz zainstalować interfejs wiersza polecenia platformy Azure w wersji 2.49.0 lub nowszej.
Ograniczenia
- Dzierżawy przenoszące lub migrujące klaster z obsługą tożsamości zarządzanych nie są obsługiwane.
- Jeśli klaster ma włączoną tożsamość zarządzaną zasobnika firmy Microsoft (
aad-pod-identity
), zasobniki tożsamości zarządzanej węzła (NMI) modyfikują tabele ip węzłów, aby przechwycić wywołania punktu końcowego usługi Azure Instance Metadata (IMDS). Ta konfiguracja oznacza, że każde żądanie skierowane do punktu końcowego metadanych jest przechwytywane przez NMI, nawet jeśli zasobnik nie używa elementuaad-pod-identity
. Usługę AzurePodIdentityException CRD można skonfigurować tak, aby informowaćaad-pod-identity
o żądaniach do punktu końcowego metadanych pochodzącego z zasobnika zgodnego z etykietami zdefiniowanymi w crD bez żadnego przetwarzania w usłudze NMI. Zasobniki systemowe z etykietąkubernetes.azure.com/managedby: aks
w przestrzeni nazw kube-system powinny zostać wykluczoneaad-pod-identity
przez skonfigurowanie elementu CRD azurePodIdentityException.- Aby uzyskać więcej informacji, zobacz Wyłączanie tożsamości microsoft Entra ID-pod-identity dla określonego zasobnika lub aplikacji.
- Aby skonfigurować wyjątek, zainstaluj kod YAML wyjątku mikrofonu.
- Usługa AKS nie obsługuje korzystania z tożsamości zarządzanej przypisanej przez system w przypadku korzystania z niestandardowej prywatnej strefy DNS.
Podsumowanie tożsamości zarządzanych
Usługa AKS używa kilku tożsamości zarządzanych dla wbudowanych usług i dodatków.
Tożsamość | Nazwisko | Przypadek użycia | Uprawnienia domyślne | Przynieś własną tożsamość |
---|---|---|---|---|
Płaszczyzna sterowania | Nazwa klastra usługi AKS | Używane przez składniki płaszczyzny sterowania usługi AKS do zarządzania zasobami klastra, w tym modułami równoważenia obciążenia ruchu przychodzącego i publicznymi adresami IP zarządzanymi przez usługę AKS, modułem skalowania automatycznego klastra, dyskiem platformy Azure, plikiem, sterownikami CSI obiektów blob. | Rola współautora dla grupy zasobów node | Obsługiwane |
Kubelet | Pula nazwa-agenta klastra usługi AKS | Uwierzytelnianie za pomocą usługi Azure Container Registry (ACR). | N/A (dla platformy Kubernetes w wersji 1.15 lub nowszej) | Obsługiwane |
Dodatek | AzureNPM | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | Monitorowanie sieci w usłudze AzureCNI | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | azure-policy (gatekeeper) | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | azure-policy | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | Calico | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | pulpit nawigacyjny | Nie jest wymagana żadna tożsamość. | Nie dotyczy | Nie. |
Dodatek | routing aplikacji | Zarządza certyfikatami usług Azure DNS i Azure Key Vault | Rola użytkownika wpisów tajnych usługi Key Vault dla usługi Key Vault, rola Współautor strefy DNZ dla stref DNS, rola współautora strefy Prywatna strefa DNS dla prywatnych stref DNS | Nie. |
Dodatek | HTTPApplicationRouting | Zarządza wymaganymi zasobami sieciowymi. | Rola czytelnika dla grupy zasobów węzła, rola współautora dla strefy DNS | Nie. |
Dodatek | Brama aplikacji ruchu przychodzącego | Zarządza wymaganymi zasobami sieciowymi. | Rola współautora dla grupy zasobów węzła | Nie. |
Dodatek | omsagent | Służy do wysyłania metryk usługi AKS do usługi Azure Monitor. | Rola wydawcy metryk monitorowania | Nie. |
Dodatek | Wirtualny węzeł (ACI Połączenie or) | Zarządza wymaganymi zasobami sieciowymi dla usługi Azure Container Instances (ACI). | Rola współautora dla grupy zasobów węzła | Nie. |
Dodatek | Analiza kosztów | Służy do zbierania danych alokacji kosztów | ||
Tożsamość obciążenia | Identyfikator obciążenia Firmy Microsoft Entra | Umożliwia aplikacjom bezpieczny dostęp do zasobów w chmurze za pomocą identyfikatora obciążenia Entra firmy Microsoft. | Nie dotyczy | Nie. |
Włączanie tożsamości zarządzanych w nowym klastrze usługi AKS
Uwaga
Usługa AKS tworzy tożsamość kubelet przypisaną przez użytkownika w grupie zasobów węzła, jeśli nie określisz własnej tożsamości zarządzanej kubelet.
Uwaga
Jeśli klaster korzysta już z tożsamości zarządzanej i tożsamość została zmieniona, na przykład zaktualizujesz typ tożsamości klastra z przypisanego przez system do przypisanego przez użytkownika, istnieje opóźnienie przełączenia składników płaszczyzny sterowania na nową tożsamość. Składniki płaszczyzny sterowania nadal używają starej tożsamości do momentu wygaśnięcia tokenu. Po odświeżeniu tokenu przełączają się na nową tożsamość. Ten proces może potrwać kilka godzin.
Utwórz grupę zasobów platformy Azure przy użyciu
az group create
polecenia .az group create --name myResourceGroup --location westus2
Utwórz klaster usługi AKS przy użyciu
az aks create
polecenia .az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity
Uzyskiwanie poświadczeń w celu uzyskania dostępu do klastra
az aks get-credentials
przy użyciu polecenia .az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Włączanie tożsamości zarządzanych w istniejącym klastrze usługi AKS
Aby zaktualizować istniejący klaster usługi AKS używający jednostki usługi do korzystania z tożsamości zarządzanej przypisanej przez system, uruchom az aks update
polecenie .
az aks update -g myResourceGroup -n myManagedCluster --enable-managed-identity
Po zaktualizowaniu klastra płaszczyzna sterowania i zasobniki używają tożsamości zarządzanej. Rozwiązanie Kubelet kontynuuje korzystanie z jednostki usługi do momentu uaktualnienia puli agentów. Aby zaktualizować tożsamość zarządzaną, możesz użyć az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only
polecenia w węzłach. Uaktualnienie puli węzłów powoduje przestój klastra usługi AKS, ponieważ węzły w pulach węzłów są kordonowane/opróżniane i odtwarzane.
Uwaga
Podczas aktualizowania klastra należy pamiętać o następujących informacjach:
Aktualizacja działa tylko wtedy, gdy istnieje aktualizacja dysku VHD do korzystania. Jeśli używasz najnowszego wirtualnego dysku twardego, musisz poczekać, aż następny wirtualny dysk twardy będzie dostępny w celu przeprowadzenia aktualizacji.
Interfejs wiersza polecenia platformy Azure zapewnia, że uprawnienie dodatku jest poprawnie ustawione po przeprowadzeniu migracji. Jeśli nie używasz interfejsu wiersza polecenia platformy Azure do przeprowadzenia operacji migracji, musisz samodzielnie obsłużyć uprawnienia tożsamości dodatku. Aby zapoznać się z przykładem użycia szablonu usługi Azure Resource Manager (ARM), zobacz Przypisywanie ról platformy Azure przy użyciu szablonów usługi ARM.
Jeśli klaster był używany
--attach-acr
do ściągania obrazów z usługi Azure Container Registry, należy uruchomićaz aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID>
polecenie po zaktualizowaniu klastra, aby umożliwić nowo utworzonemu rozwiązaniu kubelet używanemu na potrzeby tożsamości zarządzanej uzyskanie uprawnień do ściągania z usługi ACR. W przeciwnym razie nie będzie można ściągnąć z usługi ACR po aktualizacji.
Dodawanie przypisania roli dla tożsamości zarządzanej
Podczas tworzenia i używania własnej sieci wirtualnej dołącz dyski platformy Azure, statyczny adres IP, tabelę tras lub tożsamość kubelet przypisaną przez użytkownika, w której zasoby znajdują się poza grupą zasobów węzła procesu roboczego, interfejs wiersza polecenia platformy Azure automatycznie dodaje przypisanie roli. Jeśli używasz szablonu usługi ARM lub innej metody, musisz użyć identyfikatora głównego tożsamości zarządzanej klastra do wykonania przypisania roli.
Jeśli nie używasz interfejsu wiersza polecenia platformy Azure, ale używasz własnej sieci wirtualnej, dołączasz dyski platformy Azure, statyczny adres IP, tabelę tras lub tożsamość kubelet przypisaną przez użytkownika, która znajduje się poza grupą zasobów węzła roboczego, zalecamy użycie tożsamości zarządzanej przypisanej przez użytkownika dla płaszczyzny sterowania. Aby płaszczyzna sterowania korzystała z tożsamości zarządzanej przypisanej przez system, nie możemy uzyskać identyfikatora tożsamości przed utworzeniem klastra, co opóźni przypisanie roli.
Pobieranie identyfikatora podmiotu zabezpieczeń tożsamości zarządzanej
Pobierz identyfikator podmiotu zabezpieczeń istniejącej tożsamości przy użyciu
az identity show
polecenia .az identity show --ids <identity-resource-id>
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", "location": "eastus", "name": "myIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Dodaj przypisanie roli
W przypadku sieci wirtualnej, dołączonego dysku platformy Azure, statycznego adresu IP lub tabeli tras poza domyślną grupą zasobów węzła procesu roboczego należy przypisać Contributor
rolę w niestandardowej grupie zasobów.
Contributor
Przypisz rolę w niestandardowej grupie zasobów przy użyciuaz role assignment create
polecenia .az role assignment create --assignee <control-plane-identity-principal-id> --role "Contributor" --scope "<custom-resource-group-resource-id>"
W przypadku tożsamości kubelet przypisanej przez użytkownika poza domyślną grupą zasobów węzła roboczego należy przypisać rolę Operator tożsamości zarządzanej w tożsamości kubelet dla tożsamości zarządzanej płaszczyzny sterowania.
Managed Identity Operator
Przypisz rolę w tożsamości kubelet przyaz role assignment create
użyciu polecenia .az role assignment create --assignee <control-plane-identity-principal-id> --role "Managed Identity Operator" --scope "<kubelet-identity-resource-id>"
Uwaga
Wypełnienie uprawnień przyznanych tożsamości zarządzanej klastra może potrwać do 60 minut.
Korzystanie z własnej tożsamości zarządzanej
Tworzenie klastra przy użyciu tożsamości zarządzanej przypisanej przez użytkownika
Niestandardowa tożsamość zarządzana przypisana przez użytkownika dla płaszczyzny sterowania umożliwia dostęp do istniejącej tożsamości przed utworzeniem klastra. Ta funkcja umożliwia korzystanie z niestandardowej sieci wirtualnej lub wychodzącego typu trasy zdefiniowanej przez użytkownika ze wstępnie utworzoną tożsamością zarządzaną.
Uwaga
Regiony USDOD Central, USDOD Wschodnie i USGov Iowa w chmurze Azure US Government nie są obsługiwane.
Usługa AKS tworzy tożsamość kubelet przypisaną przez użytkownika w grupie zasobów węzła, jeśli nie określisz własnej tożsamości zarządzanej kubelet.
Jeśli nie masz tożsamości zarządzanej, utwórz je przy użyciu
az identity create
polecenia .az identity create --name myIdentity --resource-group myResourceGroup
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "clientSecretUrl": "<clientSecretUrl>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", "location": "westus2", "name": "myIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Uwaga
Wypełnienie uprawnień przyznanych tożsamości zarządzanej klastra może potrwać do 60 minut.
Przed utworzeniem klastra dodaj przypisanie roli dla tożsamości zarządzanej
az role assignment create
przy użyciu polecenia .Utwórz klaster z tożsamością zarządzaną przypisaną przez użytkownika.
az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 \ --enable-managed-identity \ --assign-identity <identity-resource-id>
Aktualizowanie tożsamości zarządzanej w istniejącym klastrze
Uwaga
Migrowanie tożsamości zarządzanej dla płaszczyzny sterowania z przypisanej przez system do przypisanej przez użytkownika nie powoduje żadnych przestojów dla płaszczyzny sterowania i pul agentów. W międzyczasie składniki płaszczyzny sterowania nadal używają starej tożsamości przypisanej przez system przez kilka godzin do następnego odświeżenia tokenu.
Jeśli nie masz tożsamości zarządzanej, utwórz je przy użyciu
az identity create
polecenia .az identity create --name myIdentity --resource-group myResourceGroup
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "clientSecretUrl": "<clientSecretUrl>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", "location": "westus2", "name": "myIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Po utworzeniu niestandardowej tożsamości zarządzanej przypisanej przez użytkownika dla płaszczyzny sterowania dodaj przypisanie roli dla tożsamości zarządzanej
az role assignment create
przy użyciu polecenia .Zaktualizuj klaster przy użyciu istniejących tożsamości przy użyciu
az aks update
polecenia . Upewnij się, że podano identyfikator zasobu tożsamości zarządzanej dla płaszczyzny sterowania, dołączającassign-identity
argument.az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id>
Dane wyjściowe pomyślnej aktualizacji klastra przy użyciu własnej tożsamości zarządzanej kubelet powinny przypominać następujące przykładowe dane wyjściowe:
"identity": { "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": { "clientId": "<client-id>", "principalId": "<principal-id>" } } },
Używanie wstępnie utworzonej tożsamości zarządzanej kubelet
Tożsamość kubelet umożliwia dostęp do istniejącej tożsamości przed utworzeniem klastra. Ta funkcja umożliwia scenariusze, takie jak połączenie z usługą ACR ze wstępnie utworzoną tożsamością zarządzaną.
Wstępnie utworzone ograniczenia tożsamości kubelet
- Działa tylko z klastrem zarządzanym przypisanym przez użytkownika.
- Regiony Chiny Wschodnie i Chiny Północne na platformie Microsoft Azure obsługiwane przez firmę 21Vianet nie są obsługiwane.
Tworzenie tożsamości zarządzanych przypisanych przez użytkownika
Tożsamość zarządzana płaszczyzny sterowania
Jeśli nie masz tożsamości zarządzanej dla płaszczyzny sterowania, utwórz go przy użyciu elementu
az identity create
.az identity create --name myIdentity --resource-group myResourceGroup
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "clientSecretUrl": "<clientSecretUrl>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", "location": "westus2", "name": "myIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
tożsamość zarządzana kubelet
Jeśli nie masz tożsamości zarządzanej kubelet, utwórz je przy użyciu
az identity create
polecenia .az identity create --name myKubeletIdentity --resource-group myResourceGroup
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "clientSecretUrl": "<clientSecretUrl>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity", "location": "westus2", "name": "myKubeletIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Tworzenie klastra przy użyciu tożsamości kubelet przypisanej przez użytkownika
Teraz możesz utworzyć klaster usługi AKS przy użyciu istniejących tożsamości. Upewnij się, że podano identyfikator zasobu tożsamości zarządzanej dla płaszczyzny sterowania, dołączając assign-identity
argument i tożsamość zarządzaną kubelet przy użyciu argumentu assign-kubelet-identity
.
Utwórz klaster usługi AKS przy użyciu istniejących tożsamości przy użyciu
az aks create
polecenia .az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Pomyślne utworzenie klastra usługi AKS przy użyciu własnej tożsamości zarządzanej kubelet powinno przypominać następujące przykładowe dane wyjściowe:
"identity": { "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": { "clientId": "<client-id>", "principalId": "<principal-id>" } } }, "identityProfile": { "kubeletidentity": { "clientId": "<client-id>", "objectId": "<object-id>", "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity" } },
Aktualizowanie istniejącego klastra przy użyciu tożsamości kubelet
Ostrzeżenie
Aktualizowanie pul węzłów tożsamości zarządzanej kubelet powoduje przestój klastra usługi AKS, ponieważ węzły w pulach węzłów są odprowadzane/opróżniane i odtwarzane.
Uwaga
Jeśli klaster był używany --attach-acr
do ściągania obrazów z usługi Azure Container Registry, należy uruchomić az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID>
polecenie po zaktualizowaniu klastra, aby umożliwić nowo utworzonemu rozwiązaniu kubelet używanemu na potrzeby tożsamości zarządzanej uzyskanie uprawnień do ściągania z usługi ACR. W przeciwnym razie nie będzie można ściągnąć z usługi ACR po uaktualnieniu.
Uzyskiwanie bieżącej tożsamości zarządzanej płaszczyzny sterowania dla klastra usługi AKS
Upewnij się, że klaster usługi AKS używa tożsamości zarządzanej przypisanej przez użytkownika przy użyciu
az aks show
polecenia .az aks show -g <RGName> -n <ClusterName> --query "servicePrincipalProfile"
Jeśli klaster korzysta z tożsamości zarządzanej, dane wyjściowe będą wyświetlane
clientId
z wartością msi. Klaster używający jednostki usługi pokazuje identyfikator obiektu. Na przykład:{ "clientId": "msi" }
Po potwierdzeniu, że klaster korzysta z tożsamości zarządzanej, znajdź identyfikator zasobu tożsamości zarządzanej
az aks show
przy użyciu polecenia .az aks show -g <RGName> -n <ClusterName> --query "identity"
W przypadku tożsamości zarządzanej przypisanej przez użytkownika dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": <identity-resource-id> "clientId": "<client-id>", "principalId": "<principal-id>" },
Aktualizowanie klastra przy użyciu tożsamości kubelet
Jeśli nie masz tożsamości zarządzanej kubelet, utwórz je przy użyciu
az identity create
polecenia .az identity create --name myKubeletIdentity --resource-group myResourceGroup
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{ "clientId": "<client-id>", "clientSecretUrl": "<clientSecretUrl>", "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity", "location": "westus2", "name": "myKubeletIdentity", "principalId": "<principal-id>", "resourceGroup": "myResourceGroup", "tags": {}, "tenantId": "<tenant-id>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Zaktualizuj klaster przy użyciu istniejących tożsamości przy użyciu
az aks update
polecenia . Upewnij się, że podano identyfikator zasobu tożsamości zarządzanej dla płaszczyzny sterowania, dołączającassign-identity
argument i tożsamość zarządzaną kubelet dlaassign-kubelet-identity
argumentu.az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Dane wyjściowe pomyślnej aktualizacji klastra przy użyciu własnej tożsamości zarządzanej kubelet powinny przypominać następujące przykładowe dane wyjściowe:
"identity": { "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": { "clientId": "<client-id>", "principalId": "<principal-id>" } } }, "identityProfile": { "kubeletidentity": { "clientId": "<client-id>", "objectId": "<object-id>", "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity" } },
Następne kroki
- Użyj szablonów usługi Azure Resource Manager, aby utworzyć klaster z obsługą tożsamości zarządzanej.
- Dowiedz się, jak używać platformy [kubelogin][kubelogin-authentication] dla wszystkich obsługiwanych metod uwierzytelniania firmy Microsoft Entra w usłudze AKS.