Associações de identidade para o Azure Kubernetes Service (AKS) (pré-visualização)

A vinculação de identidade é uma funcionalidade em pré-visualização para o Azure Kubernetes Service (AKS), que amplia a funcionalidade existente de identidade de carga de trabalho para resolver limitações de escala associadas às credenciais de identidade federada (FICs) em identidades geridas atribuídas pelo utilizador (UAMIs). Com a identidade da carga de trabalho para o AKS, um único UAMI não pode ter mais de 20 FICs. Grandes implementações de plataformas Kubernetes podem abranger mais de 20 clusters (cada cluster tem um emissor único) ou ter muitas <namespace, service-account> combinações que requerem mapeamento para o mesmo UAMI, esgotando a quota FIC.

As ligações de identidade resolvem esta limitação ao permitir que múltiplos clusters AKS partilhem o mesmo UAMI, utilizando apenas um FIC por UAMI. Esta abordagem aumenta significativamente a escalabilidade e simplifica as operações em ambientes AKS de grande escala que requerem autenticação Microsoft Entra.

Importante

Os recursos de pré-visualização do AKS estão disponíveis numa base de autosserviço e adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de teste do AKS são parcialmente cobertas pelo suporte ao cliente numa base de melhor esforço. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

O que é uma ligação de identidade?

Uma ligação de identidade é um mapeamento de recursos entre uma UAMI e um cluster AKS com cargas de trabalho que necessitam de autenticação Microsoft Entra com essa identidade.

Digamos que tem um UAMI, MI-1, necessário para as cargas de trabalho executadas em clusters AKS-cluster-1, AKS-cluster-2, e AKS-cluster-3. Pode criar três ligações de identidade para mapear MI-1 a cada um destes clusters:

  • Ligação IB-Ade identidade mapeando MI-1 para AKS-cluster-1.
  • Ligação IB-Bde identidade mapeando MI-1 para AKS-cluster-2.
  • Ligação IB-Cde identidade mapeando MI-1 para AKS-cluster-3.

Mesmo que o mesmo UAMI seja necessário em vários clusters, apenas uma credencial federada de identidade é criada por cada UAMI, colmatando a limitação anterior de 20 FIC. Quando crias uma ligação de identidade, o AKS cria automaticamente (ou reutiliza) o FIC único para esse UAMI. Os diagramas seguintes ilustram as diferenças entre o modelo anterior de identidade de carga de trabalho e o novo modelo de ligações de identidade:

Captura de ecrã de dois diagramas, um mostrando ligações de identidade a mapear um UAMI para múltiplos clusters AKS enquanto usa um único FIC e o outro a mostrar mapeamentos de identidade de carga de trabalho.

Depois de criar a ligação de identidade e o UAMI ser autorizado para o cluster, deve definir ClusterRole e ClusterRoleBinding objetos que especifiquem os namespaces e contas de serviço (granular ou coletivamente) autorizados a usar essa identidade gerida para aquisição de tokens Microsoft Entra.

Utilize associações de identidade com as bibliotecas de cliente do Azure Identity

Para usar ligações de identidade nas cargas de trabalho da sua aplicação, siga estes passos:

  1. Certifica-te de que estás a usar o pacote mínimo exigido do Azure Identity.
  2. Use WorkloadIdentityCredential e opte por aceder à funcionalidade. Esta funcionalidade não é suportada em ManagedIdentityCredential nem em DefaultAzureCredential.

A tabela seguinte descreve as versões mínimas dos pacotes e como ativar ligações de identidade para cada linguagem suportada:

Linguagem Package Versão Mínima Como ativar
.NET Azure.Identity
ou
Azure. Core
apenas v1.18.0-beta.3
ou
v1.55.0 ou posterior
WorkloadIdentityCredential O modo de ligação de identidade está desativado por defeito. Defina WorkloadIdentityCredentialOptions.IsAzureProxyEnabled como true.
Go azidentity v1.14.0-beta.3 ou posterior Defina WorkloadIdentityCredentialOptions.EnableAzureProxy como true.
Java azure-identity v1.19.0-beta.2 ou posterior Ligue para enableAzureProxy() em WorkloadIdentityCredentialBuilder.
JavaScript @azure/identity 4.14.0-beta.2 ou posterior Definir enableAzureProxy para true em WorkloadIdentityCredentialOptions.
Python azure-identity 1.26.0b2 ou posterior Definir enable_azure_proxy=True em WorkloadIdentityCredential.

Observação

Para .NET, o suporte para ligações de identidade está disponível exclusivamente em Azure. Identity v1.18.0-beta.3 ou, como alternativa, em Azure. Core v1.55.0 ou posterior. Nenhuma outra versão do Azure.Identity inclui atualmente esta funcionalidade.

Perguntas mais frequentes (FAQ)

É necessária a uniformidade de identidade (namespace e equivalência da conta de serviço) entre clusters que usam o mesmo UAMI?

Não. As atribuições de identidade não requerem que o namespace e a conta de serviço sejam iguais. Cabe ao operador do cluster autorizar explicitamente os namespaces e contas de serviço dentro de cada cluster que podem usar a identidade gerida através do controlo de acesso baseado em funções (RBAC).

Posso criar múltiplas associações de identidade para o mesmo UAMI?

Yes. O URL do emissor OIDC mantido pelo AKS para esse UAMI é o mesmo em todos os vínculos de identidade que referenciam a mesma identidade gerida.

Que permissões são necessárias para criar associações de identidade?

Permissões necessárias do Azure Resource Manager (ARM):

  • Microsoft.ContainerService/managedClusters/identityBindings/*
  • Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/*

Observação

Quando crias uma ligação de identidade, o AKS cria automaticamente um FIC. Se o chamador não tiver permissão para criar recursos FIC, a criação de vinculação de identidade falha.

Permissões Kubernetes necessárias:

  • Capacidade de criar objetos ClusterRole e ClusterRoleBinding (administrador de cluster ou equivalente).

O que acontece ao FIC criado automaticamente depois de eliminar todas as vinculações de identidade para um UAMI?

Hoje não há recolha automática de lixo do FIC quando a última ligação de identidade que faz referência a um UAMI é apagada. Os operadores devem limpar manualmente o FIC apenas depois de verificarem que todas as vinculações de identidade desse UAMI foram removidas, para evitar interferir nas dependências remanescentes.

Que prerequisitos de rede existem para vinculações de identidade?

Anteriormente, a identidade da carga de trabalho exigia a saída para login.microsoftonline.com para que as cargas de trabalho pudessem trocar tokens de conta de serviço por tokens de acesso do Microsoft Entra. Com ligações de identidade, os pedidos de troca de tokens passam por um proxy de ligação de identidade específico do cluster operado pelo AKS. A saída direta para login.microsoftonline.com não é obrigatória para a troca de tokens.

Que limitações existem para as vinculações de identidade?

As associações de identidade ainda não são suportadas em clusters configurados com integração da rede virtual do servidor API.