Opções de acesso e identidade para o Azure Kubernetes Service (AKS)Access and identity options for Azure Kubernetes Service (AKS)

Existem diferentes formas de autenticar com e proteger clusters de Kubernetes.There are different ways to authenticate with and secure Kubernetes clusters. Utilizar controlos de acesso baseado em funções (RBAC), pode conceder a utilizadores ou o acesso de grupos para apenas os recursos que necessitam.Using role-based access controls (RBAC), you can grant users or groups access to only the resources they need. Com o Azure Kubernetes Service (AKS), pode melhorar ainda mais a estrutura de segurança e permissões ao utilizar o Azure Active Directory.With Azure Kubernetes Service (AKS), you can further enhance the security and permissions structure by using Azure Active Directory. Essas abordagens ajudam a proteger as cargas de trabalho de aplicação e os dados dos clientes.These approaches help you secure your application workloads and customer data.

Este artigo apresenta as principais conceitos que o ajudam a autenticar e atribuir permissões no AKS:This article introduces the core concepts that help you authenticate and assign permissions in AKS:

Contas de serviço do KubernetesKubernetes service accounts

Um dos tipos de utilizador primário no Kubernetes é uma conta de serviço.One of the primary user types in Kubernetes is a service account. Uma conta de serviço existe no e é gerenciada pelo, a API do Kubernetes.A service account exists in, and is managed by, the Kubernetes API. As credenciais para contas de serviço são armazenadas como segredos do Kubernetes, que permite que eles sejam utilizados pelo pods autorizados para comunicar com o servidor de API.The credentials for service accounts are stored as Kubernetes secrets, which allows them to be used by authorized pods to communicate with the API Server. A maioria dos pedidos de API fornecem um token de autenticação para uma conta de serviço ou uma conta de utilizador normal.Most API requests provide an authentication token for a service account or a normal user account.

Contas de usuários normais permitem o acesso mais tradicional para administradores humanos ou programadores, não apenas serviços e processos.Normal user accounts allow more traditional access for human administrators or developers, not just services and processes. Kubernetes em si não fornece uma solução de gerenciamento de identidades em que as contas de utilizador normal e as palavras-passe são armazenadas.Kubernetes itself doesn't provide an identity management solution where regular user accounts and passwords are stored. Em vez disso, as soluções de identidade externo podem ser integradas no Kubernetes.Instead, external identity solutions can be integrated into Kubernetes. Para os clusters do AKS, essa solução de identidades integrada é o Azure Active Directory.For AKS clusters, this integrated identity solution is Azure Active Directory.

Para obter mais informações sobre as opções de identidade no Kubernetes, consulte autenticação de Kubernetes.For more information on the identity options in Kubernetes, see Kubernetes authentication.

Integração do Azure Active DirectoryAzure Active Directory integration

Pode ser aprimorada a segurança dos clusters do AKS com a integração do Azure Active Directory (AD).The security of AKS clusters can be enhanced with the integration of Azure Active Directory (AD). Baseia-se em décadas de gestão de identidades da empresa, o Azure AD é um diretório de multi-inquilino, com base na cloud e o serviço de gestão de identidades que combina serviços de diretório centrais, gestão de acesso de aplicações e proteção de identidade.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. Com o Azure AD, pode integrar identidades no local em clusters do AKS para fornecer uma única origem para gestão de contas e segurança.With Azure AD, you can integrate on-premises identities into AKS clusters to provide a single source for account management and security.

Integração do Active Directory do Azure com clusters do AKS

Com os clusters do AKS integrada no AD do Azure, pode conceder a utilizadores ou o acesso de grupos de recursos dentro de um espaço de nomes ou entre o cluster do Kubernetes.With Azure AD-integrated AKS clusters, you can grant users or groups access to Kubernetes resources within a namespace or across the cluster. Para obter um kubectl contexto de configuração, um usuário pode executar o [az aks get-credentials] az-aks-get-credentials comando.To obtain a kubectl configuration context, a user can run the az aks get-credentials command. Quando um utilizador, em seguida, interage com o cluster do AKS com kubectl, são-lhes pedido que inicie sessão com as credenciais do Azure AD.When a user then interacts with the AKS cluster with kubectl, they are prompted to sign in with their Azure AD credentials. Esta abordagem fornece uma única origem para gestão de contas de utilizador e as credenciais de palavra-passe.This approach provides a single source for user account management and password credentials. O utilizador só pode aceder os recursos, conforme definido pelo administrador do cluster.The user can only access the resources as defined by the cluster administrator.

Autenticação do Azure AD em clusters do AKS usa o OpenID Connect, uma camada de identidade criada com base no protocolo de OAuth 2.0.Azure AD authentication in AKS clusters uses OpenID Connect, an identity layer built on top of the OAuth 2.0 protocol. OAuth 2.0 define os mecanismos de obter e utilizar tokens de acesso para aceder a recursos protegidos e OpenID Connect implementa a autenticação como uma extensão para o processo de autorização de OAuth 2.0.OAuth 2.0 defines mechanisms to obtain and use access tokens to access protected resources, and OpenID Connect implements authentication as an extension to the OAuth 2.0 authorization process. Para obter mais informações sobre o OpenID Connect, consulte a documentação abrir ID Connect.For more information on OpenID Connect, see the Open ID Connect documentation. Para verificar os tokens de autenticação obtido a partir do Azure AD através do OpenID Connect, os clusters do AKS utilizam autenticação de Token do Webhook de Kubernetes.To verify the authentication tokens obtained from Azure AD through OpenID Connect, AKS clusters use Kubernetes Webhook Token Authentication. Para obter mais informações, consulte a documentação de autenticação de Token do Webhook.For more information, see the Webhook Token Authentication documentation.

Controlos de acesso baseado em funções (RBAC)Role-based access controls (RBAC)

Para fornecer a filtragem granular das ações que os utilizadores podem executar, o Kubernetes utiliza controlos de acesso baseado em funções (RBAC).To provide granular filtering of the actions that users can perform, Kubernetes uses role-based access controls (RBAC). Esse mecanismo de controlo permite-lhe atribuir utilizadores ou grupos de utilizadores, permissão para fazer coisas como criar ou modificar os recursos ou ver registos de executar cargas de trabalho de aplicação.This control mechanism lets you assign users, or groups of users, permission to do things like create or modify resources, or view logs from running application workloads. Estas permissões podem ser confinadas a um único espaço de nomes ou concedidas em todo o cluster do AKS.These permissions can be scoped to a single namespace, or granted across the entire AKS cluster. Com o RBAC do Kubernetes, crie funções para definir as permissões e, em seguida, atribuir essas funções a utilizadores com enlaces de função.With Kubernetes RBAC, you create roles to define permissions, and then assign those roles to users with role bindings.

Para obter mais informações, consulte autorização RBAC usando.For more information, see Using RBAC authorization.

Controlos de acesso baseado em função do Azure (RBAC)Azure role-based access controls (RBAC)

Um mecanismo adicional para controlar o acesso aos recursos é controles de acesso baseado em função do Azure (RBAC).One additional mechanism for controlling access to resources is Azure role-based access controls (RBAC). RBAC do Kubernetes foi concebida para funcionar em recursos no seu cluster do AKS e RBAC do Azure foi concebida para funcionar em recursos na sua subscrição do Azure.Kubernetes RBAC is designed to work on resources within your AKS cluster, and Azure RBAC is designed to work on resources within your Azure subscription. Com o Azure RBAC, pode criar uma definição de função que descreve as permissões sejam aplicadas.With Azure RBAC, you create a role definition that outlines the permissions to be applied. Um utilizador ou grupo, em seguida, é atribuído esta definição de função para um determinado âmbito, que pode ser um recurso individual, um recurso, grupo, ou entre a subscrição.A user or group is then assigned this role definition for a particular scope, which could be an individual resource, a resource group, or across the subscription.

Para obter mais informações, consulte o que é o RBAC do Azure?For more information, see What is Azure RBAC?

Funções e ClusterRolesRoles and ClusterRoles

Antes de atribuir permissões a utilizadores com RBAC do Kubernetes, primeiro defina essas permissões como uma função.Before you assign permissions to users with Kubernetes RBAC, you first define those permissions as a Role. Funções de Kubernetes conceder permissões.Kubernetes roles grant permissions. Não há nenhum conceito de um negar permissão.There is no concept of a deny permission.

Funções são utilizadas para conceder permissões num namespace.Roles are used to grant permissions within a namespace. Se tem de conceder permissões em todo o cluster, ou a recursos de cluster fora do espaço de nomes especificado, em vez disso, pode utilizar ClusterRoles.If you need to grant permissions across the entire cluster, or to cluster resources outside a given namespace, you can instead use ClusterRoles.

Um ClusterRole funciona da mesma forma para conceder permissões para recursos, mas pode ser aplicada a recursos no cluster inteiro, não um espaço de nomes específico.A ClusterRole works in the same way to grant permissions to resources, but can be applied to resources across the entire cluster, not a specific namespace.

RoleBindings e ClusterRoleBindingsRoleBindings and ClusterRoleBindings

Depois das funções são definidas para conceder permissões para recursos, atribuir essas permissões RBAC do Kubernetes com um RoleBinding.Once roles are defined to grant permissions to resources, you assign those Kubernetes RBAC permissions with a RoleBinding. Se o seu cluster do AKS integra-se com o Azure Active Directory, enlaces são como os utilizadores do Azure AD são concedidos permissões para efetuar ações dentro do cluster.If your AKS cluster integrates with Azure Active Directory, bindings are how those Azure AD users are granted permissions to perform actions within the cluster.

Os enlaces de função são utilizados para atribuir funções para um espaço de nomes especificado.Role bindings are used to assign roles for a given namespace. Esta abordagem permite-lhe separar logicamente um único cluster do AKS, com os utilizadores só possam acessar os recursos de aplicação no seu espaço de nomes atribuído.This approach lets you logically segregate a single AKS cluster, with users only able to access the application resources in their assigned namespace. Se precisa vincular funções no cluster inteiro ou aos recursos do cluster fora do espaço de nomes especificado, em vez disso, pode utilizar ClusterRoleBindings.If you need to bind roles across the entire cluster, or to cluster resources outside a given namespace, you can instead use ClusterRoleBindings.

Um ClusterRoleBinding funciona da mesma forma para vincular funções a utilizadores, mas pode ser aplicada a recursos no cluster inteiro, não um espaço de nomes específico.A ClusterRoleBinding works in the same way to bind roles to users, but can be applied to resources across the entire cluster, not a specific namespace. Esta abordagem permite-lhe conceder aos administradores ou suportar o acesso a engenheiros a todos os recursos do cluster do AKS.This approach lets you grant administrators or support engineers access to all resources in the AKS cluster.

Passos SeguintesNext steps

Para começar a utilizar com o Azure AD e RBAC do Kubernetes, veja integrar o Azure Active Directory com o AKS.To get started with Azure AD and Kubernetes RBAC, see Integrate Azure Active Directory with AKS.

Para as práticas recomendadas associadas, consulte melhores práticas para autenticação e autorização no AKS.For associated best practices, see Best practices for authentication and authorization in AKS.

Para obter mais informações sobre principais Kubernetes e conceitos do AKS, consulte os artigos seguintes:For additional information on core Kubernetes and AKS concepts, see the following articles: