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

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 elementu aad-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ć wykluczone aad-pod-identity przez skonfigurowanie elementu CRD azurePodIdentityException.
  • 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.

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

    az group create --name myResourceGroup --location westus2
    
  2. Utwórz klaster usługi AKS przy użyciu az aks create polecenia .

    az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity
    
  3. 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życiu az 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 przy az 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ąc assign-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

  1. 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"
    }
    
  2. 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

  1. 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"
    }
    
  2. 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ąc assign-identity argument i tożsamość zarządzaną kubelet dla assign-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.