Share via


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

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