Sdílet prostřednictvím


Možnosti přístupu a identit pro AKS povolené službou Azure Arc

Platí pro: AKS v Azure Local, verze 23H2

Přístup ke clusterům Kubernetes můžete ověřovat, autorizovat, zabezpečit a řídit různými způsoby:

Kubernetes RBAC a Azure RBAC pomáhají zabezpečit přístup ke clusteru a poskytovat jenom minimální požadovaná oprávnění vývojářům a operátorům.

Tento článek představuje základní koncepty, které vám pomůžou ověřovat a přiřazovat oprávnění v AKS.

Kubernetes RBAC

Kubernetes RBAC poskytuje podrobné filtrování uživatelských akcí. Pomocí tohoto kontrolního mechanismu:

  • Uživatelům nebo skupinám uživatelů přiřadíte oprávnění k vytváření a úpravám prostředků nebo zobrazení protokolů ze spouštění úloh aplikace.
  • Oprávnění můžete nastavit na jeden obor názvů nebo v celém clusteru AKS.
  • Vytvoříte role pro definování oprávnění a potom tyto role přiřadíte uživatelům s vazbami rolí.

Další informace najdete v tématu Použití autorizace RBAC Kubernetes.

Role a role clusteru

Role

Před přiřazením oprávnění uživatelům pomocí RBAC Kubernetes definujete uživatelská oprávnění jako roli. Udělte oprávnění v rámci oboru názvů Kubernetes pomocí rolí.

Role Kubernetes udělují oprávnění; nezamítají oprávnění. Pokud chcete udělit oprávnění v celém clusteru nebo prostředkům clusteru mimo daný obor názvů, můžete použít role clusteru.

Role clusteru

Role clusteru uděluje a aplikuje oprávnění na prostředky v celém clusteru, nikoli na konkrétní obor názvů.

Vazby rolí a vazby clusteru

Jakmile definujete role pro udělení oprávnění k prostředkům, přiřadíte tato oprávnění RBAC Kubernetes pomocí roleBinding. Pokud se váš cluster AKS integruje s ID Microsoft Entra, roleBindings udělují uživatelům Microsoft Entra oprávnění k provádění akcí v rámci clusteru. Viz Řízení přístupu pomocí Microsoft Entra ID a RBAC Kubernetes

Vazby rolí

Přiřaďte role uživatelům pro daný obor názvů pomocí rolíBindings. Pomocí roleBindings můžete logicky oddělit jeden cluster AKS a umožnit uživatelům přístup k prostředkům aplikace pouze v jejich přiřazeném oboru názvů.

K vytvoření vazby rolí v celém clusteru nebo k prostředkům clusteru mimo daný obor názvů použijte clusterRoleBindings.

Vazby rolí clusteru

Pomocí clusterRoleBinding svážete role s uživateli a použijete je na prostředky v celém clusteru, ne na konkrétní obor názvů. Tento přístup umožňuje správcům nebo technikům podpory udělit přístup ke všem prostředkům v clusteru AKS.

Účty služby Kubernetes

Účty služeb jsou jedním z primárních typů uživatelů v Kubernetes. Rozhraní API Kubernetes uchovává a spravuje účty služeb. Přihlašovací údaje účtu služby se ukládají jako tajné kódy Kubernetes, což umožňuje jejich použití autorizovanými pody ke komunikaci se serverem rozhraní API. Většina požadavků rozhraní API poskytuje ověřovací token pro účet služby nebo běžný uživatelský účet.

Normální uživatelské účty umožňují tradičnější přístup pro lidské správce nebo vývojáře, nejen služby a procesy. I když Kubernetes neposkytuje řešení pro správu identit pro ukládání běžných uživatelských účtů a hesel, můžete do Kubernetes integrovat externí řešení identit. Pro clustery AKS je toto integrované řešení identit Microsoft Entra ID.

Další informace o možnostech identit v Kubernetes najdete v tématu Ověřování Kubernetes.

Řízení přístupu na základě rolí Azure

Řízení přístupu na základě role v Azure (RBAC) je autorizační systém založený na Azure Resource Manageru , který poskytuje jemně odstupňovanou správu přístupu k prostředkům Azure.

Systém RBAC Popis
Kubernetes RBAC Navržené pro práci s prostředky Kubernetes v rámci clusteru AKS.
Azure RBAC Navržené tak, aby fungovaly na prostředcích v rámci vašeho předplatného Azure.

Pomocí Azure RBAC vytvoříte definici role, která popisuje oprávnění, která se mají použít. Potom přiřadíte uživateli nebo skupině tuto definici role prostřednictvím přiřazení role pro konkrétní obor. Oborem může být jednotlivý prostředek, skupina prostředků nebo předplatné.

Další informace najdete v tématu Co je řízení přístupu na základě role v Azure (Azure RBAC)?

K plnému provozu clusteru AKS Arc existují dvě požadované úrovně přístupu:

  • Získejte přístup k prostředku AKS ve vašem předplatném Azure.
    • Řízení škálování nebo upgradu clusteru pomocí AKS povolených rozhraními API služby Azure Arc
    • Stáhněte správce , kubeconfig založený na certifikátech.
    • Stáhněte si kubeconfig s povoleným ID Entra.
  • Přístup k rozhraní Kubernetes API Tento přístup je řízen některým z těchto:
    • Kubernetes RBAC nebo
    • Integrace Azure RBAC s AKS pro autorizaci Kubernetes

Azure RBAC pro autorizaci přístupu k prostředku AKS

Pomocí Azure RBAC můžete uživatelům (nebo identitám) poskytnout podrobný přístup k prostředkům AKS v jednom nebo několika předplatných. Pro tuto akci řídicí roviny jsou k dispozici tři role: role správce clusteru Azure Kubernetes Service Arc, role uživatele clusteru Azure Kubernetes Service Arc a role přispěvatele arc služby Azure Kubernetes Service. Každá role má jiný obor oprávnění, jak je popsáno v předdefinovaných rolích Azure pro kontejnery. K vytváření, škálování a upgradu clusteru můžete například použít roli Přispěvatel služby Azure Kubernetes Service Arc. Mezitím má jiný uživatel s rolí správce clusteru Azure Kubernetes Service Arc oprávnění ke stažení kubeconfig správce.

Azure RBAC pro autorizaci Kubernetes

S integrací Azure RBAC používá AKS server webhooku autorizace Kubernetes, abyste mohli spravovat oprávnění a přiřazení prostředků clusteru Kubernetes integrovaných v Microsoft Entra pomocí definice role a přiřazení rolí Azure.

Diagram toku autorizace

Jak je znázorněno v tomto diagramu, když používáte integraci Azure RBAC, všechny požadavky na rozhraní API Kubernetes se řídí stejným tokem ověřování, jak je popsáno v integraci Microsoft Entra.

Pokud identita provádějící požadavek existuje v Microsoft Entra ID, týmy Azure s RBAC Kubernetes k autorizaci požadavku. Pokud identita existuje mimo Microsoft Entra ID (například účet služby Kubernetes), autorizační deferace normálního řízení přístupu na základě role Kubernetes.

V tomto scénáři použijete mechanismy a rozhraní API Azure RBAC k přiřazování předdefinovaných rolí uživatelů nebo vytváření vlastních rolí stejně jako u rolí Kubernetes.

Díky této funkci nejen udělíte uživatelům oprávnění k prostředku AKS napříč předplatnými, ale také nakonfigurujete roli a oprávnění pro každý z těchto clusterů, které řídí přístup k rozhraní API Kubernetes. Pro tuto akci roviny dat jsou k dispozici čtyři předdefinované role, z nichž každá má vlastní obor oprávnění, jak je popsáno v části Předdefinované role .

Důležité

Před přiřazením role musíte povolit Azure RBAC pro autorizaci Kubernetes. Další podrobnosti a podrobné pokyny najdete v tématu Použití Azure RBAC pro autorizaci Kubernetes.

Předdefinované role

Služba AKS povolená službou Arc poskytuje následující pět předdefinovaných rolí. Jsou podobné předdefinovaným rolím Kubernetes s několika rozdíly, jako je podpora CRD. Podívejte se na úplný seznam akcí povolených každou integrovanou rolí Azure.

Role Popis
Uživatel clusteru Kubernetes s podporou Azure Arc Umožňuje načíst soubor kubeconfig založený na připojení clusteru ke správě clusterů odkudkoli.
Prohlížeč Kubernetes Azure Arc Umožňuje přístup jen pro čtení k zobrazení většiny objektů v oboru názvů.
Nepovoluje zobrazování tajných kódů, protože oprávnění ke čtení tajných kódů umožňuje přístup k přihlašovacím údajům ServiceAccount v oboru názvů. Tyto přihlašovací údaje zase umožňují přístup k rozhraní API prostřednictvím této hodnoty ServiceAccount (forma eskalace oprávnění).
Azure Arc Kubernetes Writer Umožňuje přístup pro čtení a zápis k většině objektů v oboru názvů.
Nepovoluje zobrazení nebo úpravu rolí nebo vazeb rolí. Tato role však umožňuje přístup k tajným kódům a spouštění podů jako jakékoli hodnoty ServiceAccount v oboru názvů, takže ji lze použít k získání úrovní přístupu rozhraní API libovolné hodnoty ServiceAccount v oboru názvů.
Správce Kubernetes Azure Arc Umožňuje přístup správce. Účelem je udělit v rámci oboru názvů prostřednictvím roleBinding. Pokud ji použijete ve vazbě rolí, umožní přístup pro čtení a zápis k většině prostředků v oboru názvů, včetně možnosti vytvářet role a vazby rolí v rámci oboru názvů. Tato role neumožňuje přístup k zápisu do kvóty prostředků ani k samotnému oboru názvů.
Správce clusteru Azure Arc Kubernetes Umožňuje přístup superuživatele k provedení jakékoli akce u libovolného prostředku. Když ji použijete v ClusterRoleBinding, poskytuje úplnou kontrolu nad každým prostředkem v clusteru a ve všech oborech názvů. Když ji použijete ve vazbě rolí, poskytuje úplnou kontrolu nad každým prostředkem v oboru názvů vazby role, včetně samotného oboru názvů.

Integrace Microsoft Entra

Vylepšení zabezpečení clusteru AKS pomocí integrace Microsoft Entra Microsoft Entra ID je založená na prostředí pro správu podnikových identit. Je to víceklient, cloudová adresářová služba a služba pro správu identit, která kombinuje základní adresářové služby, správu přístupu k aplikacím a ochranu identit. S ID Microsoft Entra můžete integrovat místní identity do clusterů AKS a poskytnout tak jeden zdroj pro správu a zabezpečení účtů.

Vývojový diagram znázorňující integraci Entra

Pomocí clusterů AKS integrovaných microsoftem Entra můžete uživatelům nebo skupinám udělit přístup k prostředkům Kubernetes v rámci oboru názvů nebo napříč clusterem.

  • Pokud chcete získat kontext konfigurace kubectl , spusťte příkaz az aksarc get-credentials .
  • Když uživatel komunikuje s clusterem AKS pomocí kubectl, zobrazí se výzva k přihlášení pomocí svých přihlašovacích údajů Microsoft Entra.

Tento přístup poskytuje jeden zdroj pro správu uživatelských účtů a přihlašovací údaje hesla. Uživatel má přístup pouze k prostředkům definovaným správcem clusteru Kubernetes.

Ověřování Microsoft Entra se poskytuje clusterům AKS s OpenID Connect. OpenID Connect je vrstva identit založená na protokolu OAuth 2.0. Další informace o openID Connect najdete v dokumentaci k OpenID Connect. V clusteru Kubernetes se k ověření ověřovacích tokenů používá ověřování tokenů Webhooku. Ověřování tokenu Webhooku se konfiguruje a spravuje jako součást clusteru AKS.

Shrnutí

Následující tabulka obsahuje souhrn toho, jak se uživatelé můžou ověřovat v Kubernetes, když je povolená integrace Microsoft Entra. Ve všechpřípadechch

  1. Spusťte az login ověření v Azure.
  2. Spusťte az aksarc get-credentials stahování přihlašovacích údajů pro cluster Kubernetes do .kube/config.
  3. Spusťte kubectl příkazy.
    • První příkaz může aktivovat ověřování na základě prohlížeče pro ověření v clusteru Kubernetes, jak je popsáno v následující tabulce.
Popis Požadované udělení role Skupiny Microsoft Entra pro správce clusteru Vhodné použití služby
Přihlášení správce pomocí klientského certifikátu Role správce clusteru Azure Kubernetes Service Arc Tato role umožňuje az aksarc get-credentials použít s --admin příznakem, který stáhne certifikát správce clusteru Entra od jiné společnosti než Microsoft do souboru .kube/config uživatele. Toto je jediný účel role správce Azure Kubernetes. Není k dispozici Pokud jste trvale blokovaní tím, že nemáte přístup k platné skupině Microsoft Entra s přístupem ke clusteru.
Microsoft Entra ID s ručním (clusterem) RoleBindings Role uživatele clusteru Azure Kubernetes Service Arc Role Uživatel umožňuje az aksarc get-credentials používat bez příznaku --admin . Toto je jediný účel role uživatele clusteru Azure Kubernetes Service.) Výsledkem je stažení prázdné položky do souboru .kube/config v clusteru s podporou ID Microsoft Entra, který při prvním použití kubectl aktivuje ověřování na základě prohlížeče. Vzhledem k tomu, že uživatel není v žádné skupině pro správu clusteru, řídí se jejich práva výhradně všemi vazbami rolí nebo rolemi clusteru, které jsou nastavené správci clusteru. RoleBindings (cluster) nominuje uživatele Microsoft Entra nebo skupiny Microsoft Entra jako jejich předměty. Pokud nebyly nastaveny žádné takové vazby, uživatel nemůže vykřižovat žádné příkazy kubectl . Pokud chcete jemně odstupňované řízení přístupu a nepoužíváte Azure RBAC pro autorizaci Kubernetes. Všimněte si, že uživatel, který nastaví vazby, se musí přihlásit pomocí jedné z dalších metod uvedených v této tabulce.
ID Microsoft Entra podle člena skupiny Microsoft Entra správce clusteru (nastavené pomocí --aad-admin-group-object-ids příznaku v Azure CLI) Stejné jako předchozí. Uživatel je členem jedné ze skupin uvedených tady. AKS automaticky vygeneruje clusterRoleBinding, který sváže všechny uvedené skupiny s cluster-admin rolí Kubernetes. Takže uživatelé v těchto skupinách mohou spouštět všechny kubectl příkazy jako cluster-admin. Pokud chcete uživatelům udělit úplná oprávnění správce a nepoužíváte Azure RBAC pro autorizaci Kubernetes.
Id Microsoft Entra s Azure RBAC pro autorizaci Kubernetes Dvě role:
Role uživatele clusteru Azure Kubernetes Service Arc (jak je popsáno výše).
Jedna z rolí Kubernetes Azure Arc popsaných výše nebo vlastní alternativa.
Pole Role správce na kartě Konfigurace není relevantní, pokud je povolená autorizace Azure RBAC pro Kubernetes. K autorizaci Kubernetes používáte Azure RBAC. Tento přístup poskytuje jemně odstupňované řízení, aniž byste museli nastavovat vazby rolí nebo vazby rolí clusteru.

Další kroky