Obtenha acesso seguro para recursos do Azure no Serviço Kubernetes do Azure usando o Acesso Confiável
Este artigo mostra como obter acesso seguro para seus serviços do Azure ao seu servidor de API do Kubernetes no Serviço Kubernetes do Azure (AKS) usando o Acesso Confiável.
O recurso Acesso Confiável fornece aos serviços acesso seguro ao servidor de API AKS usando o back-end do Azure sem exigir um ponto de extremidade privado. Em vez de depender de identidades que têm permissões do Microsoft Entra , esse recurso pode usar sua identidade gerenciada atribuída ao sistema para autenticar com os serviços gerenciados e aplicativos que você deseja usar com seus clusters AKS.
Nota
A API de Acesso Confiável está disponível em geral. Fornecemos suporte de disponibilidade geral (GA) para a CLI do Azure, mas ela ainda está em visualização e requer o uso da extensão aks-preview.
Visão geral do recurso Acesso Confiável
O Acesso Confiável aborda os seguintes cenários:
- Se um intervalo de IP autorizado estiver definido ou em um cluster privado, os serviços do Azure talvez não consigam acessar o servidor de API do Kubernetes, a menos que você implemente um modelo de acesso de ponto de extremidade privado.
- Conceder a um administrador de serviço do Azure acesso à API do Kubernetes não segue as práticas recomendadas de acesso com privilégios mínimos e pode levar a escalonamentos de privilégios ou risco de vazamento de credenciais. Por exemplo, talvez seja necessário implementar permissões de serviço a serviço com privilégios elevados, e elas não são ideais em uma revisão de auditoria.
Você pode usar o Acesso Confiável para dar consentimento explícito à sua identidade gerenciada atribuída pelo sistema de recursos permitidos para acessar seus clusters AKS usando um recurso do Azure chamado associação de função. Os seus recursos do Azure acedem a clusters AKS através do gateway regional AKS através da autenticação de identidade gerida atribuída pelo sistema. As permissões apropriadas do Kubernetes são atribuídas por meio de um recurso do Azure chamado função. Através do Acesso Fidedigno, pode aceder a clusters AKS com diferentes configurações, incluindo, entre outros, clusters privados, clusters com contas locais desativadas, clusters Microsoft Entra e clusters de intervalo IP autorizados.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Tipos de recursos que suportam a identidade gerenciada atribuída ao sistema.
- Azure CLI versão 2.53.0 ou posterior. Execute
az --version
para encontrar a sua versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). - Para saber quais funções usar em diferentes cenários, consulte estes artigos:
- Na mesma assinatura que o recurso do Azure que você deseja acessar o cluster, crie um cluster AKS.
Conectar-se ao cluster
Configure kubectl
para se conectar ao cluster usando o az aks get-credentials
comando.
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
Verifique a conexão com o cluster usando o kubectl get
comando.
kubectl get nodes
Selecione as funções de Acesso Confiável necessárias
As funções selecionadas dependem dos serviços do Azure que você deseja acessar o cluster AKS. Os serviços do Azure ajudam a criar funções e associações de função que criam a conexão do serviço do Azure com o AKS.
Para localizar as funções de que necessita, consulte a documentação do serviço do Azure ao qual pretende ligar ao AKS. Você também pode usar a CLI do Azure para listar as funções disponíveis para o serviço do Azure usando o az aks trustedaccess role list --location <location>
comando.
Criar uma associação de função de Acesso Confiável
Depois de confirmar qual função usar, use a CLI do Azure para criar uma associação de função de Acesso Confiável no cluster AKS. A associação de função associa sua função selecionada ao serviço do Azure.
export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"
az aks trustedaccess rolebinding create --resource-group ${RESOURCE_GROUP_NAME} --cluster-name ${CLUSTER_NAME} --name ${ROLE_BINDING_NAME} --source-resource-id ${SOURCE_RESOURCE_ID} --roles ${ROLE_NAME_1},${ROLE_NAME_2}
Resultados:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
"name": "${ROLE_BINDING_NAME}",
"provisioningState": "Succeeded",
"resourceGroup": "${RESOURCE_GROUP_NAME}",
"roles": [
"${ROLE_NAME_1}",
"${ROLE_NAME_2}"
],
"sourceResourceId": "${SOURCE_RESOURCE_ID}",
"systemData": null,
"type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}
Atualizar uma associação de função de Acesso Confiável existente
Para uma associação de função existente que tenha um serviço de origem associado, você pode atualizar a associação de função com novas funções usando o az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4
comando. Este comando atualiza a associação de função com as novas funções que você especificar.
Nota
O gerenciador de complementos atualiza clusters a cada cinco minutos, portanto, a nova vinculação de função pode levar até cinco minutos para entrar em vigor. Antes que a nova vinculação de função entre em vigor, a vinculação de função existente ainda funciona.
Você pode usar o az aks trusted access rolebinding list
comando para verificar a vinculação de função atual.
Mostrar uma vinculação de função de Acesso Confiável
Mostrar uma ligação de função de Acesso Confiável específica usando o az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
comando.
Listar todas as associações de função de Acesso Confiável para um cluster
Liste todas as associações de função de Acesso Confiável para um cluster usando o az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
comando.
Conteúdos relacionados
Azure Kubernetes Service