Toegangs- en identiteitsopties voor Azure Kubernetes Service (AKS)Access and identity options for Azure Kubernetes Service (AKS)

U kunt op verschillende manieren toegang tot Kubernetes-clusters verifiëren, autoriseren, beveiligen en beheren.You can authenticate, authorize, secure, and control access to Kubernetes clusters in a variety of ways.

  • Met Kubernetes op rollen gebaseerd toegangs beheer (Kubernetes RBAC) kunt u gebruikers, groepen en service accounts toegang verlenen tot de resources die ze nodig hebben.Using Kubernetes role-based access control (Kubernetes RBAC), you can grant users, groups, and service accounts access to only the resources they need.
  • Met Azure Kubernetes service (AKS) kunt u de structuur van beveiliging en machtigingen verder verbeteren via Azure Active Directory en Azure RBAC.With Azure Kubernetes Service (AKS), you can further enhance the security and permissions structure via Azure Active Directory and Azure RBAC.

Met Kubernetes RBAC en AKS kunt u uw cluster toegang beveiligen en alleen de mini maal vereiste machtigingen geven aan ontwikkel aars en Opera tors.Kubernetes RBAC and AKS help you secure your cluster access and provide only the minimum required permissions to developers and operators.

In dit artikel worden de belangrijkste concepten geïntroduceerd die u helpen bij het verifiëren en toewijzen van machtigingen in AKS.This article introduces the core concepts that help you authenticate and assign permissions in AKS.

AKS-service machtigingenAKS service permissions

Bij het maken van een cluster worden door AKS de benodigde resources gegenereerd of gewijzigd (zoals Vm's en Nic's) om het cluster namens de gebruiker te maken en uit te voeren.When creating a cluster, AKS generates or modifies resources it needs (like VMs and NICs) to create and run the cluster on behalf of the user. Deze identiteit is verschillend van de identiteits machtiging van het cluster, die wordt gemaakt tijdens het maken van het cluster.This identity is distinct from the cluster's identity permission, which is created during cluster creation.

Identiteit voor het maken en gebruiken van de cluster machtigingenIdentity creating and operating the cluster permissions

De volgende machtigingen zijn vereist voor de identiteit die het cluster maakt en bewerkt.The following permissions are needed by the identity creating and operating the cluster.

MachtigingPermission RedenReason
Microsoft.Compute/diskEncryptionSets/read Vereist voor het lezen van de set-ID van de schijf versleuteling.Required to read disk encryption set ID.
Microsoft.Compute/proximityPlacementGroups/write Vereist voor het bijwerken van proximity-plaatsings groepen.Required for updating proximity placement groups.
Microsoft.Network/applicationGateways/read
Microsoft.Network/applicationGateways/write
Microsoft.Network/virtualNetworks/subnets/join/action
Vereist voor het configureren van toepassings gateways en lid worden van het subnet.Required to configure application gateways and join the subnet.
Microsoft.Network/virtualNetworks/subnets/join/action Vereist voor het configureren van de netwerk beveiligings groep voor het subnet wanneer u een aangepast VNET gebruikt.Required to configure the Network Security Group for the subnet when using a custom VNET.
Microsoft.Network/publicIPAddresses/join/action
Microsoft.Network/publicIPPrefixes/join/action
Vereist voor het configureren van de uitgaande open bare Ip's op het Standard Load Balancer.Required to configure the outbound public IPs on the Standard Load Balancer.
Microsoft.OperationalInsights/workspaces/sharedkeys/read
Microsoft.OperationalInsights/workspaces/read
Microsoft.OperationsManagement/solutions/write
Microsoft.OperationsManagement/solutions/read
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Vereist om Log Analytics-werk ruimten en Azure-bewaking voor containers te maken en bij te werken.Required to create and update Log Analytics workspaces and Azure monitoring for containers.

Machtigingen voor AKS-cluster identiteitAKS cluster identity permissions

De volgende machtigingen worden gebruikt door de AKS-cluster identiteit, die wordt gemaakt en gekoppeld aan het AKS-cluster.The following permissions are used by the AKS cluster identity, which is created and associated with the AKS cluster. Elke machtiging wordt gebruikt om de volgende redenen:Each permission is used for the reasons below:

MachtigingPermission RedenReason
Microsoft.ContainerService/managedClusters/*
Vereist voor het maken van gebruikers en het werken met het clusterRequired for creating users and operating the cluster
Microsoft.Network/loadBalancers/delete
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Vereist voor het configureren van de load balancer voor een Load Balancer-service.Required to configure the load balancer for a LoadBalancer service.
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/publicIPAddresses/read
Microsoft.Network/publicIPAddresses/write
Vereist om open bare Ip's voor een Load Balancer-service te zoeken en te configureren.Required to find and configure public IPs for a LoadBalancer service.
Microsoft.Network/publicIPAddresses/join/action Vereist voor het configureren van open bare Ip's voor een Load Balancer-service.Required for configuring public IPs for a LoadBalancer service.
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/write
Vereist voor het maken of verwijderen van beveiligings regels voor een Load Balancer-service.Required to create or delete security rules for a LoadBalancer service.
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/locations/DiskOperations/read
Vereist om AzureDisks te configureren.Required to configure AzureDisks.
Microsoft.Storage/storageAccounts/delete
Microsoft.Storage/storageAccounts/listKeys/action
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/write
Microsoft.Storage/operations/read
Vereist voor het configureren van opslag accounts voor AzureFile of AzureDisk.Required to configure storage accounts for AzureFile or AzureDisk.
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/routes/delete
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/write
Vereist voor het configureren van route tabellen en routes voor knoop punten.Required to configure route tables and routes for nodes.
Microsoft.Compute/virtualMachines/read Vereist voor het vinden van informatie voor virtuele machines in een VMAS, zoals zones, fout domein, grootte en gegevens schijven.Required to find information for virtual machines in a VMAS, such as zones, fault domain, size, and data disks.
Microsoft.Compute/virtualMachines/write Vereist om AzureDisks te koppelen aan een virtuele machine in een VMAS.Required to attach AzureDisks to a virtual machine in a VMAS.
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/instanceView/read
Dit is vereist om informatie te vinden voor virtuele machines in een schaalset voor een virtuele machine, zoals zones, fout domein, grootte en gegevens schijven.Required to find information for virtual machines in a virtual machine scale set, such as zones, fault domain, size, and data disks.
Microsoft.Network/networkInterfaces/write Vereist om een virtuele machine in een VMAS toe te voegen aan een load balancer back-end-adres groep.Required to add a virtual machine in a VMAS to a load balancer backend address pool.
Microsoft.Compute/virtualMachineScaleSets/write Vereist voor het toevoegen van een schaalset voor een virtuele machine aan een load balancer back-end-adres groepen en het uitschalen van knoop punten in een virtuele-machine schaalset.Required to add a virtual machine scale set to a load balancer backend address pools and scale out nodes in a virtual machine scale set.
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/write Vereist om AzureDisks te koppelen en een virtuele machine van een virtuele-machine schaalset toe te voegen aan de load balancer.Required to attach AzureDisks and add a virtual machine from a virtual machine scale set to the load balancer.
Microsoft.Network/networkInterfaces/read Vereist voor het zoeken naar interne Ip's en load balancer back-end-adres groepen voor virtuele machines in een VMAS.Required to search internal IPs and load balancer backend address pools for virtual machines in a VMAS.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/read Vereist voor het zoeken naar interne Ip's en load balancer back-end-adres groepen voor een virtuele machine in een schaalset met virtuele machines.Required to search internal IPs and load balancer backend address pools for a virtual machine in a virtual machine scale set.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/ipconfigurations/publicipaddresses/read Vereist voor het vinden van open bare Ip's voor een virtuele machine in een schaalset voor virtuele machines.Required to find public IPs for a virtual machine in a virtual machine scale set.
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/read
Vereist om te controleren of er een subnet bestaat voor de interne load balancer in een andere resource groep.Required to verify if a subnet exists for the internal load balancer in another resource group.
Microsoft.Compute/snapshots/delete
Microsoft.Compute/snapshots/read
Microsoft.Compute/snapshots/write
Vereist voor het configureren van moment opnamen voor AzureDisk.Required to configure snapshots for AzureDisk.
Microsoft.Compute/locations/vmSizes/read
Microsoft.Compute/locations/operations/read
Vereist voor het vinden van de grootte van virtuele machines voor het zoeken van AzureDisk-volume limieten.Required to find virtual machine sizes for finding AzureDisk volume limits.

Aanvullende machtigingen voor de cluster identiteitAdditional cluster identity permissions

Wanneer u een cluster met specifieke kenmerken maakt, hebt u de volgende extra machtigingen nodig voor de cluster identiteit.When creating a cluster with specific attributes, you will need the following additional permissions for the cluster identity. Omdat deze machtigingen niet automatisch worden toegewezen, moet u deze toevoegen aan de cluster identiteit nadat deze is gemaakt.Since these permissions are not automatically assigned, you must add them to the cluster identity after it's created.

MachtigingPermission RedenReason
Microsoft.Network/networkSecurityGroups/write
Microsoft.Network/networkSecurityGroups/read
Vereist als u een netwerk beveiligings groep gebruikt in een andere resource groep.Required if using a network security group in another resource group. Vereist voor het configureren van beveiligings regels voor een Load Balancer-service.Required to configure security rules for a LoadBalancer service.
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/join/action
Vereist als u een subnet in een andere resource groep gebruikt, zoals een aangepast VNET.Required if using a subnet in another resource group such as a custom VNET.
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Vereist als u een subnet gebruikt dat is gekoppeld aan een route tabel in een andere resource groep, zoals een aangepast VNET met een aangepaste route tabel.Required if using a subnet associated with a route table in another resource group such as a custom VNET with a custom route table. Vereist om te controleren of er al een subnet bestaat voor het subnet in de andere resource groep.Required to verify if a subnet already exists for the subnet in the other resource group.
Microsoft.Network/virtualNetworks/subnets/read Vereist als u een interne load balancer in een andere resource groep gebruikt.Required if using an internal load balancer in another resource group. Vereist om te controleren of er al een subnet bestaat voor de interne load balancer in de resource groep.Required to verify if a subnet already exists for the internal load balancer in the resource group.
Microsoft.Network/privatednszones/* Vereist als u een privé-DNS-zone gebruikt in een andere resource groep, zoals een aangepaste privateDNSZone.Required if using a private DNS zone in another resource group such as a custom privateDNSZone.

Kubernetes RBACKubernetes RBAC

Kubernetes RBAC biedt granulair filteren van gebruikers acties.Kubernetes RBAC provides granular filtering of user actions. Met dit controle mechanisme:With this control mechanism:

  • U wijst gebruikers of gebruikers groepen toe om resources te maken en te wijzigen of logboeken weer te geven van het uitvoeren van werk belastingen van toepassingen.You assign users or user groups permission to create and modify resources or view logs from running application workloads.
  • U kunt machtigingen voor een enkele naam ruimte of over het hele AKS-cluster bereiken.You can scope permissions to a single namespace or across the entire AKS cluster.
  • U maakt rollen om machtigingen te definiëren en wijst deze rollen vervolgens toe aan gebruikers met functie bindingen.You create roles to define permissions, and then assign those roles to users with role bindings.

Zie using KUBERNETES RBAC Authorization(Engelstalig) voor meer informatie.For more information, see Using Kubernetes RBAC authorization.

Rollen en ClusterRolesRoles and ClusterRoles

RollenRoles

Voordat u machtigingen toewijst aan gebruikers met Kubernetes RBAC, definieert u gebruikers machtigingen als een rol.Before assigning permissions to users with Kubernetes RBAC, you'll define user permissions as a Role. Machtigingen binnen een naam ruimte verlenen met behulp van rollen.Grant permissions within a namespace using roles.

Notitie

Kubernetes-rollen verlenen machtigingen. de machtigingen worden niet geweigerd .Kubernetes roles grant permissions; they don't deny permissions.

Als u machtigingen wilt verlenen voor het hele cluster of voor cluster bronnen buiten een bepaalde naam ruimte, kunt u in plaats daarvan ClusterRoles gebruiken.To grant permissions across the entire cluster or to cluster resources outside a given namespace, you can instead use ClusterRoles.

ClusterRolesClusterRoles

Een ClusterRole verleent en past machtigingen toe voor bronnen in het hele cluster, niet op een specifieke naam ruimte.A ClusterRole grants and applies permissions to resources across the entire cluster, not a specific namespace.

RoleBindings en ClusterRoleBindingsRoleBindings and ClusterRoleBindings

Zodra u rollen hebt gedefinieerd om machtigingen te verlenen voor resources, wijst u deze Kubernetes RBAC-machtigingen toe aan een RoleBinding.Once you've defined roles to grant permissions to resources, you assign those Kubernetes RBAC permissions with a RoleBinding. Als uw AKS-cluster wordt geïntegreerd met Azure Active Directory (Azure AD), moet RoleBindings machtigingen verlenen aan Azure AD-gebruikers om acties in het cluster uit te voeren.If your AKS cluster integrates with Azure Active Directory (Azure AD), RoleBindings grant permissions to Azure AD users to perform actions within the cluster. Zie toegang tot cluster bronnen beheren met Kubernetes op rollen gebaseerd toegangs beheer en Azure Active Directory-identiteiten.See how in Control access to cluster resources using Kubernetes role-based access control and Azure Active Directory identities.

RoleBindingsRoleBindings

Rollen toewijzen aan gebruikers voor een bepaalde naam ruimte met behulp van RoleBindings.Assign roles to users for a given namespace using RoleBindings. Met RoleBindings kunt u één AKS-cluster logisch scheiden, zodat gebruikers alleen toegang hebben tot de toepassings resources in hun toegewezen naam ruimte.With RoleBindings, you can logically segregate a single AKS cluster, only enabling users to access the application resources in their assigned namespace.

Als u rollen wilt binden in het hele cluster, of als u cluster bronnen buiten een bepaalde naam ruimte wilt koppelen, gebruikt u ClusterRoleBindings.To bind roles across the entire cluster, or to cluster resources outside a given namespace, you instead use ClusterRoleBindings.

ClusterRoleBindingClusterRoleBinding

Met een ClusterRoleBinding bindt u rollen aan gebruikers en past u deze toe op resources in het hele cluster, niet op een specifieke naam ruimte.With a ClusterRoleBinding, you bind roles to users and apply to resources across the entire cluster, not a specific namespace. Met deze aanpak kunt u beheerders of ondersteunings technici toegang verlenen tot alle resources in het AKS-cluster.This approach lets you grant administrators or support engineers access to all resources in the AKS cluster.

Notitie

Micro soft/AKS voert cluster acties uit met toestemming van de gebruiker onder een ingebouwde Kubernetes-rol aks-service en ingebouwde functie binding aks-service-rolebinding .Microsoft/AKS performs any cluster actions with user consent under a built-in Kubernetes role aks-service and built-in role binding aks-service-rolebinding.

Deze rol stelt AKS in staat om problemen met het cluster op te lossen en te diagnosticeren, maar kan geen machtigingen wijzigen of rollen of roltoewijzingen maken, of andere acties met hoge bevoegdheden.This role enables AKS to troubleshoot and diagnose cluster issues, but can't modify permissions nor create roles or role bindings, or other high privilege actions. Rollen toegang is alleen ingeschakeld onder actieve ondersteunings tickets met Just-in-time-toegang.Role access is only enabled under active support tickets with just-in-time (JIT) access. Meer informatie over AKS-ondersteunings beleid.Read more about AKS support policies.

Kubernetes-service accountsKubernetes service accounts

Service accounts zijn een van de primaire gebruikers typen in Kubernetes.Service accounts are one of the primary user types in Kubernetes. De Kubernetes-API houdt en beheert service accounts.The Kubernetes API holds and manages service accounts. De referenties van het service account worden opgeslagen als Kubernetes geheimen, zodat ze door een geautoriseerde peul kunnen worden gebruikt om te communiceren met de API-server.Service account credentials are stored as Kubernetes secrets, allowing them to be used by authorized pods to communicate with the API Server. De meeste API-aanvragen bieden een verificatie token voor een service account of een normaal gebruikers account.Most API requests provide an authentication token for a service account or a normal user account.

Normale gebruikers accounts staan meer traditionele toegang toe voor beheerders of ontwikkel aars van personen, niet alleen voor services en processen.Normal user accounts allow more traditional access for human administrators or developers, not just services and processes. Hoewel Kubernetes geen oplossing voor identiteits beheer biedt om reguliere gebruikers accounts en wacht woorden op te slaan, kunt u externe identiteits oplossingen integreren in Kubernetes.While Kubernetes doesn't provide an identity management solution to store regular user accounts and passwords, you can integrate external identity solutions into Kubernetes. Voor AKS-clusters is deze geïntegreerde identiteits oplossing Azure AD.For AKS clusters, this integrated identity solution is Azure AD.

Zie Kubernetes-verificatievoor meer informatie over de identiteits opties in Kubernetes.For more information on the identity options in Kubernetes, see Kubernetes authentication.

Azure AD-integratieAzure AD integration

Verbeter de beveiliging van uw AKS-cluster met Azure AD-integratie.Enhance your AKS cluster security with Azure AD integration. Azure AD is gebouwd op tien tallen bedrijfs identiteits beheer en is een multi tenant-, Cloud-en identiteits beheer service die basis Directory Services, Toegangs beheer voor toepassingen en identiteits beveiliging combineert.Built on decades of enterprise identity management, Azure AD is a multi-tenant, cloud-based directory and identity management service that combines core directory services, application access management, and identity protection. Met Azure AD kunt u on-premises identiteiten integreren in AKS-clusters om één bron te bieden voor account beheer en beveiliging.With Azure AD, you can integrate on-premises identities into AKS clusters to provide a single source for account management and security.

Integratie met AKS-clusters Azure Active Directory

Met Azure AD geïntegreerde AKS-clusters kunt u gebruikers of groepen toegang verlenen tot Kubernetes-resources binnen een naam ruimte of in het cluster.With Azure AD-integrated AKS clusters, you can grant users or groups access to Kubernetes resources within a namespace or across the cluster.

  1. kubectlEen gebruiker kan een configuratie context verkrijgen door de opdracht AZ AKS Get-credentials uit te voeren.To obtain a kubectl configuration context, a user runs the az aks get-credentials command.
  2. Wanneer een gebruiker met het AKS-cluster communiceert met kubectl , wordt u gevraagd zich aan te melden met hun Azure AD-referenties.When a user interacts with the AKS cluster with kubectl, they're prompted to sign in with their Azure AD credentials.

Deze benadering biedt één bron voor gebruikers account beheer en wachtwoord referenties.This approach provides a single source for user account management and password credentials. De gebruiker heeft alleen toegang tot de resources zoals gedefinieerd door de Cluster beheerder.The user can only access the resources as defined by the cluster administrator.

Azure AD-verificatie wordt geleverd voor AKS-clusters met OpenID Connect Connect.Azure AD authentication is provided to AKS clusters with OpenID Connect. OpenID Connect Connect is een id-laag die boven op het OAuth 2,0-protocol is gebouwd.OpenID Connect is an identity layer built on top of the OAuth 2.0 protocol. Voor meer informatie over OpenID Connect Connect raadpleegt u de Open-ID Connect-documentatie.For more information on OpenID Connect, see the Open ID connect documentation. Vanuit het Kubernetes-cluster wordt webhook-token verificatie gebruikt om verificatie tokens te verifiëren.From inside of the Kubernetes cluster, Webhook Token Authentication is used to verify authentication tokens. Webhook-token verificatie wordt geconfigureerd en beheerd als onderdeel van het AKS-cluster.Webhook token authentication is configured and managed as part of the AKS cluster.

Webhook en API-serverWebhook and API server

Webhook-en API-Server verificatie stroom

Zoals in de bovenstaande afbeelding wordt weer gegeven, roept de API-server de AKS-webhookserver aan en voert de volgende stappen uit:As shown in the graphic above, the API server calls the AKS webhook server and performs the following steps:

  1. kubectl maakt gebruik van de Azure AD-client toepassing voor het aanmelden van gebruikers met OAuth 2,0-autorisatie subsidie stroom.kubectl uses the Azure AD client application to sign in users with OAuth 2.0 device authorization grant flow.
  2. Azure AD biedt een access_token, id_token en een refresh_token.Azure AD provides an access_token, id_token, and a refresh_token.
  3. De gebruiker maakt een aanvraag kubectl met een access_token van kubeconfig .The user makes a request to kubectl with an access_token from kubeconfig.
  4. kubectl Hiermee wordt de access_token naar de API-server verzonden.kubectl sends the access_token to API Server.
  5. De API-server is geconfigureerd met de auth webhook-server om validatie uit te voeren.The API Server is configured with the Auth WebHook Server to perform validation.
  6. De webhookserver voor verificatie bevestigt dat de JSON Web Token hand tekening geldig is door de open bare Azure AD-ondertekeningssleutel te controleren.The authentication webhook server confirms the JSON Web Token signature is valid by checking the Azure AD public signing key.
  7. De server toepassing maakt gebruik van door de gebruiker ingevoerde referenties voor het opvragen van groepslid maatschappen van de aangemelde gebruiker vanuit de MS Graph API.The server application uses user-provided credentials to query group memberships of the logged-in user from the MS Graph API.
  8. Er wordt een antwoord verzonden naar de API-server met gebruikers gegevens zoals de claim van de user principal name (UPN) van het toegangs token en het groepslid maatschap van de gebruiker op basis van de object-ID.A response is sent to the API Server with user information such as the user principal name (UPN) claim of the access token, and the group membership of the user based on the object ID.
  9. De API voert een autorisatie besluit uit op basis van de Kubernetes Role/RoleBinding.The API performs an authorization decision based on the Kubernetes Role/RoleBinding.
  10. Na de autorisatie retourneert de API-server een reactie op kubectl .Once authorized, the API server returns a response to kubectl.
  11. kubectl geeft feedback aan de gebruiker.kubectl provides feedback to the user.

Meer informatie over het integreren van AKS met Azure AD met onze met onze AKS beheerde Azure AD-hand leiding voor integratie.Learn how to integrate AKS with Azure AD with our AKS-managed Azure AD integration how-to guide.

Op rollen gebaseerd toegangsbeheer voor AzureAzure role-based access control

Op rollen gebaseerd toegangs beheer (RBAC) van Azure is een autorisatie systeem dat is gebaseerd op Azure Resource Manager dat een nauw keurig toegangs beheer van Azure-resources biedt.Azure role-based access control (RBAC) is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

RBAC-systeemRBAC system DescriptionDescription
Kubernetes RBACKubernetes RBAC Ontworpen om te werken aan Kubernetes-resources binnen uw AKS-cluster.Designed to work on Kubernetes resources within your AKS cluster.
Azure RBACAzure RBAC Ontworpen om te werken aan resources binnen uw Azure-abonnement.Designed to work on resources within your Azure subscription.

Met Azure RBAC maakt u een roldefinitie waarin de machtigingen worden beschreven die moeten worden toegepast.With Azure RBAC, you create a role definition that outlines the permissions to be applied. Vervolgens wijst u een gebruiker of groep deze roldefinitie toe via een roltoewijzing voor een bepaald bereik.You then assign a user or group this role definition via a role assignment for a particular scope. Het bereik kan een afzonderlijke resource, een resource groep of binnen het abonnement zijn.The scope can be an individual resource, a resource group, or across the subscription.

Zie Wat is Azure Role-based Access Control (Azure RBAC)? voor meer informatie.For more information, see What is Azure role-based access control (Azure RBAC)?

Er zijn twee toegangs niveaus nodig om een AKS-cluster volledig te kunnen gebruiken:There are two levels of access needed to fully operate an AKS cluster:

Azure RBAC voor het machtigen van toegang tot de AKS-resourceAzure RBAC to authorize access to the AKS resource

Met Azure RBAC kunt u uw gebruikers (of identiteiten) voorzien van gedetailleerde toegang tot AKS-resources in een of meer abonnementen.With Azure RBAC, you can provide your users (or identities) with granular access to AKS resources across one or more subscriptions. U kunt bijvoorbeeld de rol van de Azure Kubernetes-service Inzender gebruiken om uw cluster te schalen en bij te werken.For example, you could use the Azure Kubernetes Service Contributor role to scale and upgrade your cluster. Ondertussen heeft een andere gebruiker met de rol Azure Kubernetes service cluster admin alleen toestemming voor het ophalen van de beheerder kubeconfig .Meanwhile, another user with the Azure Kubernetes Service Cluster Admin role only has permission to pull the Admin kubeconfig.

U kunt uw gebruiker ook de rol algemene Inzender geven.Alternatively, you could give your user the general Contributor role. Met de rol algemeen Inzender kunnen gebruikers de bovenstaande machtigingen en alle mogelijke acties voor de AKS-resource uitvoeren, met uitzonde ring van het beheer van machtigingen.With the general Contributor role, users can perform the above permissions and every action possible on the AKS resource, except managing permissions.

Gebruik Azure RBAC om de toegang tot het Kubernetes-configuratie bestand in AKS te definiëren.Use Azure RBAC to define access to the Kubernetes configuration file in AKS.

Azure RBAC voor Kubernetes-autorisatie (preview-versie)Azure RBAC for Kubernetes Authorization (Preview)

Met de integratie van Azure RBAC maakt AKS gebruik van een Kubernetes Authorization webhook-server, zodat u Azure AD-geïntegreerde Kubernetes-cluster resource machtigingen en-toewijzingen kunt beheren met Azure Role definition en roltoewijzingen.With the Azure RBAC integration, AKS will use a Kubernetes Authorization webhook server so you can manage Azure AD-integrated Kubernetes cluster resource permissions and assignments using Azure role definition and role assignments.

Azure RBAC voor Kubernetes-autorisatie stroom

Zoals wordt weer gegeven in het bovenstaande diagram, wordt bij het gebruik van de integratie van Azure RBAC alle aanvragen voor de Kubernetes-API dezelfde verificatie stroom gevolgd zoals wordt uitgelegd in de sectie integratie van Azure Active Directory.As shown in the above diagram, when using the Azure RBAC integration, all requests to the Kubernetes API will follow the same authentication flow as explained on the Azure Active Directory integration section.

Als de identiteit die de aanvraag maakt in azure AD bestaat, gaat Azure met Kubernetes RBAC om de aanvraag te autoriseren.If the identity making the request exists in Azure AD, Azure will team with Kubernetes RBAC to authorize the request. Als de identiteit zich buiten Azure AD (een Kubernetes-service account) bevindt, wordt de normale Kubernetes RBAC door autorisatie.If the identity exists outside of Azure AD (i.e., a Kubernetes service account), authorization will deter to the normal Kubernetes RBAC.

In dit scenario gebruikt u de methoden en Api's van Azure RBAC voor het toewijzen van ingebouwde rollen van gebruikers of het maken van aangepaste rollen, net als bij Kubernetes-rollen.In this scenario, you use Azure RBAC mechanisms and APIs to assign users built-in roles or create custom roles, just as you would with Kubernetes roles.

Met deze functie geeft u niet alleen gebruikers machtigingen voor de AKS-resource over in abonnementen, maar u kunt ook de rol en machtigingen configureren voor elk van deze clusters, waarmee de Kubernetes-API-toegang wordt beheerd.With this feature, you not only give users permissions to the AKS resource across subscriptions, but you also configure the role and permissions for inside each of those clusters controlling Kubernetes API access. U kunt bijvoorbeeld de Azure Kubernetes Service RBAC Viewer rol voor het abonnements bereik verlenen.For example, you can grant the Azure Kubernetes Service RBAC Viewer role on the subscription scope. De ontvanger van de rol kan alle Kubernetes-objecten van alle clusters weer geven zonder ze te wijzigen.The role recipient will be able to list and get all Kubernetes objects from all clusters without modifying them.

Belangrijk

U moet Azure RBAC inschakelen voor Kubernetes-autorisatie voordat u deze functie kunt gebruiken.You need to enable Azure RBAC for Kubernetes authorization before using this feature. Voor meer informatie en stapsgewijze instructies, volgt u de hand leiding Azure RBAC voor Kubernetes-autorisatie .For more details and step by step guidance, follow our Use Azure RBAC for Kubernetes Authorization how-to guide.

Ingebouwde rollenBuilt-in roles

AKS biedt de volgende vier ingebouwde rollen.AKS provides the following four built-in roles. Ze zijn vergelijkbaar met de ingebouwde rollen van Kubernetes met enkele verschillen, zoals ondersteunende CRDs.They are similar to the Kubernetes built-in roles with a few differences, like supporting CRDs. Bekijk de volledige lijst met acties die zijn toegestaan door elke ingebouwde rol van Azure.See the full list of actions allowed by each Azure built-in role.

RolRole BeschrijvingDescription
RBAC-viewer voor Azure Kubernetes serviceAzure Kubernetes Service RBAC Viewer Hiermee staat u alleen-lezen toegang toe om de meeste objecten in een naam ruimte weer te geven.Allows read-only access to see most objects in a namespace.
Het weer geven van functies of functie bindingen is niet toegestaan.Doesn't allow viewing roles or role bindings.
Kan niet weer geven Secrets .Doesn't allow viewing Secrets. Als de Secrets inhoud wordt gelezen, hebt u toegang tot ServiceAccount referenties in de naam ruimte, waardoor er API-toegang zou kunnen worden toegestaan ServiceAccount in de naam ruimte (een vorm van bevoegdheden escalation).Reading the Secrets contents enables access to ServiceAccount credentials in the namespace, which would allow API access as any ServiceAccount in the namespace (a form of privilege escalation).
RBAC-schrijver van Azure Kubernetes serviceAzure Kubernetes Service RBAC Writer Hiermee wordt lees-/schrijftoegang tot de meeste objecten in een naam ruimte toegestaan.Allows read/write access to most objects in a namespace.
Kan geen rollen of rollen bindingen weer geven of wijzigen.Doesn't allow viewing or modifying roles, or role bindings.
Hiermee krijgt u toegang tot Secrets en uitvoeren van Peul als serviceaccount in de naam ruimte, zodat deze kan worden gebruikt om de API-toegangs niveaus van een wille keurige serviceaccount in de naam ruimte te verkrijgen.Allows accessing Secrets and running pods as any ServiceAccount in the namespace, so it can be used to gain the API access levels of any ServiceAccount in the namespace.
RBAC-beheerder voor Azure Kubernetes serviceAzure Kubernetes Service RBAC Admin Hiermee kan beheerders toegang worden verleend binnen een naam ruimte.Allows admin access, intended to be granted within a namespace.
Hiermee staat u lees-/schrijftoegang toe voor de meeste bronnen in een naam ruimte (of cluster bereik), inclusief de mogelijkheid om rollen en rollen bindingen te maken binnen de naam ruimte.Allows read/write access to most resources in a namespace (or cluster scope), including the ability to create roles and role bindings within the namespace.
Schrijf toegang tot resource quota of de naam ruimte zelf is niet toegestaan.Doesn't allow write access to resource quota or to the namespace itself.
De Azure Kubernetes service RBAC-cluster beheerderAzure Kubernetes Service RBAC Cluster Admin Hiermee kan toegang van Super gebruikers elke actie op elke resource uitvoeren.Allows super-user access to perform any action on any resource.
Hiermee krijgt u volledige controle over elke resource in het cluster en in alle naam ruimten.Gives full control over every resource in the cluster and in all namespaces.

SamenvattingSummary

Bekijk de tabel voor een snelle samen vatting van de manier waarop gebruikers zich kunnen verifiëren bij Kubernetes wanneer Azure AD-integratie is ingeschakeld.View the table for a quick summary of how users can authenticate to Kubernetes when Azure AD integration is enabled. In alle gevallen is de volg orde van de opdrachten van de gebruiker:In all cases, the user's sequence of commands is:

  1. Voer uit az login om te verifiëren bij Azure.Run az login to authenticate to Azure.
  2. Voer uit az aks get-credentials om referenties voor het cluster op te halen in .kube/config .Run az aks get-credentials to download credentials for the cluster into .kube/config.
  3. kubectlOpdrachten uitvoeren.Run kubectl commands.
    • Met de eerste opdracht kan verificatie op basis van een browser worden geactiveerd voor verificatie bij het cluster, zoals wordt beschreven in de volgende tabel.The first command may trigger browser-based authentication to authenticate to the cluster, as described in the following table.

In de Azure Portal vindt u het volgende:In the Azure portal, you can find:

  • De rol toekenning (Azure RBAC-rol verlenen) waarnaar wordt verwezen in de tweede kolom wordt weer gegeven op het tabblad Access Control .The Role Grant (Azure RBAC role grant) referred to in the second column is shown on the Access Control tab.
  • De Azure AD-groep Cluster beheer wordt weer gegeven op het tabblad configuratie .The Cluster Admin Azure AD Group is shown on the Configuration tab.
    • Ook gevonden met de parameter naam --aad-admin-group-object-ids in de Azure cli.Also found with parameter name --aad-admin-group-object-ids in the Azure CLI.
DescriptionDescription Rol toekenning vereistRole grant required Azure AD-groep (en) cluster beheerCluster admin Azure AD group(s) Wanneer gebruikt u dit?When to use
Verouderde beheerder aanmelden met behulp van client certificaatLegacy admin login using client certificate Rol van Azure Kubernetes-beheerder.Azure Kubernetes Admin Role. Deze rol kan az aks get-credentials worden gebruikt met de --admin vlag, waarmee een verouderd (niet-Azure AD) cluster beheer certificaat wordt gedownload naar de gebruiker .kube/config .This role allows az aks get-credentials to be used with the --admin flag, which downloads a legacy (non-Azure AD) cluster admin certificate into the user's .kube/config. Dit is het enige doel van de Azure Kubernetes-beheerdersrol.This is the only purpose of "Azure Kubernetes Admin Role". n.v.t.n/a Als u permanent bent geblokkeerd door geen toegang tot een geldige Azure AD-groep met toegang tot uw cluster.If you're permanently blocked by not having access to a valid Azure AD group with access to your cluster.
Azure AD met hands-RoleBindings (cluster)Azure AD with manual (Cluster)RoleBindings Gebruikersrol Azure Kubernetes.Azure Kubernetes User Role. De rol ' gebruiker ' mag az aks get-credentials worden gebruikt zonder de --admin vlag.The "User" role allows az aks get-credentials to be used without the --admin flag. (Dit is het enige doel van ' Azure Kubernetes-gebruikersrol '.) Het resultaat van een Azure AD-cluster is het downloaden van een lege vermelding in .kube/config , waardoor de browser verificatie wordt geactiveerd wanneer deze voor het eerst wordt gebruikt door kubectl .(This is the only purpose of "Azure Kubernetes User Role".) The result, on an Azure AD-enabled cluster, is the download of an empty entry into .kube/config, which triggers browser-based authentication when it's first used by kubectl. De gebruiker bevindt zich niet in een van deze groepen.User is not in any of these groups. Omdat de gebruiker zich niet in een cluster beheer groepen bevindt, worden hun rechten volledig beheerd door alle RoleBindings of ClusterRoleBindings die zijn ingesteld door cluster beheerders.Because the user is not in any Cluster Admin groups, their rights will be controlled entirely by any RoleBindings or ClusterRoleBindings that have been set up by cluster admins. De (cluster) RoleBindings benoemt Azure AD-gebruikers of Azure ad-groepen als hun subjects .The (Cluster)RoleBindings nominate Azure AD users or Azure AD groups as their subjects. Als er geen dergelijke bindingen zijn ingesteld, kan de gebruiker geen kubectl opdrachten excute.If no such bindings have been set up, the user will not be able to excute any kubectl commands. Als u een nauw keurig toegangs beheer wilt en u geen gebruik maakt van Azure RBAC voor Kubernetes-autorisatie.If you want fine-grained access control, and you're not using Azure RBAC for Kubernetes Authorization. Houd er rekening mee dat de gebruiker die de bindingen instelt, zich moet aanmelden met een van de andere methoden die in deze tabel worden vermeld.Note that the user who sets up the bindings must log in by one of the other methods listed in this table.
Azure AD door lid van Beheerders groepAzure AD by member of admin group Hetzelfde als hierbovenSame as above De gebruiker is lid van een van de groepen die hier worden vermeld.User is a member of one of the groups listed here. AKS genereert automatisch een ClusterRoleBinding die alle weer gegeven groepen koppelt aan de cluster-admin Kubernetes-rol.AKS automatically generates a ClusterRoleBinding that binds all of the listed groups to the cluster-admin Kubernetes role. Zodat gebruikers in deze groepen alle opdrachten kunnen uitvoeren kubectl als cluster-admin .So users in these groups can run all kubectl commands as cluster-admin. Als u gebruikers eenvoudig de volledige beheerders rechten wilt verlenen en geen gebruik wilt maken van Azure RBAC voor Kubernetes-autorisatie.If you want to conveniently grant users full admin rights, and are not using Azure RBAC for Kubernetes authorization.
Azure AD met Azure RBAC voor Kubernetes-autorisatieAzure AD with Azure RBAC for Kubernetes Authorization Twee rollen:Two roles:
First, Azure Kubernetes-gebruikersrol (zoals hierboven).First, Azure Kubernetes User Role (as above).
Ten tweede, een van de ' Azure Kubernetes service RBAC... ' de hierboven vermelde rollen of uw eigen aangepaste alternatief.Second, one of the "Azure Kubernetes Service RBAC..." roles listed above, or your own custom alternative.
Het veld beheerders rollen op het tabblad Configuratie is niet relevant als Azure RBAC voor Kubernetes-autorisatie is ingeschakeld.The admin roles field on the Configuration tab is irrelevant when Azure RBAC for Kubernetes Authorization is enabled. U gebruikt Azure RBAC voor Kubernetes-autorisatie.You are using Azure RBAC for Kubernetes authorization. Deze benadering biedt u nauw keurige controle, zonder dat u RoleBindings of ClusterRoleBindings hoeft in te stellen.This approach gives you fine-grained control, without the need to set up RoleBindings or ClusterRoleBindings.

Volgende stappenNext steps

Raadpleeg de volgende artikelen voor meer informatie over de belangrijkste Kubernetes-en AKS-concepten:For more information on core Kubernetes and AKS concepts, see the following articles: