Azure Kubernetes Service (AKS) için erişim ve kimlik seçenekleriAccess and identity options for Azure Kubernetes Service (AKS)

Kubernetes kümelerine çok çeşitli yollarla kimlik doğrulaması, yetkilendirme, güvenli hale getirme ve denetim erişimi sağlayabilirsiniz.You can authenticate, authorize, secure, and control access to Kubernetes clusters in a variety of ways.

  • Kubernetes rol tabanlı erişim denetimini (Kubernetes RBAC) kullanarak kullanıcılara, gruplara ve hizmet hesaplarına yalnızca ihtiyaç duydukları kaynaklara erişim izni verebilirsiniz.Using Kubernetes role-based access control (Kubernetes RBAC), you can grant users, groups, and service accounts access to only the resources they need.
  • Azure Kubernetes Service (AKS) ile Azure Active Directory ve Azure RBAC aracılığıyla güvenlik ve izin yapısını daha da geliştirebilirsiniz.With Azure Kubernetes Service (AKS), you can further enhance the security and permissions structure via Azure Active Directory and Azure RBAC.

Kubernetes RBAC ve AKS, küme erişiminizi güvenli hale getirmenize ve yalnızca geliştiricilere ve işleçlere gereken en düşük izinleri sağlamanıza yardımcı olur.Kubernetes RBAC and AKS help you secure your cluster access and provide only the minimum required permissions to developers and operators.

Bu makalede, AKS 'de izinleri kimlik doğrulamasından ve atamanıza yardımcı olan temel kavramlar tanıtılmaktadır.This article introduces the core concepts that help you authenticate and assign permissions in AKS.

AKS hizmeti izinleriAKS service permissions

Bir küme oluştururken, AKS, Kullanıcı adına kümeyi oluşturmak ve çalıştırmak için ihtiyaç duyacağı kaynakları (VM 'Ler ve NIC 'Ler gibi) oluşturur veya değiştirir.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. Bu kimlik, küme oluşturma sırasında oluşturulan kümenin kimlik izninden farklıdır.This identity is distinct from the cluster's identity permission, which is created during cluster creation.

Küme izinlerini oluşturma ve çalıştırma kimliğiIdentity creating and operating the cluster permissions

Kümeyi oluşturma ve çalıştırma kimliği için aşağıdaki izinler gereklidir.The following permissions are needed by the identity creating and operating the cluster.

İzinPermission NedeniReason
Microsoft.Compute/diskEncryptionSets/read Disk şifreleme kümesi KIMLIĞINI okumak için gereklidir.Required to read disk encryption set ID.
Microsoft.Compute/proximityPlacementGroups/write Yakınlık yerleşimi gruplarını güncelleştirmek için gereklidir.Required for updating proximity placement groups.
Microsoft.Network/applicationGateways/read
Microsoft.Network/applicationGateways/write
Microsoft.Network/virtualNetworks/subnets/join/action
Uygulama ağ geçitlerini yapılandırmak ve alt ağa katmak için gereklidir.Required to configure application gateways and join the subnet.
Microsoft.Network/virtualNetworks/subnets/join/action Özel VNET kullanılırken alt ağ için ağ güvenlik grubunu yapılandırmak için gereklidir.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
Standart Load Balancer giden genel IP 'Leri yapılandırmak için gereklidir.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
Log Analytics çalışma alanları ve kapsayıcılar için Azure izleme oluşturma ve güncelleştirme için gereklidir.Required to create and update Log Analytics workspaces and Azure monitoring for containers.

AKS kümesi kimlik izinleriAKS cluster identity permissions

Aşağıdaki izinler, aks kümesiyle oluşturulup ilişkili olan AKS kümesi kimliği tarafından kullanılır.The following permissions are used by the AKS cluster identity, which is created and associated with the AKS cluster. Her izin aşağıdaki nedenlerle kullanılır:Each permission is used for the reasons below:

İzinPermission NedeniReason
Microsoft.ContainerService/managedClusters/*
Kullanıcı oluşturmak ve kümeyi çalıştırmak için gereklidirRequired for creating users and operating the cluster
Microsoft.Network/loadBalancers/delete
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Bir LoadBalancer hizmeti için yük dengeleyiciyi yapılandırmak için gereklidir.Required to configure the load balancer for a LoadBalancer service.
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/publicIPAddresses/read
Microsoft.Network/publicIPAddresses/write
Bir LoadBalancer hizmeti için genel IP 'Leri bulmak ve yapılandırmak için gereklidir.Required to find and configure public IPs for a LoadBalancer service.
Microsoft.Network/publicIPAddresses/join/action Bir LoadBalancer hizmeti için genel IP 'Leri yapılandırmak için gereklidir.Required for configuring public IPs for a LoadBalancer service.
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/write
Bir LoadBalancer hizmeti için güvenlik kuralları oluşturmak veya silmek için gereklidir.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
AzureDisks 'yi yapılandırmak için gereklidir.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
AzureFile veya AzureDisk için depolama hesaplarını yapılandırmak için gereklidir.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
Düğümler için rota tabloları ve rotalar yapılandırmak için gereklidir.Required to configure route tables and routes for nodes.
Microsoft.Compute/virtualMachines/read Bölgeler, hata etki alanı, boyut ve veri diskleri gibi sanal makinelere yönelik bilgileri bulmak için gereklidir.Required to find information for virtual machines in a VMAS, such as zones, fault domain, size, and data disks.
Microsoft.Compute/virtualMachines/write Bir sanal makineye AzureDisks eklemek için gerekir.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
Bölgeler, hata etki alanı, boyut ve veri diskleri gibi bir sanal makine ölçek kümesindeki sanal makinelere ilişkin bilgileri bulmak için gereklidir.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 Bir sanal makineyi bir yük dengeleyici arka uç adres havuzuna bir VMAS 'e eklemek için gereklidir.Required to add a virtual machine in a VMAS to a load balancer backend address pool.
Microsoft.Compute/virtualMachineScaleSets/write Bir sanal makine ölçek kümesini yük dengeleyici arka uç adres havuzlarına eklemek ve bir sanal makine ölçek kümesindeki düğümleri ölçeklendirmek için gereklidir.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 AzureDisks iliştirmek ve sanal makine ölçek kümesinden yük dengeleyiciye bir sanal makine eklemek için gereklidir.Required to attach AzureDisks and add a virtual machine from a virtual machine scale set to the load balancer.
Microsoft.Network/networkInterfaces/read Sanal makineler için iç IP 'Leri ve yük dengeleyici arka uç adres havuzlarını bir VMALAR içinde aramak için gereklidir.Required to search internal IPs and load balancer backend address pools for virtual machines in a VMAS.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/read Sanal makine ölçek kümesindeki bir sanal makine için iç IP 'Leri ve yük dengeleyici arka uç adres havuzlarını aramak için gereklidir.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 Bir sanal makine ölçek kümesindeki bir sanal makine için genel IP 'Leri bulmak için gereklidir.Required to find public IPs for a virtual machine in a virtual machine scale set.
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/read
Başka bir kaynak grubundaki iç yük dengeleyici için bir alt ağın mevcut olup olmadığını doğrulamak için gereklidir.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
AzureDisk için anlık görüntüleri yapılandırmak için gereklidir.Required to configure snapshots for AzureDisk.
Microsoft.Compute/locations/vmSizes/read
Microsoft.Compute/locations/operations/read
AzureDisk Birim sınırlarını bulmak için sanal makine boyutlarını bulmak için gereklidir.Required to find virtual machine sizes for finding AzureDisk volume limits.

Ek küme kimliği izinleriAdditional cluster identity permissions

Belirli özniteliklere sahip bir küme oluştururken, küme kimliği için aşağıdaki ek izinlere sahip olmanız gerekir.When creating a cluster with specific attributes, you will need the following additional permissions for the cluster identity. Bu izinler otomatik olarak atanmadığından, oluşturulduktan sonra bunları küme kimliğine eklemeniz gerekir.Since these permissions are not automatically assigned, you must add them to the cluster identity after it's created.

İzinPermission NedeniReason
Microsoft.Network/networkSecurityGroups/write
Microsoft.Network/networkSecurityGroups/read
Başka bir kaynak grubunda ağ güvenlik grubu kullanılıyorsa gereklidir.Required if using a network security group in another resource group. Bir LoadBalancer hizmeti için güvenlik kurallarını yapılandırmak için gereklidir.Required to configure security rules for a LoadBalancer service.
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/join/action
Özel VNET gibi başka bir kaynak grubunda bir alt ağ kullanılıyorsa gereklidir.Required if using a subnet in another resource group such as a custom VNET.
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Özel bir yol tablosu olan özel VNET gibi başka bir kaynak grubundaki yol tablosuyla ilişkili bir alt ağ kullanılıyorsa gereklidir.Required if using a subnet associated with a route table in another resource group such as a custom VNET with a custom route table. Diğer kaynak grubundaki alt ağ için bir alt ağın zaten mevcut olup olmadığını doğrulamak için gereklidir.Required to verify if a subnet already exists for the subnet in the other resource group.
Microsoft.Network/virtualNetworks/subnets/read Başka bir kaynak grubunda iç yük dengeleyici kullanılıyorsa gereklidir.Required if using an internal load balancer in another resource group. Kaynak grubundaki iç yük dengeleyici için bir alt ağın zaten mevcut olup olmadığını doğrulamak için gereklidir.Required to verify if a subnet already exists for the internal load balancer in the resource group.
Microsoft.Network/privatednszones/* Özel bir privateDNSZone gibi başka bir kaynak grubunda özel bir DNS bölgesi kullanılıyorsa gereklidir.Required if using a private DNS zone in another resource group such as a custom privateDNSZone.

Kubernetes RBACKubernetes RBAC

Kubernetes RBAC, Kullanıcı eylemlerinin parçalı filtrelemesini sağlar.Kubernetes RBAC provides granular filtering of user actions. Bu denetim mekanizmasıyla:With this control mechanism:

  • Kullanıcıları veya Kullanıcı gruplarını, kaynakları oluşturma ve değiştirme veya çalışan uygulama iş yüklerinden günlükleri görüntüleme izni atayabilirsiniz.You assign users or user groups permission to create and modify resources or view logs from running application workloads.
  • İzinleri tek bir ad alanı veya tüm AKS kümesi genelinde kapsamını belirleyebilirsiniz.You can scope permissions to a single namespace or across the entire AKS cluster.
  • İzinleri tanımlamak için Roller oluşturun ve ardından bu rolleri rol bağlamalarıyla kullanıcılara atayın.You create roles to define permissions, and then assign those roles to users with role bindings.

Daha fazla bilgi için bkz. Kubernetes RBAC yetkilendirmesini kullanma.For more information, see Using Kubernetes RBAC authorization.

Roller ve KümerolleriRoles and ClusterRoles

RollerRoles

Kubernetes RBAC ile kullanıcılara izin atamadan önce, Kullanıcı izinlerini rol olarak tanımlayacaksınız.Before assigning permissions to users with Kubernetes RBAC, you'll define user permissions as a Role. Rolleri kullanarak bir ad alanı içinde izin verin.Grant permissions within a namespace using roles.

Not

Kubernetes rolleri izin verir ; İzinler reddedilmez .Kubernetes roles grant permissions; they don't deny permissions.

Tüm küme genelinde veya belirli bir ad alanı dışındaki küme kaynakları için izin vermek üzere Clusterroles kullanabilirsiniz.To grant permissions across the entire cluster or to cluster resources outside a given namespace, you can instead use ClusterRoles.

ClusterRolesClusterRoles

Bir ClusterRole, belirli bir ad alanı değil tüm küme genelinde kaynaklara izin verir ve izinleri uygular.A ClusterRole grants and applies permissions to resources across the entire cluster, not a specific namespace.

RoleBindings ve ClusterRoleBindingsRoleBindings and ClusterRoleBindings

Kaynaklara izinler vermek için roller tanımladıktan sonra, bu Kubernetes RBAC izinlerini bir Rolebinding ile atarsınız.Once you've defined roles to grant permissions to resources, you assign those Kubernetes RBAC permissions with a RoleBinding. AKS kümeniz Azure Active Directory (Azure AD) ile tümleşiyorsa, rolebindings küme içinde eylem gerçekleştirmek IÇIN Azure AD kullanıcılarına izinler verir.If your AKS cluster integrates with Azure Active Directory (Azure AD), RoleBindings grant permissions to Azure AD users to perform actions within the cluster. Bkz. Kubernetes rol tabanlı erişim denetimi ve Azure Active Directory kimliklerini kullanarak küme kaynaklarına erişimi denetleme.See how in Control access to cluster resources using Kubernetes role-based access control and Azure Active Directory identities.

RoleBindingsRoleBindings

RoleBindings kullanarak belirli bir ad alanı için kullanıcılara roller atayın.Assign roles to users for a given namespace using RoleBindings. RoleBindings ile tek bir AKS kümesini mantıksal olarak ayırabilirsiniz, ancak kullanıcıların kendilerine atanan ad alanındaki uygulama kaynaklarına erişmesini sağlayabilirsiniz.With RoleBindings, you can logically segregate a single AKS cluster, only enabling users to access the application resources in their assigned namespace.

Rolleri tüm küme genelinde veya belirli bir ad alanı dışındaki küme kaynaklarına bağlamak için Clusterrolebindings kullanın.To bind roles across the entire cluster, or to cluster resources outside a given namespace, you instead use ClusterRoleBindings.

ClusterRoleBindingClusterRoleBinding

ClusterRoleBinding ile, rolleri kullanıcılara bağlarsınız ve belirli bir ad alanı değil tüm kümedeki kaynaklara uygularsınız.With a ClusterRoleBinding, you bind roles to users and apply to resources across the entire cluster, not a specific namespace. Bu yaklaşım, yöneticilerin veya Destek mühendislerinin AKS kümesindeki tüm kaynaklara erişmesine izin vermenizi sağlar.This approach lets you grant administrators or support engineers access to all resources in the AKS cluster.

Not

Microsoft/AKS, yerleşik bir Kubernetes rolü aks-service ve yerleşik rol bağlama altında Kullanıcı onayı ile herhangi bir küme eylemi gerçekleştirir 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.

Bu rol, AKS 'in küme sorunlarını giderme ve tanılama, ancak izinleri değiştiremeyeceği ya da roller ya da rol bağlamaları ya da diğer yüksek ayrıcalıklı eylemler oluşturmalarına olanak sağlar.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. Rol erişimi yalnızca, tam zamanında (JıT) erişime sahip etkin destek biletleri altında etkinleştirilir.Role access is only enabled under active support tickets with just-in-time (JIT) access. Aks destek ilkelerihakkında daha fazla bilgi edinin.Read more about AKS support policies.

Kubernetes hizmet hesaplarıKubernetes service accounts

Hizmet hesapları , Kubernetes içindeki birincil kullanıcı türlerinden biridir.Service accounts are one of the primary user types in Kubernetes. Kubernetes API 'SI hizmet hesaplarını tutar ve yönetir.The Kubernetes API holds and manages service accounts. Hizmet hesabı kimlik bilgileri, Kubernetes gizli dizileri olarak depolanır ve bu, API sunucusuyla iletişim kurmak için yetkili Pod tarafından kullanılmasına izin verir.Service account credentials are stored as Kubernetes secrets, allowing them to be used by authorized pods to communicate with the API Server. Çoğu API isteği, bir hizmet hesabı veya normal bir kullanıcı hesabı için bir kimlik doğrulama belirteci sağlar.Most API requests provide an authentication token for a service account or a normal user account.

Normal Kullanıcı hesapları yalnızca hizmetler ve süreçler değil insan yöneticileri veya geliştiriciler için daha geleneksel erişime izin verir.Normal user accounts allow more traditional access for human administrators or developers, not just services and processes. Kubernetes normal kullanıcı hesaplarını ve parolaları depolamak üzere bir kimlik yönetimi çözümü sağlamıyorsa, dış kimlik çözümlerini Kubernetes ile tümleştirebilirsiniz.While Kubernetes doesn't provide an identity management solution to store regular user accounts and passwords, you can integrate external identity solutions into Kubernetes. AKS kümelerinde, bu tümleşik kimlik çözümü Azure AD ' dir.For AKS clusters, this integrated identity solution is Azure AD.

Kubernetes 'in kimlik seçenekleri hakkında daha fazla bilgi için bkz. Kubernetes kimlik doğrulaması.For more information on the identity options in Kubernetes, see Kubernetes authentication.

Azure AD tümleştirmesiAzure AD integration

Azure AD tümleştirmesiyle AKS kümesi güvenlerinizi geliştirin.Enhance your AKS cluster security with Azure AD integration. Kurumsal kimlik yönetimi 'nde geliştirilen Azure AD, temel Dizin Hizmetleri, uygulama erişimi yönetimi ve kimlik korumasını birleştiren çok kiracılı, bulut tabanlı bir dizin ve kimlik yönetimi hizmetidir.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. Azure AD ile, hesap yönetimi ve güvenlik için tek bir kaynak sağlamak üzere şirket içi kimlikleri AKS kümeleriyle tümleştirebilirsiniz.With Azure AD, you can integrate on-premises identities into AKS clusters to provide a single source for account management and security.

AKS kümeleriyle Azure Active Directory tümleştirme

Azure AD ile tümleşik AKS kümeleri sayesinde, kullanıcılara veya gruplara bir ad alanı veya küme genelinde Kubernetes kaynaklarına erişim izni verebilirsiniz.With Azure AD-integrated AKS clusters, you can grant users or groups access to Kubernetes resources within a namespace or across the cluster.

  1. Bir kubectl yapılandırma bağlamı almak için, Kullanıcı az aks Get-Credentials komutunu çalıştırır.To obtain a kubectl configuration context, a user runs the az aks get-credentials command.
  2. Bir Kullanıcı AKS kümesiyle etkileşime geçtiğinde kubectl Azure AD kimlik bilgileriyle oturum açması istenir.When a user interacts with the AKS cluster with kubectl, they're prompted to sign in with their Azure AD credentials.

Bu yaklaşım Kullanıcı hesabı yönetimi ve parola kimlik bilgileri için tek bir kaynak sağlar.This approach provides a single source for user account management and password credentials. Kullanıcı yalnızca küme yöneticisi tarafından tanımlanan kaynaklara erişebilir.The user can only access the resources as defined by the cluster administrator.

Azure AD kimlik doğrulaması, OpenID Connect ile AKS kümelerine sağlanır.Azure AD authentication is provided to AKS clusters with OpenID Connect. OpenID Connect, OAuth 2,0 protokolünün üstünde oluşturulmuş bir kimlik katmanıdır.OpenID Connect is an identity layer built on top of the OAuth 2.0 protocol. OpenID Connect hakkında daha fazla bilgi için bkz. Açık kimlik bağlantısı belgeleri.For more information on OpenID Connect, see the Open ID connect documentation. Kubernetes kümesinin içinden, kimlik doğrulama belirteçlerini doğrulamak için Web kancası belirteci kimlik doğrulaması kullanılır.From inside of the Kubernetes cluster, Webhook Token Authentication is used to verify authentication tokens. Web kancası belirteci kimlik doğrulaması, AKS kümesinin bir parçası olarak yapılandırılır ve yönetilir.Webhook token authentication is configured and managed as part of the AKS cluster.

Web kancası ve API sunucusuWebhook and API server

Web kancası ve API sunucusu kimlik doğrulama akışı

Yukarıdaki grafikte gösterildiği gibi, API sunucusu AKS Web kancası sunucusunu çağırır ve aşağıdaki adımları gerçekleştirir:As shown in the graphic above, the API server calls the AKS webhook server and performs the following steps:

  1. kubectl , OAuth 2,0 cihaz yetkilendirme verme akışıile kullanıcıların oturum açmasını sağlamak IÇIN Azure AD istemci uygulamasını kullanır.kubectl uses the Azure AD client application to sign in users with OAuth 2.0 device authorization grant flow.
  2. Azure AD, bir access_token, id_token ve bir refresh_token sağlar.Azure AD provides an access_token, id_token, and a refresh_token.
  3. Kullanıcı bir access_token ile bir istek yapar kubectl kubeconfig .The user makes a request to kubectl with an access_token from kubeconfig.
  4. kubectl access_token API sunucusuna gönderir.kubectl sends the access_token to API Server.
  5. API sunucusu, doğrulama gerçekleştirmek için auth Web kancası sunucusuyla yapılandırılır.The API Server is configured with the Auth WebHook Server to perform validation.
  6. Kimlik doğrulama Web kancası sunucusu, Azure AD ortak imzalama anahtarını denetleyerek JSON Web Token imzasının geçerli olduğunu onaylar.The authentication webhook server confirms the JSON Web Token signature is valid by checking the Azure AD public signing key.
  7. Sunucu uygulaması, oturum açmış kullanıcının grup üyeliklerini MS Graph API sorgulamak için Kullanıcı tarafından sağlanmış kimlik bilgilerini kullanır.The server application uses user-provided credentials to query group memberships of the logged-in user from the MS Graph API.
  8. API sunucusuna, erişim belirtecinin Kullanıcı asıl adı (UPN) talebi ve nesne KIMLIĞINE göre kullanıcının grup üyeliği gibi Kullanıcı bilgilerini içeren bir yanıt gönderilir.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. API, Kubernetes role/RoleBinding ' i temel alan bir yetkilendirme kararı uygular.The API performs an authorization decision based on the Kubernetes Role/RoleBinding.
  10. Yetkilendirildikten sonra, API sunucusu öğesine bir yanıt döndürür kubectl .Once authorized, the API server returns a response to kubectl.
  11. kubectl kullanıcıya geri bildirim sağlar.kubectl provides feedback to the user.

Aks tarafından yönetilen Azure AD tümleştirmesi nasıl yapılır kılavuzumuzukullanarak aks 'ı Azure AD ile tümleştirmeyi öğrenin.Learn how to integrate AKS with Azure AD with our AKS-managed Azure AD integration how-to guide.

Azure rol tabanlı erişim denetimiAzure role-based access control

Azure rol tabanlı erişim denetimi (RBAC), Azure kaynakları üzerinde ayrıntılı erişim yönetimi sağlayan Azure Resource Manager yerleşik bir yetkilendirme sistemidir.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 sistemiRBAC system DescriptionDescription
Kubernetes RBACKubernetes RBAC AKS kümenizdeki Kubernetes kaynakları üzerinde çalışmak üzere tasarlanmıştır.Designed to work on Kubernetes resources within your AKS cluster.
Azure RBACAzure RBAC Azure aboneliğinizdeki kaynaklar üzerinde çalışmak üzere tasarlanmıştır.Designed to work on resources within your Azure subscription.

Azure RBAC ile uygulanacak izinleri özetleyen bir rol tanımı oluşturursunuz.With Azure RBAC, you create a role definition that outlines the permissions to be applied. Daha sonra bir Kullanıcı atayabilir veya bu rol tanımını belirli bir kapsam için rol ataması aracılığıyla gruplayabilirsiniz.You then assign a user or group this role definition via a role assignment for a particular scope. Kapsam, tek bir kaynak, bir kaynak grubu veya abonelik genelinde olabilir.The scope can be an individual resource, a resource group, or across the subscription.

Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) nedir?For more information, see What is Azure role-based access control (Azure RBAC)?

Bir AKS kümesini tam olarak çalıştırmak için iki erişim düzeyi gereklidir:There are two levels of access needed to fully operate an AKS cluster:

AKS kaynağına erişimi yetkilendirmek için Azure RBACAzure RBAC to authorize access to the AKS resource

Azure RBAC ile kullanıcılarınıza (veya kimliklere) bir veya daha fazla abonelik genelinde AKS kaynaklarına ayrıntılı erişim sağlayabilirsiniz.With Azure RBAC, you can provide your users (or identities) with granular access to AKS resources across one or more subscriptions. Örneğin, kümenizi ölçeklendirmek ve yükseltmek için Azure Kubernetes hizmet katılımcısı rolünü kullanabilirsiniz.For example, you could use the Azure Kubernetes Service Contributor role to scale and upgrade your cluster. Bu arada, Azure Kubernetes hizmet kümesi yönetici rolüne sahip başka bir kullanıcının yalnızca yöneticiyi çekme izni vardır kubeconfig .Meanwhile, another user with the Azure Kubernetes Service Cluster Admin role only has permission to pull the Admin kubeconfig.

Alternatif olarak, kullanıcıya genel katkıda bulunan rolünü verebilirsiniz.Alternatively, you could give your user the general Contributor role. Genel katkıda bulunan rolüyle, kullanıcılar, izinleri yönetme dışında, AKS kaynağında, yukarıdaki izinleri ve tüm işlemleri gerçekleştirebilir.With the general Contributor role, users can perform the above permissions and every action possible on the AKS resource, except managing permissions.

AKS 'Deki Kubernetes yapılandırma dosyasına erişim tanımlamak Için Azure RBAC kullanın.Use Azure RBAC to define access to the Kubernetes configuration file in AKS.

Kubernetes yetkilendirmesi için Azure RBAC (Önizleme)Azure RBAC for Kubernetes Authorization (Preview)

Azure RBAC tümleştirmesiyle, Azure AD ile tümleşik Kubernetes küme kaynağı izinlerini ve atamalarını Azure rol tanımı ve rol atamaları kullanarak yönetebilmeniz için AKS bir Kubernetes yetkilendirme Web kancası sunucusunu kullanacaktır.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.

Kubernetes yetkilendirme akışı için Azure RBAC

Yukarıdaki diyagramda gösterildiği gibi, Azure RBAC tümleştirmesi kullanılırken, Kubernetes API 'sine yapılan tüm istekler Azure Active Directory tümleştirme bölümündeaçıklanacak şekilde aynı kimlik doğrulama akışını izler.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.

Azure AD 'de isteği yapan kimlik varsa Azure, isteği yetkilendirmek için Kubernetes RBAC ile ekipte bulunur.If the identity making the request exists in Azure AD, Azure will team with Kubernetes RBAC to authorize the request. Kimlik, Azure AD dışında (yani bir Kubernetes hizmet hesabı) varsa, yetkilendirme normal Kubernetes RBAC ' ye geri dönecek.If the identity exists outside of Azure AD (i.e., a Kubernetes service account), authorization will deter to the normal Kubernetes RBAC.

Bu senaryoda, Azure RBAC mekanizmalarını ve API 'Lerini kullanarak, Kubernetes rolleriyle yaptığınız gibi kullanıcılara yerleşik roller atayabilir veya özel roller oluşturabilirsiniz.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.

Bu özellik ile, kullanıcılara yalnızca AKS kaynağı için abonelikler arasında izin vermemiş olursunuz, ancak aynı zamanda Kubernetes API erişimini denetleyen bu kümelerin her birinin içindeki rol ve izinleri de yapılandırırsınız.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. Örneğin, Azure Kubernetes Service RBAC Viewer rolü abonelik kapsamında verebilirsiniz.For example, you can grant the Azure Kubernetes Service RBAC Viewer role on the subscription scope. Rol alıcısı, tüm Kubernetes nesnelerini değiştirmeden tüm kümelerden alabilir ve alabilirler.The role recipient will be able to list and get all Kubernetes objects from all clusters without modifying them.

Önemli

Bu özelliği kullanmadan önce Kubernetes yetkilendirmesi için Azure RBAC 'i etkinleştirmeniz gerekir.You need to enable Azure RBAC for Kubernetes authorization before using this feature. Daha fazla ayrıntı ve adım adım yönergeler için, Kubernetes yetkilendirmesi nasıl yapılır Kılavuzu Için Azure RBAC 'Yi kullanın .For more details and step by step guidance, follow our Use Azure RBAC for Kubernetes Authorization how-to guide.

Yerleşik rollerBuilt-in roles

AKS, aşağıdaki dört yerleşik rolü sağlar.AKS provides the following four built-in roles. Bunlar, Kubernetes yerleşik rollerine benzerdir ve bu da crds 'yi destekleme gibi birkaç farklılık vardır.They are similar to the Kubernetes built-in roles with a few differences, like supporting CRDs. Her Azure yerleşik rolütarafından izin verilen eylemlerin tam listesine bakın.See the full list of actions allowed by each Azure built-in role.

RolRole AçıklamaDescription
Azure Kubernetes hizmeti RBAC GörüntüleyicisiAzure Kubernetes Service RBAC Viewer Bir ad alanındaki birçok nesneyi görmek için salt okuma erişimine izin verir.Allows read-only access to see most objects in a namespace.
Rollerin veya rol bağlamalarının görüntülenmesine izin vermez.Doesn't allow viewing roles or role bindings.
Görüntülemeye izin vermez Secrets .Doesn't allow viewing Secrets. İçerik okuma, ad alanındaki Secrets ServiceAccount kimlik bilgilerine erişim sağlar ve bu da ServiceAccount ad alanında (bir ayrıcalık yükseltme), API erişimine izin verir.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).
Azure Kubernetes hizmeti RBAC yazıcıAzure Kubernetes Service RBAC Writer Bir ad alanındaki nesnelerin çoğuna okuma/yazma erişimi sağlar.Allows read/write access to most objects in a namespace.
Rolleri veya rol bağlamalarını görüntülemeye veya değiştirmeye izin vermez.Doesn't allow viewing or modifying roles, or role bindings.
Ad alanındaki herhangi bir ServiceAccount olarak bulunan bir veya daha fazla ad alanı üzerinde herhangi bir ServiceAccount Secrets 'ın API erişim düzeylerini kazanmak için kullanılabilir.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.
Azure Kubernetes hizmeti RBAC YöneticisiAzure Kubernetes Service RBAC Admin Yönetici erişimine izin verir, bir ad alanı içinde verilmek üzere tasarlanmıştır.Allows admin access, intended to be granted within a namespace.
Ad alanı içinde roller ve rol bağlamaları oluşturma özelliği de dahil olmak üzere bir ad alanındaki (veya küme kapsamındaki) kaynakların çoğuna okuma/yazma erişimi sağlar.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.
Kaynak kotasına veya ad alanının kendine yazma erişimine izin vermez.Doesn't allow write access to resource quota or to the namespace itself.
Azure Kubernetes hizmeti RBAC kümesi YöneticisiAzure Kubernetes Service RBAC Cluster Admin Süper Kullanıcı erişiminin herhangi bir kaynak üzerinde herhangi bir işlem gerçekleştirmesine izin verir.Allows super-user access to perform any action on any resource.
Kümedeki her kaynak ve tüm ad alanlarında tam denetim sağlar.Gives full control over every resource in the cluster and in all namespaces.

ÖzetSummary

Azure AD tümleştirmesi etkinleştirildiğinde kullanıcıların Kubernetes 'te kimlik doğrulaması yapabilmesinin hızlı bir özetini görmek için tabloyu görüntüleyin.View the table for a quick summary of how users can authenticate to Kubernetes when Azure AD integration is enabled. Her durumda, kullanıcının komut dizisi:In all cases, the user's sequence of commands is:

  1. az loginAzure 'da kimlik doğrulaması yapmak için ' i çalıştırın.Run az login to authenticate to Azure.
  2. az aks get-credentialsKümenin kimlik bilgilerini içine indirmek için ' i çalıştırın .kube/config .Run az aks get-credentials to download credentials for the cluster into .kube/config.
  3. kubectlKomutları çalıştırın.Run kubectl commands.
    • İlk komut, aşağıdaki tabloda açıklandığı gibi, kümede kimlik doğrulaması yapmak için tarayıcı tabanlı kimlik doğrulaması tetiklenebilir.The first command may trigger browser-based authentication to authenticate to the cluster, as described in the following table.

Azure portal şunları bulabilirsiniz:In the Azure portal, you can find:

  • İkinci sütunda başvurulan rol izni (Azure RBAC rolü verme) Access Control sekmesinde gösterilir.The Role Grant (Azure RBAC role grant) referred to in the second column is shown on the Access Control tab.
  • Küme Yöneticisi Azure AD grubu, yapılandırma sekmesinde gösterilir.The Cluster Admin Azure AD Group is shown on the Configuration tab.
    • Ayrıca --aad-admin-group-object-ids , Azure CLI 'de parametre adıyla birlikte bulunur.Also found with parameter name --aad-admin-group-object-ids in the Azure CLI.
DescriptionDescription Rol verme gerekliRole grant required Küme Yöneticisi Azure AD gruplarıCluster admin Azure AD group(s) Kullanılması gereken durumlarWhen to use
İstemci sertifikası kullanarak eski yönetici oturumu açmaLegacy admin login using client certificate Azure Kubernetes yönetici rolü.Azure Kubernetes Admin Role. Bu rol, az aks get-credentials --admin eski (Azure dışı ad) küme yönetici sertifikasını kullanıcının kullanıcısına indiren bayrağıyla birlikte kullanılmasına izin verir .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. Bu, "Azure Kubernetes yönetici rolü" nin tek amacı değildir.This is the only purpose of "Azure Kubernetes Admin Role". yokn/a Kalıcı olarak engellendiyse, kümenize erişimi olan geçerli bir Azure AD grubuna erişemez.If you're permanently blocked by not having access to a valid Azure AD group with access to your cluster.
El ile (küme) RoleBindings ile Azure ADAzure AD with manual (Cluster)RoleBindings Azure Kubernetes Kullanıcı rolü.Azure Kubernetes User Role. "Kullanıcı" rolü az aks get-credentials bayrak olmadan kullanılmasına izin verir --admin .The "User" role allows az aks get-credentials to be used without the --admin flag. (Bu, "Azure Kubernetes Kullanıcı rolü" öğesinin tek amacı olur.) Sonuç olarak, Azure AD özellikli bir kümede boş bir girdinin indirilmesi, bu, .kube/config tarafından ilk kez kullanıldığında tarayıcı tabanlı kimlik doğrulamasını tetikler 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. Kullanıcı bu grupların hiçbirinde değil.User is not in any of these groups. Kullanıcı herhangi bir Küme Yöneticisi grubunda olmadığından, hakları tamamen küme yöneticileri tarafından ayarlanan herhangi bir RoleBindings veya ClusterRoleBindings tarafından denetlenir.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. (Küme) RoleBindings, Azure AD kullanıcılarını veya Azure AD gruplarını oldukları gibi aday olarak belirler subjects .The (Cluster)RoleBindings nominate Azure AD users or Azure AD groups as their subjects. Böyle bir bağlama ayarlanmamışsa, Kullanıcı herhangi bir kubectl komutu kullanamaz.If no such bindings have been set up, the user will not be able to excute any kubectl commands. Ayrıntılı erişim denetimi istiyorsanız ve Kubernetes yetkilendirmesi için Azure RBAC kullanmıyorsanız.If you want fine-grained access control, and you're not using Azure RBAC for Kubernetes Authorization. Bağlamaları ayarlayan kullanıcının bu tabloda listelenen diğer yöntemlerden biriyle oturum açması gerektiğini unutmayın.Note that the user who sets up the bindings must log in by one of the other methods listed in this table.
Yönetici grubuna üye tarafından Azure ADAzure AD by member of admin group Yukarıdakiyle aynıSame as above Kullanıcı burada listelenen gruplardan birinin üyesidir.User is a member of one of the groups listed here. AKS, listelenen tüm grupları Kubernetes rolüne bağlayan bir ClusterRoleBinding otomatik olarak oluşturur cluster-admin .AKS automatically generates a ClusterRoleBinding that binds all of the listed groups to the cluster-admin Kubernetes role. Bu nedenle, bu gruplardaki kullanıcılar tüm kubectl komutları olarak çalıştırabilir cluster-admin .So users in these groups can run all kubectl commands as cluster-admin. Kullanıcılara kolay bir şekilde yönetici hakları vermek istiyorsanız ve Kubernetes yetkilendirmesi için Azure RBAC kullanmıyorsanız.If you want to conveniently grant users full admin rights, and are not using Azure RBAC for Kubernetes authorization.
Kubernetes yetkilendirmesi için Azure RBAC ile Azure ADAzure AD with Azure RBAC for Kubernetes Authorization İki rol:Two roles:
İlk olarak, Azure Kubernetes Kullanıcı rolü (yukarıdaki gibi).First, Azure Kubernetes User Role (as above).
İkincisi, "Azure Kubernetes Service RBAC..." Yukarıda listelenen roller veya kendi özel alternatifi.Second, one of the "Azure Kubernetes Service RBAC..." roles listed above, or your own custom alternative.
Kubernetes yetkilendirmesi için Azure RBAC etkinleştirildiğinde yapılandırma sekmesindeki yönetici rolleri alanı ilgisiz olur.The admin roles field on the Configuration tab is irrelevant when Azure RBAC for Kubernetes Authorization is enabled. Kubernetes yetkilendirmesi için Azure RBAC kullanıyorsunuz.You are using Azure RBAC for Kubernetes authorization. Bu yaklaşım, RoleBindings veya ClusterRoleBindings ayarlamanıza gerek kalmadan ayrıntılı denetim sağlar.This approach gives you fine-grained control, without the need to set up RoleBindings or ClusterRoleBindings.

Sonraki adımlarNext steps

Temel Kubernetes ve AKS kavramları hakkında daha fazla bilgi için aşağıdaki makalelere bakın:For more information on core Kubernetes and AKS concepts, see the following articles: