Opcje dostępu i tożsamości dla usługi Azure Kubernetes Service (AKS)

Dostęp do klastrów Kubernetes można uwierzytelniać, autoryzować, zabezpieczać i kontrolować na różne sposoby:

  • Za pomocą kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes można udzielić użytkownikom, grupom i kontom usług dostępu tylko do potrzebnych zasobów.
  • Dzięki usłudze Azure Kubernetes Service (AKS) można jeszcze bardziej zwiększyć strukturę zabezpieczeń i uprawnień przy użyciu identyfikatora Entra firmy Microsoft i kontroli dostępu opartej na rolach platformy Azure.

Kontrola dostępu na podstawie ról platformy Kubernetes i usługa AKS pomagają zabezpieczyć dostęp do klastra i zapewnić tylko minimalne wymagane uprawnienia deweloperom i operatorom.

W tym artykule przedstawiono podstawowe pojęcia, które ułatwiają uwierzytelnianie i przypisywanie uprawnień w usłudze AKS.

Kontrola dostępu na podstawie ról na platformie Kubernetes

Kontrola dostępu oparta na rolach platformy Kubernetes zapewnia szczegółowe filtrowanie akcji użytkownika. Dzięki temu mechanizmowi sterowania:

  • Przypisujesz użytkownikom lub grupom użytkowników uprawnienia do tworzenia i modyfikowania zasobów lub wyświetlania dzienników z uruchomionych obciążeń aplikacji.
  • Można ograniczyć zakres uprawnień do pojedynczej przestrzeni nazw lub w całym klastrze usługi AKS.
  • Role można tworzyćw celu zdefiniowania uprawnień, a następnie przypisywać te role do użytkowników z powiązaniami ról.

Aby uzyskać więcej informacji, zobacz Using Kubernetes RBAC authorization (Używanie autoryzacji RBAC platformy Kubernetes).

Role i role klastra

Role

Przed przypisaniem uprawnień do użytkowników za pomocą kontroli dostępu opartej na rolach platformy Kubernetes zdefiniujesz uprawnienia użytkownika jako rolę. Udzielanie uprawnień w przestrzeni nazw przy użyciu ról.

Uwaga

Role platformy Kubernetes udzielają uprawnień; nie odmawiają uprawnień.

Aby udzielić uprawnień w całym klastrze lub zasobom klastra poza daną przestrzenią nazw, możesz zamiast tego użyć klasterRole.

ClusterRoles

KlasterRole przyznaje i stosuje uprawnienia do zasobów w całym klastrze, a nie do określonej przestrzeni nazw.

RoleBindings i ClusterRoleBindings

Po zdefiniowaniu ról w celu udzielenia uprawnień do zasobów przypiszesz te uprawnienia RBAC platformy Kubernetes z funkcją RoleBinding. Jeśli klaster usługi AKS integruje się z identyfikatorem Entra firmy Microsoft, funkcja RoleBindings udziela użytkownikom usługi Microsoft Entra uprawnień do wykonywania akcji w klastrze. Zobacz, jak kontrolować dostęp do zasobów klastra przy użyciu kontroli dostępu opartej na rolach platformy Kubernetes i tożsamości firmy Microsoft Entra.

Powiązania ról

Przypisz role do użytkowników dla danej przestrzeni nazw przy użyciu funkcji RoleBindings. Za pomocą funkcji RoleBindings można logicznie rozdzielić pojedynczy klaster usługi AKS, umożliwiając tylko użytkownikom dostęp do zasobów aplikacji w przypisanej przestrzeni nazw.

Aby powiązać role w całym klastrze lub z zasobami klastra poza daną przestrzenią nazw, zamiast tego należy użyć metody ClusterRoleBindings.

ClusterRoleBinding

W przypadku klastraRoleBinding należy powiązać role z użytkownikami i zastosować je do zasobów w całym klastrze, a nie do określonej przestrzeni nazw. Takie podejście umożliwia administratorom lub inżynierom pomocy technicznej dostęp do wszystkich zasobów w klastrze usługi AKS.

Uwaga

Usługa Microsoft/AKS wykonuje wszelkie akcje klastra z zgodą użytkownika w ramach wbudowanej roli aks-service Kubernetes i wbudowanego powiązania aks-service-rolebindingroli.

Ta rola umożliwia usłudze AKS rozwiązywanie i diagnozowanie problemów z klastrem, ale nie może modyfikować uprawnień ani tworzyć ról ani powiązań ról ani innych akcji o wysokim poziomie uprawnień. Dostęp do roli jest włączony tylko w ramach aktywnych biletów pomocy technicznej z dostępem just in time (JIT). Przeczytaj więcej na temat zasad pomocy technicznej usługi AKS.

Konta usługi Kubernetes

Konta usług są jednym z podstawowych typów użytkowników na platformie Kubernetes. Interfejs API platformy Kubernetes przechowuje konta usług i zarządza nimi. Poświadczenia konta usługi są przechowywane jako wpisy tajne platformy Kubernetes, dzięki czemu mogą być używane przez autoryzowane zasobniki do komunikowania się z serwerem interfejsu API. Większość żądań interfejsu API zapewnia token uwierzytelniania dla konta usługi lub normalnego konta użytkownika.

Normalne konta użytkowników umożliwiają bardziej tradycyjny dostęp dla administratorów lub deweloperów, a nie tylko usług i procesów. Chociaż platforma Kubernetes nie zapewnia rozwiązania do zarządzania tożsamościami do przechowywania zwykłych kont użytkowników i haseł, można zintegrować rozwiązania tożsamości zewnętrznej z platformą Kubernetes. W przypadku klastrów usługi AKS to zintegrowane rozwiązanie tożsamości to Microsoft Entra ID.

Aby uzyskać więcej informacji na temat opcji tożsamości w rozwiązaniu Kubernetes, zobacz Uwierzytelnianie na platformie Kubernetes.

Kontrola dostępu na podstawie ról na platformie Azure

Kontrola dostępu oparta na rolach (RBAC) platformy Azure to system autoryzacji oparty na usłudze Azure Resource Manager , który zapewnia szczegółowe zarządzanie dostępem do zasobów platformy Azure.

System kontroli dostępu opartej na rolach opis
Kontrola dostępu na podstawie ról na platformie Kubernetes Zaprojektowana do pracy z zasobami Kubernetes w klastrze AKS.
Kontrola dostępu na podstawie ról platformy Azure Zaprojektowana do pracy z zasobami w ramach subskrypcji platformy Azure.

Za pomocą kontroli dostępu opartej na rolach platformy Azure utworzysz definicję roli, która zawiera opis uprawnień do zastosowania. Następnie przypiszesz użytkownikowi lub grupie tę definicję roli za pomocą przypisania roli dla określonego zakresu. Zakres może być pojedynczym zasobem, grupą zasobów lub w ramach subskrypcji.

Aby uzyskać więcej informacji, zobacz Co to jest kontrola dostępu oparta na rolach platformy Azure (Azure RBAC)?

Istnieją dwa poziomy dostępu potrzebne do pełnej obsługi klastra usługi AKS:

Kontrola dostępu oparta na rolach platformy Azure w celu autoryzowania dostępu do zasobu usługi AKS

Dzięki kontroli dostępu opartej na rolach platformy Azure możesz zapewnić użytkownikom (lub tożsamościom) szczegółowy dostęp do zasobów usługi AKS w ramach co najmniej jednej subskrypcji. Na przykład możesz użyć roli Współautor usługi Azure Kubernetes Service do skalowania i uaktualniania klastra. Tymczasem inny użytkownik z rolą klastra usługi Azure Kubernetes Service Administracja ma uprawnienia tylko do ściągania Administracja kubeconfig.

Użyj kontroli dostępu opartej na rolach platformy Azure, aby zdefiniować dostęp do pliku konfiguracji platformy Kubernetes w usłudze AKS.

Kontrola dostępu oparta na rolach platformy Azure dla autoryzacji na platformie Kubernetes

Dzięki integracji kontroli dostępu opartej na rolach platformy Azure usługa AKS będzie używać serwera webhook autoryzacji Kubernetes, dzięki czemu można zarządzać zintegrowanymi uprawnieniami i przypisaniami klastra Kubernetes firmy Microsoft przy użyciu definicji ról i przypisań ról platformy Azure.

Azure RBAC for Kubernetes authorization flow

Jak pokazano na powyższym diagramie, w przypadku korzystania z integracji kontroli dostępu opartej na rolach platformy Azure wszystkie żądania do interfejsu API kubernetes będą postępować zgodnie z tym samym przepływem uwierzytelniania, jak wyjaśniono w sekcji integracji firmy Microsoft Entra.

Jeśli tożsamość wysyłająca żądanie istnieje w identyfikatorze Entra firmy Microsoft, platforma Azure będzie zespołem z kontrolą dostępu opartą na rolach platformy Kubernetes w celu autoryzowania żądania. Jeśli tożsamość istnieje poza identyfikatorem Entra firmy Microsoft (tj. kontem usługi Kubernetes), autoryzacja zostanie odroczenie normalnego RBAC platformy Kubernetes.

W tym scenariuszu używasz mechanizmów i interfejsów API RBAC platformy Azure do przypisywania wbudowanych ról użytkowników lub tworzenia ról niestandardowych, podobnie jak w przypadku ról platformy Kubernetes.

Dzięki tej funkcji nie tylko można przyznać użytkownikom uprawnienia do zasobu usługi AKS w ramach subskrypcji, ale także skonfigurować rolę i uprawnienia wewnątrz każdego z tych klastrów kontrolujących dostęp do interfejsu API kubernetes. Na przykład możesz przyznać Azure Kubernetes Service RBAC Reader rolę w zakresie subskrypcji. Odbiorca roli będzie mógł wyświetlić listę i pobrać wszystkie obiekty Kubernetes ze wszystkich klastrów bez ich modyfikowania.

Ważne

Przed użyciem tej funkcji należy włączyć kontrolę dostępu opartą na rolach platformy Azure dla autoryzacji platformy Kubernetes. Aby uzyskać więcej szczegółów i wskazówek krok po kroku, postępuj zgodnie z instrukcjami korzystanie z kontroli dostępu opartej na rolach platformy Azure dla autoryzacji kubernetes.

Wbudowane role

Usługa AKS udostępnia następujące cztery wbudowane role. Są one podobne do wbudowanych ról platformy Kubernetes z kilkoma różnicami, takimi jak obsługa identyfikatorów CRD. Zobacz pełną listę akcji dozwolonych przez każdą wbudowaną rolę platformy Azure.

Rola opis
Czytelnik kontroli dostępu opartej na rolach usługi Azure Kubernetes Service Umożliwia dostęp tylko do odczytu, aby wyświetlić większość obiektów w przestrzeni nazw.
Nie zezwala na wyświetlanie ról ani powiązań ról.
Nie zezwala na wyświetlanie Secretspliku . Odczytywanie Secrets zawartości umożliwia dostęp do ServiceAccount poświadczeń w przestrzeni nazw, co umożliwi dostęp do interfejsu API jako dowolny ServiceAccount w przestrzeni nazw (forma eskalacji uprawnień).
Składnik zapisywania kontroli dostępu opartej na rolach usługi Azure Kubernetes Service Umożliwia dostęp do odczytu/zapisu do większości obiektów w przestrzeni nazw.
Nie zezwala na wyświetlanie ani modyfikowanie ról ani powiązań ról.
Umożliwia uzyskiwanie dostępu do Secrets zasobników i uruchamianie ich jako dowolnego konta usługi w przestrzeni nazw, dzięki czemu może służyć do uzyskiwania poziomów dostępu do interfejsu API dowolnego konta usługi w przestrzeni nazw.
Administracja RBAC usługi Azure Kubernetes Service Zezwala na dostęp administratora, który ma być udzielany w przestrzeni nazw.
Umożliwia dostęp do odczytu/zapisu do większości zasobów w przestrzeni nazw (lub zakresie klastra), w tym możliwość tworzenia ról i powiązań ról w przestrzeni nazw.
Nie zezwala na dostęp do zapisu do limitu przydziału zasobów ani do samej przestrzeni nazw.
Klaster RBAC usługi Azure Kubernetes Service Administracja Umożliwia dostęp administratora do wykonywania dowolnej akcji na dowolnym zasobie.
Zapewnia pełną kontrolę nad każdym zasobem w klastrze i we wszystkich przestrzeniach nazw.

Integracja z usługą Microsoft Entra

Zwiększ bezpieczeństwo klastra usługi AKS dzięki integracji z firmą Microsoft Entra. Zbudowany na dziesięcioleciach zarządzania tożsamościami przedsiębiorstwa, Microsoft Entra ID to wielodostępna, oparta na chmurze usługa katalogów i zarządzania tożsamościami, która łączy podstawowe usługi katalogowe, zarządzanie dostępem do aplikacji i ochronę tożsamości. Dzięki identyfikatorowi Entra firmy Microsoft można zintegrować tożsamości lokalne z klastrami usługi AKS, aby zapewnić jedno źródło do zarządzania kontami i zabezpieczeń.

Microsoft Entra integration with AKS clusters

Dzięki zintegrowanym klastrom usługi AKS firmy Microsoft można udzielić użytkownikom lub grupom dostępu do zasobów Kubernetes w przestrzeni nazw lub w klastrze.

  1. Aby uzyskać kubectl kontekst konfiguracji, użytkownik uruchamia polecenie az aks get-credentials .
  2. Gdy użytkownik wchodzi w interakcję z klastrem usługi AKS przy kubectlużyciu polecenia , zostanie wyświetlony monit o zalogowanie się przy użyciu poświadczeń usługi Microsoft Entra.

Takie podejście zapewnia pojedyncze źródło do zarządzania kontami użytkowników i poświadczeń haseł. Użytkownik może uzyskać dostęp tylko do zasobów zdefiniowanych przez administratora klastra.

Uwierzytelnianie entra firmy Microsoft jest udostępniane klastrom usługi AKS z Połączenie OpenID. OpenID Połączenie to warstwa tożsamości oparta na protokole OAuth 2.0. Aby uzyskać więcej informacji na temat Połączenie OpenID, zobacz dokumentację Połączenie OpenID. Z poziomu klastra Kubernetes uwierzytelnianie tokenu elementu webhook służy do weryfikowania tokenów uwierzytelniania. Uwierzytelnianie tokenu elementu webhook jest konfigurowane i zarządzane w ramach klastra usługi AKS.

Element webhook i serwer interfejsu API

Webhook and API server authentication flow

Jak pokazano na powyższej ilustracji, serwer interfejsu API wywołuje serwer elementu webhook usługi AKS i wykonuje następujące czynności:

  1. kubectl używa aplikacji klienckiej Microsoft Entra do logowania użytkowników przy użyciu przepływu udzielania autoryzacji urządzeń OAuth 2.0.
  2. Identyfikator entra firmy Microsoft udostępnia access_token, id_token i refresh_token.
  3. Użytkownik wysyła żądanie z kubectl access_token z kubeconfig.
  4. kubectl wysyła access_token do serwera INTERFEJSu API.
  5. Serwer interfejsu API jest skonfigurowany z serwerem webhook uwierzytelniania w celu przeprowadzenia walidacji.
  6. Serwer elementu webhook uwierzytelniania potwierdza, że podpis tokenu internetowego JSON jest prawidłowy, sprawdzając publiczny klucz podpisywania firmy Microsoft.
  7. Aplikacja serwera używa poświadczeń podanych przez użytkownika do wykonywania zapytań dotyczących członkostwa w grupach zalogowanego użytkownika z interfejsu API programu MS Graph.
  8. Odpowiedź jest wysyłana do serwera interfejsu API z informacjami o użytkowniku, takimi jak oświadczenie głównej nazwy użytkownika (UPN) tokenu dostępu oraz członkostwo w grupie użytkownika na podstawie identyfikatora obiektu.
  9. Interfejs API wykonuje decyzję o autoryzacji na podstawie roli/powiązania ról platformy Kubernetes.
  10. Po autoryzacji serwer interfejsu API zwraca odpowiedź na kubectl.
  11. kubectl przekazuje użytkownikowi opinię.

Dowiedz się, jak zintegrować usługę AKS z usługą Microsoft Entra ID z naszym przewodnikiem z instrukcjami dotyczącymi integracji z usługą Microsoft Entra zarządzaną przez usługę AKS.

Uprawnienia usługi AKS

Podczas tworzenia klastra usługa AKS generuje lub modyfikuje potrzebne zasoby (takie jak maszyny wirtualne i karty sieciowe), aby utworzyć i uruchomić klaster w imieniu użytkownika. Ta tożsamość różni się od uprawnień tożsamości klastra, które jest tworzone podczas tworzenia klastra.

Tożsamość tworząca i obsługując uprawnienia klastra

Następujące uprawnienia są wymagane przez tożsamość tworzącą i działającą w klastrze.

Uprawnienie Przyczyna
Microsoft.Compute/diskEncryptionSets/read Wymagane do odczytu identyfikatora zestawu szyfrowania dysków.
Microsoft.Compute/proximityPlacementGroups/write Wymagane do aktualizowania grup umieszczania w pobliżu.
Microsoft.Network/applicationGateways/read
Microsoft.Network/applicationGateways/write
Microsoft.Network/virtualNetworks/subnets/join/action
Wymagane do skonfigurowania bram aplikacji i dołączenia do podsieci.
Microsoft.Network/virtualNetworks/subnets/join/action Wymagane do skonfigurowania sieciowej grupy zabezpieczeń dla podsieci podczas korzystania z niestandardowej sieci wirtualnej.
Microsoft.Network/publicIPAddresses/join/action
Microsoft.Network/publicIPPrefixes/join/action
Wymagane do skonfigurowania wychodzących publicznych adresów IP na usługa Load Balancer w warstwie Standardowa.
Microsoft.OperationalInsights/workspaces/sharedkeys/read
Microsoft.OperationalInsights/workspaces/read
Microsoft.OperationsManagement/solutions/write
Microsoft.OperationsManagement/solutions/read
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Wymagane do tworzenia i aktualizowania obszarów roboczych usługi Log Analytics oraz monitorowania platformy Azure dla kontenerów.
Microsoft.Network/virtualNetworks/joinLoadBalancer/action Wymagane do skonfigurowania pul zaplecza modułu równoważenia obciążenia opartego na adresach IP.

Uprawnienia tożsamości klastra usługi AKS

Następujące uprawnienia są używane przez tożsamość klastra usługi AKS, która jest tworzona i skojarzona z klastrem usługi AKS. Każde uprawnienie jest używane z poniższych powodów:

Uprawnienie Przyczyna
Microsoft.ContainerService/managedClusters/*
Wymagane do tworzenia użytkowników i obsługi klastra
Microsoft.Network/loadBalancers/delete
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Wymagane do skonfigurowania modułu równoważenia obciążenia dla usługi LoadBalancer.
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/publicIPAddresses/read
Microsoft.Network/publicIPAddresses/write
Wymagane do znalezienia i skonfigurowania publicznych adresów IP dla usługi LoadBalancer.
Microsoft.Network/publicIPAddresses/join/action Wymagane do skonfigurowania publicznych adresów IP dla usługi LoadBalancer.
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/write
Wymagane do utworzenia lub usunięcia reguł zabezpieczeń dla usługi LoadBalancer.
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/locations/DiskOperations/read
Wymagane do skonfigurowania usługi AzureDisks.
Microsoft.Storage/storageAccounts/delete
Microsoft.Storage/storageAccounts/listKeys/action
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/write
Microsoft.Storage/operations/read
Wymagane do skonfigurowania kont magazynu dla usługi AzureFile lub AzureDisk.
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/routes/delete
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/write
Wymagane do skonfigurowania tabel tras i tras dla węzłów.
Microsoft.Compute/virtualMachines/read Wymagane do znalezienia informacji dotyczących maszyn wirtualnych w programie VMAS, takich jak strefy, domena błędów, rozmiar i dyski danych.
Microsoft.Compute/virtualMachines/write Wymagane do dołączenia dysków AzureDisks do maszyny wirtualnej w programie VMAS.
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/instanceView/read
Wymagane do znalezienia informacji dotyczących maszyn wirtualnych w zestawie skalowania maszyn wirtualnych, takich jak strefy, domena błędów, rozmiar i dyski danych.
Microsoft.Network/networkInterfaces/write Wymagane do dodania maszyny wirtualnej w programie VMAS do puli adresów zaplecza modułu równoważenia obciążenia.
Microsoft.Compute/virtualMachineScaleSets/write Wymagane do dodania zestawu skalowania maszyn wirtualnych do pul adresów zaplecza modułu równoważenia obciążenia i skalowania węzłów w poziomie w zestawie skalowania maszyn wirtualnych.
Microsoft.Compute/virtualMachineScaleSets/delete Wymagane do usunięcia zestawu skalowania maszyn wirtualnych do pul adresów zaplecza modułu równoważenia obciążenia i skalowania węzłów w dół w zestawie skalowania maszyn wirtualnych.
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/write Wymagane do dołączenia dysków AzureDisks i dodania maszyny wirtualnej z zestawu skalowania maszyn wirtualnych do modułu równoważenia obciążenia.
Microsoft.Network/networkInterfaces/read Wymagane do wyszukiwania wewnętrznych adresów IP i pul adresów zaplecza modułu równoważenia obciążenia dla maszyn wirtualnych w usłudze VMAS.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/read Wymagane do wyszukiwania wewnętrznych adresów IP i pul adresów zaplecza modułu równoważenia obciążenia dla maszyny wirtualnej w zestawie skalowania maszyn wirtualnych.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/ipconfigurations/publicipaddresses/read Wymagane do znalezienia publicznych adresów IP maszyny wirtualnej w zestawie skalowania maszyn wirtualnych.
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/read
Wymagane do sprawdzenia, czy podsieć istnieje dla wewnętrznego modułu równoważenia obciążenia w innej grupie zasobów.
Microsoft.Compute/snapshots/delete
Microsoft.Compute/snapshots/read
Microsoft.Compute/snapshots/write
Wymagane do skonfigurowania migawek dla narzędzia AzureDisk.
Microsoft.Compute/locations/vmSizes/read
Microsoft.Compute/locations/operations/read
Wymagane do znalezienia rozmiarów maszyn wirtualnych na potrzeby znajdowania limitów woluminów AzureDisk.

Dodatkowe uprawnienia tożsamości klastra

Podczas tworzenia klastra z określonymi atrybutami potrzebne będą następujące dodatkowe uprawnienia dla tożsamości klastra. Ponieważ te uprawnienia nie są przypisywane automatycznie, należy dodać je do tożsamości klastra po jej utworzeniu.

Uprawnienie Przyczyna
Microsoft.Network/networkSecurityGroups/write
Microsoft.Network/networkSecurityGroups/read
Wymagane w przypadku korzystania z sieciowej grupy zabezpieczeń w innej grupie zasobów. Wymagane do skonfigurowania reguł zabezpieczeń dla usługi LoadBalancer.
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/join/action
Wymagane w przypadku korzystania z podsieci w innej grupie zasobów, takiej jak niestandardowa sieć wirtualna.
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Wymagane w przypadku używania podsieci skojarzonej z tabelą tras w innej grupie zasobów, takiej jak niestandardowa sieć wirtualna z niestandardową tabelą tras. Wymagane do sprawdzenia, czy podsieć już istnieje dla podsieci w innej grupie zasobów.
Microsoft.Network/virtualNetworks/subnets/read Wymagane w przypadku korzystania z wewnętrznego modułu równoważenia obciążenia w innej grupie zasobów. Wymagane do sprawdzenia, czy podsieć już istnieje dla wewnętrznego modułu równoważenia obciążenia w grupie zasobów.
Microsoft.Network/privatednszones/* Wymagane w przypadku korzystania z prywatnej strefy DNS w innej grupie zasobów, takiej jak niestandardowa prywatna strefaDNSZone.

Dostęp do węzła usługi AKS

Domyślnie program Node Access nie jest wymagany dla usługi AKS. W przypadku użycia określonego składnika wymagany jest następujący dostęp do węzła.

Access Przyczyna
kubelet Wymagane do udzielenia tożsamości usługi zarządzanej dostępu do usługi ACR.
http app routing Wymagane do zapisu uprawnienia do "losowej nazwy". aksapp.io.
container insights Wymagane do udzielenia uprawnień do obszaru roboczego usługi Log Analytics.

Podsumowanie

Wyświetl tabelę, aby uzyskać krótkie podsumowanie sposobu uwierzytelniania użytkowników na platformie Kubernetes po włączeniu integracji z firmą Microsoft Entra. We wszystkich przypadkach sekwencja poleceń użytkownika to:

  1. Uruchom polecenie az login , aby uwierzytelnić się na platformie Azure.

  2. Uruchom polecenie az aks get-credentials , aby pobrać poświadczenia dla klastra do programu .kube/config.

  3. Uruchom kubectl polecenia.

    • Pierwsze polecenie może wyzwolić uwierzytelnianie oparte na przeglądarce w celu uwierzytelnienia w klastrze, zgodnie z opisem w poniższej tabeli.

W witrynie Azure Portal można znaleźć:

  • Przyznanie roli (przyznanie roli RBAC platformy Azure) określone w drugiej kolumnie jest wyświetlane na karcie Kontrola dostępu.
  • Grupa Cluster Administracja Microsoft Entra jest wyświetlana na karcie Konfiguracja.
    • Znaleziono również nazwę --aad-admin-group-object-ids parametru w interfejsie wiersza polecenia platformy Azure.
opis Wymagane przyznanie roli Administratorzy klastra — grupy firmy Microsoft Kiedy używać
Starsze logowanie administratora przy użyciu certyfikatu klienta Rola Administracja usługi Azure Kubernetes Service. Ta rola umożliwia az aks get-credentials używanie z flagą --admin , która pobiera starszy certyfikat administratora klastra (innego niż Microsoft Entra) do użytkownika .kube/config. Jest to jedyny cel "Azure Kubernetes Administracja Role". nie dotyczy Jeśli użytkownik zostanie trwale zablokowany, nie mając dostępu do prawidłowej grupy microsoft Entra z dostępem do klastra.
Identyfikator entra firmy Microsoft z ręcznym (Cluster)RoleBindings Rola użytkownika klastra usługi Azure Kubernetes Service. Rola "Użytkownik" umożliwia az aks get-credentials używanie jej bez flagi --admin . (Jest to jedyny cel "Rola użytkownika klastra usługi Azure Kubernetes Service"). Wynikiem, w klastrze z obsługą identyfikatorów Entra firmy Microsoft, jest pobranie pustego wpisu do .kube/configprogramu , który wyzwala uwierzytelnianie oparte na przeglądarce, gdy jest on używany jako pierwszy przez kubectlprogram . Użytkownik nie należy do żadnej z tych grup. Ponieważ użytkownik nie należy do żadnych grup klastra Administracja, ich prawa będą całkowicie kontrolowane przez wszystkie roleBindings lub ClusterRoleBindings, które zostały skonfigurowane przez administratorów klastra. Grupa RoleBindings (Cluster)RoleBindings nominuje użytkowników firmy Microsoft entra lub grupy Microsoft Entra jako grupy subjects. Jeśli takie powiązania nie zostały skonfigurowane, użytkownik nie będzie mógł wykonać żadnych kubectl poleceń. Jeśli chcesz uzyskać szczegółową kontrolę dostępu i nie używasz kontroli dostępu na podstawie ról platformy Azure dla autoryzacji kubernetes. Należy pamiętać, że użytkownik, który konfiguruje powiązania, musi zalogować się za pomocą jednej z innych metod wymienionych w tej tabeli.
Microsoft Entra ID by member of admin group (Identyfikator entra firmy Microsoft według członka grupy administracyjnej) Jak wyżej Użytkownik jest członkiem jednej z wymienionych tutaj grup. Usługa AKS automatycznie generuje klasterRoleBinding, który wiąże wszystkie wymienione grupy z rolą cluster-admin Kubernetes. Dlatego użytkownicy w tych grupach mogą uruchamiać wszystkie kubectl polecenia jako cluster-admin. Jeśli chcesz wygodnie udzielić użytkownikom pełnych praw administratora i nie używasz kontroli dostępu opartej na rolach platformy Azure na potrzeby autoryzacji na platformie Kubernetes.
Microsoft Entra ID with Azure RBAC for Kubernetes Authorization Dwie role:
Najpierw rola użytkownika klastra usługi Azure Kubernetes Service (jak pokazano powyżej).
Po drugie, jeden z "RBAC usługi Azure Kubernetes Service..." role wymienione powyżej lub własną alternatywę niestandardową.
Pole Role administratora na karcie Konfiguracja nie ma znaczenia, gdy włączono kontrolę dostępu opartą na rolach platformy Azure dla autoryzacji platformy Kubernetes. Używasz kontroli dostępu opartej na rolach platformy Azure na potrzeby autoryzacji platformy Kubernetes. Takie podejście zapewnia szczegółową kontrolę bez konieczności konfigurowania funkcji RoleBindings lub ClusterRoleBindings.

Następne kroki

Aby uzyskać więcej informacji na temat podstawowych pojęć związanych z platformą Kubernetes i usługą AKS, zobacz następujące artykuły: