Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os clusters do Serviço Kubernetes do Azure (AKS) exigem uma identidade do Microsoft Entra para acessar recursos do Azure, como balanceadores de carga e discos gerenciados. As identidades gerenciadas para recursos do Azure são a maneira recomendada de autorizar o acesso de um cluster AKS a outros serviços do Azure.
Você pode usar uma identidade gerenciada para autorizar o acesso de um cluster AKS a qualquer serviço que ofereça suporte à autorização do Microsoft Entra, sem precisar gerenciar credenciais ou incluí-las em seu código. Você atribui à identidade gerenciada uma função de controle de acesso baseado em função do Azure (Azure RBAC) para conceder-lhe permissões para um recurso específico no Azure. Por exemplo, você pode conceder permissões a uma identidade gerenciada para acessar segredos em um cofre de chaves do Azure para uso pelo cluster. Para obter mais informações sobre o RBAC do Azure, consulte O que é o controle de acesso baseado em função do Azure (Azure RBAC)?.
Este artigo mostra como habilitar os seguintes tipos de identidade gerenciada em um cluster AKS novo ou existente:
- Identidade gerenciada atribuída ao sistema. Uma identidade gerenciada atribuída ao sistema está associada a um único recurso do Azure, como um cluster AKS. Ele existe apenas para o ciclo de vida do cluster.
- Identidade gerenciada atribuída pelo usuário. Uma identidade gerenciada atribuída pelo usuário é um recurso autônomo do Azure que um cluster AKS pode usar para autorizar o acesso a outros serviços do Azure. Ele persiste separadamente do cluster AKS e pode ser usado por vários recursos do Azure.
- Identidade gerenciada kubelet pré-criada. Uma identidade gerenciada kubelet pré-criada é uma identidade opcional atribuída pelo usuário que o kubelet pode usar para acessar outros recursos no Azure. Se você não especificar uma identidade gerenciada atribuída pelo usuário para o kubelet, o AKS criará uma identidade kubelet atribuída pelo usuário no grupo de recursos do nó.
Para saber mais sobre identidades gerenciadas, consulte Identidades gerenciadas para recursos do Azure.
Visão geral
Um cluster AKS usa uma identidade gerenciada para solicitar tokens do Microsoft Entra. Esses tokens são usados para autorizar o acesso a outros recursos em execução no Azure. Você pode atribuir uma função RBAC do Azure a uma identidade gerenciada para conceder permissões de cluster para acessar recursos específicos. Por exemplo, se o cluster precisar acessar segredos em um cofre de chaves do Azure, você poderá atribuir à identidade gerenciada do cluster uma função RBAC do Azure que conceda essas permissões.
Uma identidade gerenciada pode ser atribuída ao sistema ou ao usuário. Esses dois tipos de identidades gerenciadas são semelhantes, pois você pode usar qualquer tipo para autorizar o acesso aos recursos do Azure a partir do cluster AKS. A principal diferença entre eles é que uma identidade gerenciada atribuída ao sistema está associada a um único recurso do Azure, como um cluster AKS, enquanto uma identidade gerenciada atribuída pelo usuário é ela própria um recurso autônomo do Azure. Para obter mais detalhes sobre as diferenças entre tipos de identidades gerenciadas, consulte Tipos de identidade gerenciados em Identidades gerenciadas para recursos do Azure.
Ambos os tipos de identidades geridas são geridos pela plataforma Azure, para que o utilizador possa autorizar o acesso das suas aplicações sem precisar provisionar ou rodar segredos. O Azure gerencia as credenciais da identidade para você.
Quando você implanta um cluster AKS, uma identidade gerenciada atribuída ao sistema é criada para você por padrão. Você também pode criar o cluster com uma identidade gerenciada atribuída pelo usuário.
Também é possível criar um cluster com um principal de serviço de aplicação em vez de uma identidade gerida. As identidades gerenciadas são recomendadas em relação às entidades de serviço para segurança e facilidade de uso. Para obter mais informações sobre como criar um cluster com uma entidade de serviço, consulte Usar uma entidade de serviço com o Serviço Kubernetes do Azure (AKS).
Você pode atualizar um cluster existente para usar uma identidade gerida associada a um principal de serviço de aplicativo. Você também pode atualizar um cluster existente para um tipo diferente de identidade gerenciada. Se o cluster já estiver usando uma identidade gerenciada e a identidade tiver sido alterada, por exemplo, se você atualizou o tipo de identidade do cluster de atribuído pelo sistema para atribuído pelo usuário, haverá um atraso enquanto os componentes do plano de controle mudam para a nova identidade. Os componentes do plano de controle continuam a usar a identidade antiga até que seu token expire. Depois que o token é atualizado, eles mudam para a nova identidade. Este processo pode demorar várias horas.
Os tipos de identidade atribuídos pelo sistema e pelo usuário diferem de uma identidade do Microsoft Entra Workload, que se destina ao uso por um aplicativo em execução em um pod.
Antes de começar
Verifique se você tem a CLI do Azure versão 2.23.0 ou posterior instalada. Executar
az --version
para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI.Para usar uma identidade gerenciada kubelet pré-criada, você precisa da CLI do Azure versão 2.26.0 ou posterior instalada.
Para atualizar um cluster existente para usar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário, você precisa da CLI do Azure versão 2.49.0 ou posterior instalada.
Antes de executar os exemplos neste artigo, defina sua assinatura como a assinatura ativa atual chamando o comando az account set e passando sua ID de assinatura.
az account set --subscription <subscription-id>
Crie também um grupo de recursos do Azure se ainda não tiver um chamando o az group create
comando.
az group create \
--name myResourceGroup \
--location westus2
Habilitar uma identidade gerenciada atribuída ao sistema
Uma identidade gerenciada atribuída ao sistema é uma identidade associada a um cluster AKS ou outro recurso do Azure. A identidade gerenciada atribuída ao sistema está vinculada ao ciclo de vida do cluster. Quando o cluster é excluído, a identidade gerenciada atribuída ao sistema também é excluída.
O cluster AKS pode usar a identidade gerenciada atribuída ao sistema para autorizar o acesso a outros recursos em execução no Azure. Você pode atribuir uma função RBAC do Azure à identidade gerenciada atribuída pelo sistema para conceder permissões de cluster para acessar recursos específicos. Por exemplo, se o cluster precisar acessar segredos em um cofre de chaves do Azure, você poderá atribuir à identidade gerenciada atribuída ao sistema uma função RBAC do Azure que conceda essas permissões.
Habilitar uma identidade gerenciada atribuída ao sistema em um novo cluster AKS
Para habilitar uma identidade gerida atribuída pelo sistema em um novo cluster, chame o az aks create
. Uma identidade gerenciada atribuída ao sistema é habilitada no novo cluster por padrão.
Crie um cluster AKS usando o comando az aks create
.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--generate-ssh-keys
Para verificar se uma identidade gerenciada atribuída ao sistema está habilitada para o cluster depois de criado, consulte Determinar que tipo de identidade gerenciada um cluster está usando.
Atualizar um cluster AKS existente para usar uma identidade gerenciada atribuída ao sistema
Para atualizar um cluster AKS existente que esteja usando um principal de serviço para usar uma identidade gerida atribuída pelo sistema, execute o comando az aks update
com o parâmetro --enable-managed-identity
.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity
Depois de atualizar o cluster para usar uma identidade gerenciada atribuída pelo sistema em vez de uma entidade de serviço, o plano de controle e os pods usam a identidade gerenciada atribuída pelo sistema para autorização ao acessar outros serviços no Azure. O Kubelet continua usando uma entidade de serviço até que você também atualize seu agentpool. Você pode usar o comando az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only
nos seus nós para atualizar para uma identidade suportada. Uma atualização do pool de nós causa tempo de inatividade para o cluster AKS à medida que os nós nos pools de nós são isolados, drenados e recriados.
Observação
Lembre-se das seguintes informações ao atualizar o cluster:
Uma atualização só funciona se houver uma atualização VHD para consumir. Se você estiver executando o VHD mais recente, precisará esperar até que o próximo VHD esteja disponível para executar a atualização.
A CLI do Azure garante que a permissão do seu addon seja definida corretamente após a migração. Se você não estiver usando a CLI do Azure para executar a operação de migração, precisará manipular a permissão da identidade do complemento sozinho. Para obter um exemplo usando um modelo do Azure Resource Manager (ARM), consulte Atribuir funções do Azure usando modelos ARM.
Se o cluster estava usando
--attach-acr
para extrair imagens do Registro de Contêiner do Azure (ACR), você precisará executar oaz aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID>
comando depois de atualizar o cluster para permitir que o kubelet recém-criado usado para identidade gerenciada obtenha a permissão para extrair do ACR. Caso contrário, você não poderá extrair do ACR após a atualização.
Adicionar uma atribuição de função para uma identidade gerenciada atribuída ao sistema
Você pode atribuir uma função RBAC do Azure à identidade gerenciada atribuída ao sistema para conceder as permissões de cluster em outro recurso do Azure. O RBAC do Azure dá suporte a definições de função internas e personalizadas que especificam níveis de permissões. Para obter mais informações sobre como atribuir funções RBAC do Azure, consulte Etapas para atribuir uma função do Azure.
Ao atribuir uma função RBAC do Azure a uma identidade gerenciada, você deve definir o escopo da função. Em geral, é uma prática recomendada limitar o escopo de uma função aos privilégios mínimos exigidos pela identidade gerenciada. Para obter mais informações sobre como definir o escopo das funções do RBAC do Azure, consulte Entender o escopo do RBAC do Azure.
Quando você cria e usa sua própria rede virtual, discos do Azure anexados, endereço IP estático, tabela de rotas ou identidade kubelet atribuída pelo usuário onde os recursos estão fora do grupo de recursos do nó de trabalho, a CLI do Azure adiciona a atribuição de função automaticamente. Se você estiver usando um modelo ARM ou outro método, use a ID principal da identidade gerenciada para executar uma atribuição de função.
Se você não estiver usando a CLI do Azure, mas estiver usando sua própria rede virtual, discos do Azure anexados, endereço IP estático, tabela de rotas ou identidade kubelet atribuída pelo usuário que esteja fora do grupo de recursos do nó de trabalho, recomendamos usar uma identidade gerenciada atribuída pelo usuário para o plano de controle. Quando o plano de controle usa uma identidade gerenciada atribuída ao sistema, a identidade é criada ao mesmo tempo que o cluster, portanto, a atribuição de função não pode ser executada até que o cluster tenha sido criado.
Obter a ID principal da identidade gerenciada atribuída ao sistema
Para atribuir uma função RBAC do Azure à identidade gerenciada atribuída ao sistema de um cluster, primeiro você precisa da ID principal da identidade gerenciada. Obtenha a ID principal para a identidade gerenciada atribuída ao sistema do cluster chamando o az aks show
comando.
# Get the principal ID for a system-assigned managed identity.
CLIENT_ID=$(az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.principalId \
--output tsv)
Atribuir uma função RBAC do Azure à identidade gerenciada atribuída ao sistema
Para conceder permissões de identidade gerenciada atribuídas pelo sistema a um recurso no Azure, chame o az role assignment create
comando para atribuir uma função RBAC do Azure à identidade gerenciada.
Para uma VNet, disco do Azure anexado, endereço IP estático ou tabela de rotas fora do grupo de recursos padrão do nó de trabalho, precisa-se atribuir a função Network Contributor
no grupo de recursos personalizado.
Por exemplo, atribua a Network Contributor
função no grupo de recursos personalizado usando o az role assignment create
comando. Para o parâmetro --scope
, forneça a ID do recurso do grupo de recursos do cluster.
az role assignment create \
--assignee $CLIENT_ID \
--role "Network Contributor" \
--scope "<resource-group-id>"
Observação
Pode levar até 60 minutos para que as permissões concedidas à identidade gerenciada do cluster se propaguem.
Habilitar uma identidade gerenciada atribuída pelo usuário
Uma identidade gerenciada atribuída pelo usuário é um recurso autônomo do Azure. Quando você cria um cluster com uma identidade gerenciada atribuída pelo usuário para o plano de controle, o recurso de identidade gerenciada atribuído pelo usuário deve existir antes da criação do cluster. Esse recurso permite cenários como a criação do cluster com uma VNet personalizada ou com um tipo de saída de UDR (roteamento definido pelo usuário).
Criar uma identidade gerenciada atribuída pelo usuário
Se você ainda não tiver um recurso de identidade gerenciado atribuído pelo usuário, crie um usando o az identity create
comando.
az identity create \
--name myIdentity \
--resource-group myResourceGroup
Sua saída deve ser semelhante à saída de exemplo a seguir:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"location": "westus2",
"name": "myIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Obter o ID principal da identidade gerenciada atribuída pelo usuário
Para obter o ID principal da identidade gerenciada atribuída pelo usuário, chame az identity show e consulte a principalId
propriedade:
CLIENT_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query principalId \
--output tsv)
Obter o ID de recurso da identidade gerenciada atribuída pelo usuário
Para criar um cluster com uma identidade gerenciada atribuída pelo usuário, você precisará da ID do recurso para a nova identidade gerenciada. Para obter o ID de recurso da identidade gerida atribuída pelo utilizador, utilize o comando az aks show para consultar a propriedade id
.
RESOURCE_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query id \
--output tsv)
Atribuir uma função RBAC do Azure à identidade gerenciada atribuída pelo usuário
Antes de criar o cluster, adicione uma atribuição de função para a identidade gerenciada chamando o az role assignment create
comando.
O exemplo a seguir atribui a função Usuário de Segredos do Cofre de Chaves à identidade gerenciada atribuída pelo usuário para conceder-lhe permissões para acessar segredos em um cofre de chaves. A atribuição de função tem como escopo o recurso do cofre de chaves:
az role assignment create \
--assignee $CLIENT_ID \
--role "Key Vault Secrets User" \
--scope "<keyvault-resource-id>"
Observação
Pode levar até 60 minutos para que as permissões concedidas à identidade gerenciada do cluster se propaguem.
Criar um cluster com a identidade gerenciada atribuída pelo usuário
Para criar um cluster AKS com a identidade gerenciada atribuída pelo usuário, chame o az aks create
comando. Inclua o --assign-identity
parâmetro e passe o ID do recurso para a identidade gerenciada atribuída pelo usuário:
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity $RESOURCE_ID \
--generate-ssh-keys
Observação
As regiões USDOD Central, USDOD East e USGov Iowa na nuvem do Azure US Government não suportam a criação de um cluster com uma identidade gerenciada atribuída pelo usuário.
Atualizar um cluster existente para usar uma identidade gerenciada atribuída pelo usuário
Para atualizar um cluster existente para usar uma identidade gerenciada atribuída pelo usuário, chame o az aks update
comando. Inclua o --assign-identity
parâmetro e passe o ID do recurso para a identidade gerenciada atribuída pelo usuário:
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity \
--assign-identity $RESOURCE_ID
A saída para uma atualização de cluster bem-sucedida para usar uma identidade gerenciada atribuída pelo usuário deve ser semelhante à saída de exemplo a seguir:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
Observação
A migração de uma identidade gerenciada para o plano de controle de atribuído pelo sistema para atribuído pelo usuário não resulta em nenhum tempo de inatividade para o plano de controle e os pools de agentes. Os componentes do plano de controle mantêm a antiga identidade atribuída pelo sistema por até várias horas, até à próxima renovação do token.
Determinar que tipo de identidade gerenciada um cluster está usando
Para determinar que tipo de identidade gerenciada seu cluster AKS existente está usando, chame o comando az aks show e consulte a propriedade type da identidade.
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.type \
--output tsv
Se o cluster estiver usando uma identidade gerenciada, o valor da propriedade type será SystemAssigned ou UserAssigned.
Se o cluster estiver usando uma entidade de serviço, o valor da propriedade type será null. Considere atualizar seu cluster para usar uma identidade gerenciada.
Use uma identidade precriada gerida pelo kubelet
Uma identidade kubelet pré-criada é uma identidade gerenciada atribuída pelo usuário que existe antes da criação do cluster. Esse recurso habilita cenários como a conexão com o Registro de Contêiner do Azure (ACR) durante a criação do cluster.
Observação
O AKS cria uma identidade kubelet atribuída pelo usuário no grupo de recursos do nó se você não especificar sua própria identidade gerenciada pelo kubelet.
Para uma identidade kubelet atribuída pelo utilizador fora do grupo de recursos do nó trabalhador padrão, é necessário atribuir a função de Operador de Identidade Gerenciada à identidade kubelet para o plano de controle da identidade gerenciada.
identidade gerenciada kubelet
Se você não tiver uma identidade gerenciada pelo kubelet, crie uma usando o az identity create
comando.
az identity create \
--name myKubeletIdentity \
--resource-group myResourceGroup
Sua saída deve ser semelhante à saída de exemplo a seguir:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
"location": "westus2",
"name": "myKubeletIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Atribuir uma função RBAC à identidade gerenciada pelo kubelet
Atribua a função ACRPull
à identidade kubelet usando o comando az role assignment create
. Forneça a ID principal da identidade kubelet para a variável $KUBELET_CLIENT_ID e forneça a ID do Registro ACR para a variável $ACR_REGISTRY_ID.
az role assignment create \
--assignee $KUBELET_CLIENT_ID \
--role "acrpull" \
--scope "$ACR_REGISTRY_ID"
Crie um cluster para utilizar a identidade do kubelet.
Agora você pode criar seu cluster AKS com suas identidades existentes. Certifique-se de fornecer o ID de recurso da identidade gerida para o plano de controlo, incluindo o argumento assign-identity
, e a identidade gerida do kubelet usando o argumento assign-kubelet-identity
.
Crie um cluster AKS com suas identidades existentes usando o az aks create
comando.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity <identity-resource-id> \
--assign-kubelet-identity <kubelet-identity-resource-id> \
--generate-ssh-keys
Uma criação bem-sucedida de cluster AKS usando uma identidade gerenciada kubelet deve resultar em uma saída semelhante à seguinte:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Atualizar um cluster existente para usar a identidade kubelet
Para atualizar um cluster existente para usar a identidade gerenciada kubelet, primeiro obtenha a identidade gerenciada do plano de controle atual para seu cluster AKS.
Advertência
Atualizar a identidade gerida do kubelet atualiza os pools de nós do cluster AKS, certifique-se de ter configuradas as opções de disponibilidade corretas, como Orçamentos de Interrupção de Pods, antes de o executar, para evitar a interrupção da carga de trabalho, ou realize a atualização durante uma janela de manutenção.
Confirme se o cluster AKS está usando a identidade gerenciada atribuída pelo usuário usando o
az aks show
comando.az aks show \ --resource-group <RGName> \ --name <ClusterName> \ --query "servicePrincipalProfile"
Se o cluster estiver usando uma identidade gerenciada, a saída será exibida
clientId
com um valor msi. Um cluster utilizando um principal de serviço exibe um identificador de objeto. Por exemplo:# The cluster is using a managed identity. { "clientId": "msi" }
Depois de confirmar que o cluster está usando uma identidade gerenciada, localize o ID de recurso da identidade gerenciada usando o
az aks show
comando.az aks show --resource-group <RGName> \ --name <ClusterName> \ --query "identity"
Para uma identidade gerenciada atribuída pelo usuário, sua saída deve ser semelhante à saída de exemplo a seguir:
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": <identity-resource-id> "clientId": "<client-id>", "principalId": "<principal-id>" },
Atualize seu cluster com suas identidades existentes usando o
az aks update
comando. Forneça a ID de recurso da identidade gerenciada atribuída pelo usuário para o plano de controle para oassign-identity
argumento. Forneça o ID do recurso da identidade gerenciada do kubelet para oassign-kubelet-identity
argumento.az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Sua saída para uma atualização de cluster bem-sucedida usando sua própria identidade gerenciada kubelet deve ser semelhante à saída de exemplo a seguir:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Observação
Se o cluster estava a usar --attach-acr
para extrair imagens do Registro de Contêiner do Azure, execute o comando az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID>
depois de atualizar o cluster para que o kubelet recém-criado, que utiliza identidade gerida, obtenha permissão para extrair do ACR. Caso contrário, você não poderá extrair do ACR após a atualização.
Obter as propriedades da identidade kubelet
Para obter as propriedades da identidade de kubelet, chame az aks show e consulte a propriedade identityProfile.kubeletidentity
.
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query "identityProfile.kubeletidentity"
Limitações de identidade kubelet pré-configuradas
Observe as seguintes limitações para a identidade kubelet pré-criada:
- Uma identidade kubelet pré-criada deve ser uma identidade gerenciada atribuída pelo usuário.
- As regiões Leste da China e Norte da China no Microsoft Azure operadas pela 21Vianet não são suportadas.
Resumo das identidades gerenciadas usadas pelo AKS
O AKS usa várias identidades gerenciadas para serviços e complementos integrados.
Identidade | Nome | Caso de uso | Permissões padrão | Traga a sua própria identidade |
---|---|---|---|---|
Plano de controlo | Nome do cluster AKS | Usado por componentes do plano de controlo do AKS para gerir recursos do cluster, incluindo balanceadores de carga de ingressos e IPs públicos geridos pelo AKS, Autoescalador de Cluster, Disco do Azure, Ficheiro, e drivers CSI de Blob. | Função de colaborador para o grupo de recursos Node | Suportado |
Kubelet | Nome do Cluster AKS-agentpool | Autenticação com o Azure Container Registry (ACR). | N/A (para kubernetes v1.15+) | Suportado |
Suplemento | AzureNPM | Não é necessária identidade. | N/A | Não |
Suplemento | Monitoramento de rede AzureCNI | Não é necessária identidade. | N/A | Não |
Suplemento | azure-policy (gatekeeper) | Não é necessária identidade. | N/A | Não |
Suplemento | política do Azure | Não é necessária identidade. | N/A | Não |
Suplemento | Calico | Não é necessária identidade. | N/A | Não |
Suplemento | roteamento de aplicativos | Gerencia o DNS do Azure e os certificados do Azure Key Vault | Segredos do Cofre da Chave Função de utilizador para o Cofre da Chave, função de Colaborador da Zona DNZ para zonas DNS, função de Colaborador da Zona DNS Privada para zonas DNS privadas | Não |
Suplemento | HTTPApplicationRouting | Gerencia os recursos de rede necessários. | Função de leitor para o grupo de recursos do nó, função de colaborador para a zona DNS. | Não |
Suplemento | Gateway de aplicativo de ingresso | Gerencia os recursos de rede necessários. | Função de colaborador para o grupo de recursos do nó | Não |
Suplemento | omsagent | Usado para enviar métricas AKS para o Azure Monitor. | Função de Publicador de Métricas de Monitoramento | Não |
Suplemento | Virtual-Node (ACIConnector) | Gerencia os recursos de rede necessários para as Instâncias de Contêiner do Azure (ACI). | Função de colaborador para o grupo de recursos do nó | Não |
Suplemento | Análise de custos | Usado para coletar dados de alocação de custos | ||
Identidade da carga de trabalho | ID de carga de trabalho do Microsoft Entra | Permite que os aplicativos acessem recursos de nuvem com segurança com o ID de carga de trabalho do Microsoft Entra. | N/A | Não |
Importante
A identidade gerenciada por pod de código aberto Microsoft Entra (visualização) no Serviço Kubernetes do Azure foi descontinuada em 24/10/2022, e o projeto arquivado em setembro de 2023. Para obter mais informações, consulte o aviso de descontinuação. O complemento AKS Managed começa a ser descontinuado em setembro de 2024.
Recomendamos que você revise o ID da carga de trabalho do Microsoft Entra. A autenticação Entra Workload ID substitui a funcionalidade de identidade gerida por pod, agora preterida (pré-visualização). A ID de Carga de Trabalho do Entra é o método recomendado para permitir que um aplicativo em execução em um pod se autentique em outros serviços do Azure que oferecem suporte a ele.
Limitações
Não há suporte para mover ou migrar um cluster gerenciado habilitado para identidade para um locatário diferente.
Se o cluster tiver a identidade gerida pelo pod do Microsoft Entra (
aad-pod-identity
) ativada, os pods de Identidade Node-Managed (NMI) modificarão os iptables dos nós para interceptar chamadas para o ponto de extremidade IMDS (Metadados de Instância do Azure). Essa configuração significa que qualquer solicitação feita ao endpoint IMDS é intercetada pelo NMI, mesmo que um pod específico não useaad-pod-identity
.A definição de recurso personalizada (CRD) AzurePodIdentityException pode ser configurada para especificar que as solicitações para o ponto de extremidade IMDS originadas de um pod com rótulos correspondentes definidos no CRD devem ser encaminhadas por proxy sem qualquer processamento no NMI. Exclua os pods do sistema com o rótulo
kubernetes.azure.com/managedby: aks
no namespace kube-system ao configurar o CRD AzurePodIdentityExceptionaad-pod-identity
. Para obter mais informações, consulte Usar identidades geridas por pod do Microsoft Entra no Serviço de Kubernetes do Azure.Para configurar uma exceção, instale o mic-exception YAML.
O AKS não suporta o uso de uma identidade gerenciada atribuída ao sistema ao usar uma zona DNS privada personalizada.
Próximos passos
- Use os modelos do Azure Resource Manager para criar um cluster gerenciado habilitado para identidade.
- Saiba como usar o kubelogin para todos os métodos de autenticação Microsoft Entra suportados no AKS.
Azure Kubernetes Service