Delen via


Toegangs- en identiteitsopties voor AKS ingeschakeld door Azure Arc

Van toepassing op: AKS op Azure Local, versie 23H2

U kunt de toegang tot Kubernetes-clusters op verschillende manieren verifiëren, autoriseren, beveiligen en beheren:

Kubernetes RBAC en Azure RBAC helpen u bij het beveiligen van uw clustertoegang en bieden alleen de minimaal vereiste machtigingen voor ontwikkelaars en operators.

In dit artikel worden de belangrijkste concepten geïntroduceerd waarmee u machtigingen in AKS kunt verifiëren en toewijzen.

Kubernetes RBAC

Kubernetes RBAC biedt gedetailleerde filtering van gebruikersacties. Met dit controlemechanisme:

  • U wijst gebruikers of gebruikersgroepen machtigingen toe voor het maken en wijzigen van resources of het weergeven van logboeken van het uitvoeren van toepassingsworkloads.
  • U kunt machtigingen instellen voor één naamruimte of voor het hele AKS-cluster.
  • U maakt rollen voor het definiëren van machtigingen en wijst deze rollen vervolgens toe aan gebruikers met rolbindingen.

Zie Kubernetes RBAC-autorisatie gebruiken voor meer informatie.

Rollen en ClusterRoles

Rollen

Voordat u machtigingen toewijst aan gebruikers met Kubernetes RBAC, definieert u gebruikersmachtigingen als rol. Machtigingen verlenen binnen een Kubernetes-naamruimte met behulp van rollen.

Kubernetes-rollen verlenen machtigingen; ze weigeren geen machtigingen. Als u machtigingen wilt verlenen voor het hele cluster of voor clusterbronnen buiten een bepaalde naamruimte, kunt u ClusterRoles gebruiken.

ClusterRoles

Een ClusterRole verleent en past machtigingen toe op resources in het hele cluster, niet op een specifieke naamruimte.

RoleBindings en ClusterRoleBindings

Zodra u rollen definieert voor het verlenen van machtigingen aan resources, wijst u deze Kubernetes RBAC-machtigingen toe met een RoleBinding. Als uw AKS-cluster kan worden geïntegreerd met Microsoft Entra ID, verleent RoleBindings machtigingen aan Microsoft Entra-gebruikers om acties in het cluster uit te voeren. Toegang beheren met Microsoft Entra ID en Kubernetes RBAC

RoleBindings

Wijs rollen toe aan gebruikers voor een bepaalde naamruimte met behulp van RoleBindings. Met RoleBindings kunt u één AKS-cluster logisch scheiden, zodat gebruikers alleen toegang hebben tot de toepassingsresources in hun toegewezen naamruimte.

Gebruik ClusterRoleBindings om rollen in het hele cluster te binden of om clusterbronnen buiten een bepaalde naamruimte te koppelen.

ClusterRoleBinding

Met een ClusterRoleBinding koppelt u rollen aan gebruikers en past u deze toe op resources in het hele cluster, niet op een specifieke naamruimte. Met deze methode kunt u beheerders of ondersteuningstechnici toegang verlenen tot alle resources in het AKS-cluster.

Kubernetes-serviceaccounts

Serviceaccounts zijn een van de primaire gebruikerstypen in Kubernetes. De Kubernetes-API bevat en beheert serviceaccounts. Serviceaccountreferenties worden opgeslagen als Kubernetes-geheimen, zodat ze kunnen worden gebruikt door geautoriseerde pods om te communiceren met de API-server. De meeste API-aanvragen bieden een verificatietoken voor een serviceaccount of een normaal gebruikersaccount.

Normale gebruikersaccounts bieden meer traditionele toegang voor menselijke beheerders of ontwikkelaars, niet alleen services en processen. Hoewel Kubernetes geen oplossing voor identiteitsbeheer biedt voor het opslaan van gewone gebruikersaccounts en wachtwoorden, kunt u externe identiteitsoplossingen integreren in Kubernetes. Voor AKS-clusters is deze geïntegreerde identiteitsoplossing Microsoft Entra-id.

Zie Kubernetes-verificatie voor meer informatie over de identiteitsopties in Kubernetes.

Op rollen gebaseerd toegangsbeheer van Azure

Op rollen gebaseerd toegangsbeheer van Azure (RBAC) is een autorisatiesysteem dat is gebouwd op Azure Resource Manager , dat gedetailleerd toegangsbeheer van Azure-resources biedt.

RBAC-systeem Beschrijving
Kubernetes RBAC Ontworpen om te werken met Kubernetes-resources binnen uw AKS-cluster.
Azure RBAC Ontworpen om te werken aan resources binnen uw Azure-abonnement.

Met Azure RBAC maakt u een roldefinitie met een overzicht van de machtigingen die moeten worden toegepast. Vervolgens wijst u een gebruiker of groep deze roldefinitie toe via een roltoewijzing voor een bepaald bereik. Het bereik kan een afzonderlijke resource, een resourcegroep of in het abonnement zijn.

Zie Wat is op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC)?

Er zijn twee vereiste toegangsniveaus om een AKS Arc-cluster volledig te kunnen gebruiken:

  • Open de AKS-resource in uw Azure-abonnement.
    • Beheer het schalen of upgraden van uw cluster met behulp van de AKS die is ingeschakeld door Azure Arc-API's.
    • Haal uw beheerder, kubeconfig op basis van certificaten op.
    • Haal uw Kubeconfig met Entra-id op.
  • Toegang tot de Kubernetes-API. Deze toegang wordt beheerd door:
    • Kubernetes RBAC of
    • Azure RBAC integreren met AKS voor Kubernetes-autorisatie.

Azure RBAC om toegang tot de AKS-resource te autoriseren

Met Azure RBAC kunt u uw gebruikers (of identiteiten) gedetailleerde toegang bieden tot AKS-resources in een of meer abonnementen. Er zijn drie rollen beschikbaar voor deze besturingsvlakactie: Azure Kubernetes Service Arc-clusterbeheerderrol, Azure Kubernetes Service Arc-clustergebruikersrol en rol Azure Kubernetes Service Arc-inzender. Elke rol heeft een ander machtigingsbereik, zoals beschreven in ingebouwde Azure-rollen voor containers. U kunt bijvoorbeeld de rol Azure Kubernetes Service Arc-inzender gebruiken om uw cluster te maken, te schalen en bij te werken. Ondertussen heeft een andere gebruiker met de rol Azure Kubernetes Service Arc-clusterbeheerder alleen toestemming om de kubeconfig-beheerder op te halen.

Azure RBAC voor Kubernetes-autorisatie

Met de Integratie van Azure RBAC maakt AKS gebruik van een Kubernetes-autorisatiewebhookserver, zodat u met behulp van roldefinities en roltoewijzingen van Microsoft Entra geïntegreerde Kubernetes-clusterresourcemachtigingen en -toewijzingen kunt beheren.

Diagram van autorisatiestroom.

Zoals in dit diagram wordt weergegeven, volgen alle aanvragen voor de Kubernetes-API bij het gebruik van de Azure RBAC-integratie dezelfde verificatiestroom zoals beschreven in Microsoft Entra-integratie.

Als de identiteit die de aanvraag indient aanwezig is in Microsoft Entra-id, teams van Azure met Kubernetes RBAC om de aanvraag te autoriseren. Als de identiteit buiten Microsoft Entra-id bestaat (bijvoorbeeld een Kubernetes-serviceaccount), wordt autorisatie uitgesteld tot de normale Kubernetes RBAC.

In dit scenario gebruikt u Azure RBAC-mechanismen en API's om ingebouwde rollen van gebruikers toe te wijzen of aangepaste rollen te maken, net zoals bij Kubernetes-rollen.

Met deze functie geeft u niet alleen gebruikers machtigingen voor de AKS-resource in abonnementen, maar u configureert ook de rol en machtigingen voor binnen elk van deze clusters die de Toegang tot de Kubernetes-API beheren. Er zijn vier ingebouwde rollen beschikbaar voor deze gegevensvlakactie, elk met een eigen bereik van machtigingen, zoals beschreven in de sectie ingebouwde rollen .

Belangrijk

U moet Azure RBAC inschakelen voor Kubernetes-autorisatie voordat u roltoewijzing uitvoert. Zie Azure RBAC gebruiken voor Kubernetes-autorisatie voor meer informatie en stapsgewijze instructies.

Ingebouwde rollen

AKS ingeschakeld door Arc biedt de volgende vijf ingebouwde rollen. Ze zijn vergelijkbaar met de ingebouwde Kubernetes-rollen met enkele verschillen, zoals het ondersteunen van CRD's. Bekijk de volledige lijst met acties die zijn toegestaan voor elke ingebouwde Azure-rol.

Rol Beschrijving
Kubernetes-clustergebruiker met Azure Arc Hiermee kunt u het kubeconfig-bestand op basis van Cluster Connect ophalen om clusters vanaf elke locatie te beheren.
Azure Arc Kubernetes Viewer Staat alleen-lezentoegang toe om de meeste objecten in een naamruimte te zien.
Het weergeven van geheimen is niet toegestaan, omdat leesmachtigingen voor geheimen toegang tot ServiceAccount-referenties in de naamruimte mogelijk maken. Deze referenties staan op hun beurt API-toegang toe via die ServiceAccount-waarde (een vorm van escalatie van bevoegdheden).
Azure Arc Kubernetes Writer Hiermee staat u lees-/schrijftoegang toe tot de meeste objecten in een naamruimte.
Het weergeven of wijzigen van rollen of rolbindingen is niet toegestaan. Deze rol biedt echter toegang tot geheimen en het uitvoeren van pods als elke ServiceAccount-waarde in de naamruimte, zodat deze kan worden gebruikt om de API-toegangsniveaus van een dergelijke ServiceAccount-waarde in de naamruimte te verkrijgen.
Azure Arc Kubernetes-beheerder Hiermee staat u beheerderstoegang toe. Het is bedoeld om te worden verleend binnen een naamruimte via RoleBinding. Als u deze gebruikt in RoleBinding, is het mogelijk om lees-/schrijftoegang te krijgen tot de meeste resources in een naamruimte, inclusief de mogelijkheid om rollen en rolbindingen in de naamruimte te maken. Met deze rol is schrijftoegang tot het resourcequotum of de naamruimte zelf niet toegestaan.
Azure Arc Kubernetes-clusterbeheerder Hiermee staat u 'superuser'-toegang toe om elke actie op elke resource uit te voeren. Wanneer u deze gebruikt in ClusterRoleBinding, krijgt u volledige controle over elke resource in het cluster en in alle naamruimten. Wanneer u deze gebruikt in RoleBinding, krijgt u volledige controle over elke resource in de naamruimte van de rolbinding, inclusief de naamruimte zelf.

Microsoft Entra-integratie

Verbeter de beveiliging van uw AKS-cluster met Microsoft Entra-integratie. Microsoft Entra ID is gebouwd op basis van bedrijfsidentiteitsbeheer en is een multitenant, cloudservice voor adreslijst- en identiteitsbeheer die kerndirectoryservices, toegangsbeheer voor toepassingen en identiteitsbeveiliging combineert. Met Microsoft Entra ID kunt u on-premises identiteiten integreren in AKS-clusters om één bron te bieden voor accountbeheer en beveiliging.

Stroomdiagram met Entra-integratie.

Met geïntegreerde AKS-clusters van Microsoft Entra kunt u gebruikers of groepen toegang verlenen tot Kubernetes-resources binnen een naamruimte of in het cluster.

  • Voer de opdracht az aksarc get-credentials uit om een kubectl-configuratiecontext te verkrijgen.
  • Wanneer een gebruiker met het AKS-cluster communiceert met behulp van kubectl, wordt hij of zij gevraagd zich aan te melden met de Microsoft Entra-referenties.

Deze benadering biedt één bron voor gebruikersaccountbeheer en wachtwoordreferenties. De gebruiker heeft alleen toegang tot de resources zoals gedefinieerd door de Kubernetes-clusterbeheerder.

Microsoft Entra-verificatie wordt geleverd aan AKS-clusters met OpenID Connect. OpenID Connect is een identiteitslaag die is gebouwd boven op het OAuth 2.0-protocol. Zie de OpenID Connect-documentatie voor meer informatie over OpenID Connect. Vanuit het Kubernetes-cluster wordt webhooktokenverificatie gebruikt om verificatietokens te verifiëren. Verificatie van webhooktoken wordt geconfigureerd en beheerd als onderdeel van het AKS-cluster.

Samenvatting

De volgende tabel bevat een overzicht van hoe gebruikers zich kunnen verifiëren bij Kubernetes wanneer Microsoft Entra-integratie is ingeschakeld. In alle gevallen is de volgorde van opdrachten:

  1. Uitvoeren az login om te verifiëren bij Azure.
  2. Voer deze az aksarc get-credentials opdracht uit om referenties voor het Kubernetes-cluster te downloaden naar .kube/config.
  3. Voer opdrachten uit kubectl .
    • Met de eerste opdracht kan verificatie op basis van browsers worden geactiveerd om te verifiëren bij het Kubernetes-cluster, zoals beschreven in de volgende tabel.
Beschrijving Roltoe kennen vereist Microsoft Entra-groepen voor clusterbeheerder Wanneer gebruiken
Beheerdersaanmelding met behulp van clientcertificaat Azure Kubernetes Service Arc-clusterbeheerderrol. Deze rol kan az aksarc get-credentials worden gebruikt met de --admin vlag, waarmee een niet-Microsoft Entra-clusterbeheerdercertificaat wordt gedownload naar de .kube/config van de gebruiker. Dit is het enige doel van de azure Kubernetes-beheerdersrol. n.v.t. Als u permanent wordt geblokkeerd door geen toegang te hebben tot een geldige Microsoft Entra-groep met toegang tot uw cluster.
Microsoft Entra-id met handmatige (cluster) RoleBindings Gebruikersrol Azure Kubernetes Service Arc-cluster. Met de gebruikersrol kan az aksarc get-credentials zonder de --admin vlag worden gebruikt. Dit is het enige doel van de gebruikersrol Azure Kubernetes Service-cluster .) Het resultaat, op een cluster met Microsoft Entra-id's, is het downloaden van een lege vermelding in .kube/config, die verificatie op basis van een browser activeert wanneer deze voor het eerst wordt gebruikt door kubectl. Omdat de gebruiker zich niet in een clusterbeheerdergroep bevindt, worden hun rechten volledig beheerd door RoleBindings of ClusterRoleBindings die zijn ingesteld door clusterbeheerders. RoleBindings (cluster) nomineren Microsoft Entra-gebruikers of Microsoft Entra-groepen als onderwerp. Als dergelijke bindingen niet zijn ingesteld, kan de gebruiker geen kubectl-opdrachten uitvoeren. Als u gedetailleerd toegangsbeheer wilt en u geen Azure RBAC gebruikt voor Kubernetes-autorisatie. De gebruiker die de bindingen instelt, moet zich aanmelden met een van de andere methoden die in deze tabel worden vermeld.
Microsoft Entra ID by member of cluster admin Microsoft Entra group (set using --aad-admin-group-object-ids flag in Azure CLI) Hetzelfde als vorige. Gebruiker is lid van een van de hier vermelde groepen. AKS genereert automatisch een ClusterRoleBinding waarmee alle vermelde groepen worden gekoppeld aan de cluster-admin Kubernetes-rol. Gebruikers in deze groepen kunnen dus alle kubectl opdrachten uitvoeren als cluster-admin. Als u gebruikers volledige beheerdersrechten wilt verlenen en azure RBAC niet gebruikt voor Kubernetes-autorisatie.
Microsoft Entra-id met Azure RBAC voor Kubernetes-autorisatie Twee rollen:
Gebruikersrol Azure Kubernetes Service Arc-cluster (zoals eerder beschreven).
Een van de Azure Arc Kubernetes-rollen die eerder zijn beschreven, of uw eigen aangepaste alternatief.
Het veld Beheerdersrollen op het tabblad Configuratie is niet relevant wanneer Azure RBAC voor Kubernetes-autorisatie is ingeschakeld. U gebruikt Azure RBAC voor Kubernetes-autorisatie. Deze aanpak biedt u nauwkeurige controle, zonder dat u RoleBindings of ClusterRoleBindings hoeft in te stellen.

Volgende stappen