Obtención de acceso seguro a los recursos de Azure en Azure Kubernetes Service mediante Acceso de confianza
Muchos servicios de Azure que se integran en Azure Kubernetes Service (AKS) necesitan acceso al servidor de API de Kubernetes. Para no conceder a estos servicios acceso de administrador ni hacer que los clústeres de AKS sean públicos para el acceso a la red, puede usar la característica Acceso de confianza de AKS.
Esta característica proporciona a los servicios acceso seguro al servidor de API AKS mediante el back-end de Azure sin necesidad de un punto de conexión privado. En lugar de utilizar las identidades con permisos de Microsoft Entra, esta característica puede usar su identidad administrada asignada por el sistema para autenticarse en los servicios administrados y las aplicaciones que dese usar con los clústeres de AKS.
En este artículo se muestra cómo obtener acceso seguro desde los servicios de Azure a un servidor de API Kubernetes en AKS mediante Acceso de confianza.
Nota:
La API de Acceso de confianza está disponible con carácter general. Ofrecemos compatibilidad con disponibilidad general para la CLI de Azure, pero aún está en versión preliminar y requiere el uso de la extensión aks-preview.
IInformación general sobre la característica Acceso de confianza
Acceso de confianza aborda los escenarios siguientes:
Si se establece un intervalo de IP autorizadas en un clúster privado, es posible que los servicios de Azure no puedan acceder al servidor de API Kubernetes, a menos que se implemente un modelo de acceso mediante punto de conexión privado.
Proporcionar acceso de administrador a un servicio de Azure a API Kubernetes no sigue el procedimiento recomendado de acceso con privilegios mínimos, lo que podría provocar la elevación de privilegios o el riesgo de pérdida de credenciales. Por ejemplo, puede que tenga que implementar permisos de servicio a servicio con privilegios elevados, algo que no es lo más apropiado en las revisiones de auditoría.
Puede usar Acceso de confianza para dar consentimiento explícito a su identidad administrada asignada por el sistema de los recursos permitidos para acceder a los clústeres de AKS mediante un recurso de Azure denominado enlace de roles. Los recursos de Azure acceden a los clústeres de AKS a través de la puerta de enlace regional de AKS por medio de la autenticación de identidades administradas asignadas por el sistema. Los permisos de Kubernetes adecuados se asignan mediante un recurso de Azure denominado rol. Acceso de confianza le permite acceder a los clústeres de AKS con diferentes configuraciones, incluidos, entre otros, los clústeres privados, los que tienen cuentas locales desactivadas, los de Microsoft Entra o los de intervalos de IP autorizadas.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Tipos de recursos que admiten la identidad administrada asignada por el sistema.
- La versión 2.53.0 de la CLI de Azure, o cualquier versión posterior. Ejecute
az --version
para buscar su versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. - Para saber qué roles deben usarse en los diferentes escenarios, consulte estos artículos:
Creación de un clúster de AKS
Cree un clúster de AKS en la misma suscripción que el recurso de Azure que desea que acceda al clúster.
Selección de los roles de Acceso de confianza necesarios
Los roles que seleccione dependen de los servicios de Azure que desee que accedan al clúster de AKS. Los servicios de Azure ayudan a crear roles y enlaces de rol que crean la conexión desde el servicio de Azure hasta AKS.
Para buscar los roles que necesita, consulte la documentación del servicio de Azure que desea conectar a AKS. También puede usar la CLI de Azure para enumerar los roles que están disponibles para el servicio de Azure. Por ejemplo, para enumerar los roles de Azure Machine Learning, use el siguiente comando:
az aks trustedaccess role list --location $LOCATION
Creación de un enlace de red de Acceso de confianza
Después de confirmar el rol que se va a usar, recurra a la CLI de Azure para crear un enlace de roles de Acceso de confianza en el clúster de AKS. El enlace de roles asocia cualquier rol que se seleccione al servicio de Azure.
# Create a Trusted Access role binding in an AKS cluster
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
Este es un ejemplo:
# Sample command
az aks trustedaccess rolebinding create --resource-group myResourceGroup --cluster-name myAKSCluster --name test-binding --source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning --roles Microsoft.MachineLearningServices/workspaces/mlworkload
Actualización de cualquier enlace de roles de Acceso de confianza existente
Los enlaces de roles existentes con un servicio de origen asociado se puede actualizar con nuevos roles.
Nota:
El administrador de complementos actualiza los clústeres cada cinco minutos, por lo que el nuevo enlace de roles puede tardar hasta cinco minutos en surtir efecto. Hasta que el nuevo enlace de roles surta efecto, seguirá funcionando el existente.
Puede usar el comando az aks trusted access rolebinding list
para comprobar el enlace de roles actual.
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
Mostrar un enlace de roles de Acceso seguro
Para mostrar un enlace de roles de Acceso seguro concreto, utilice el comando az aks trustedaccess rolebinding show
:
az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Enumeración de todos los enlaces de roles de Acceso de confianza de un clúster
Enumere todos los enlaces de rol de acceso de confianza para un clúster mediante el comando az aks trustedaccess rolebinding list
:
az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Eliminación de cualquier enlace de roles de Acceso de confianza en un clúster
Advertencia
Cuando se elimina un enlace de roles de Acceso seguro existente, el servicio de Azure se desconecta del clúster de AKS.
Para eliminar un enlace de roles de Acceso seguro existente, utilice el comando az aks trustedaccess rolebinding delete
:
az aks trustedaccess rolebinding delete --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Contenido relacionado
- Implementación y administración de extensiones de clúster para AKS
- Implementación de la extensión de Azure Machine Learning en un clúster de Kubernetes habilitado para AKS o Azure Arc
- Implementación de Azure Backup en un clúster de AKS
- Establecimiento de posiciones de contenedores sin agente en Microsoft Defender for Cloud para un clúster de AKS
Azure Kubernetes Service