Acceso a un servidor de API de Azure Kubernetes Service (AKS)
En este artículo se describen las opciones para conectarse al servidor de API del clúster de Azure Kubernetes Service (AKS). En un clúster de AKS estándar, el servidor de API se expone a través de Internet. En un clúster de AKS privado, solo puede conectarse a Internet desde un dispositivo que tenga acceso de red al clúster privado.
Planear el acceso al servidor de API es una actividad de día cero y la forma en que accede al servidor depende de su escenario de implementación.
Acceso al servidor de API de AKS
Para administrar un clúster de AKS, interactúe con su servidor de API. Es esencial limitar el acceso del servidor de API solo a los usuarios necesarios. Puede proporcionar acceso pormenorizados mediante la integración del clúster de AKS con el identificador de Microsoft Entra. Los administradores pueden administrar el acceso mediante el control de acceso basado en rol (RBAC). También pueden colocar usuarios e identidades en grupos de Microsoft Entra y asignar roles y permisos adecuados. La autenticación de Microsoft Entra está habilitada en clústeres de AKS a través de OpenID Connect. Para obtener más información, consulte los siguientes recursos:
Nota
Puede mejorar la seguridad del clúster de AKS al permitir que solo intervalos de direcciones IP autorizados acceder al servidor de API.
Azure DDoS Protection, junto con los procedimientos recomendados de diseño de aplicaciones, proporciona características de mitigación mejoradas frente a ataques de denegación de servicio distribuido (DDoS). Habilite DDoS Protection en cada red virtual perimetral.
Acceso a un clúster de AKS a través de Internet
Cuando se crea un clúster no privado que se resuelve en el nombre de dominio completo (FQDN) del servidor de API, se le asigna una dirección IP pública de forma predeterminada. Puede conectarse al clúster mediante Azure Portal o un shell como la CLI de Azure, PowerShell o el símbolo del sistema.
Nota
Puede usar el cliente de línea de comandos de Kubernetes kubectl
para conectarse a un clúster a través de Internet.
Cloud Shell
azure Cloud Shell es un shell integrado en Azure Portal. Puede administrar y conectarse a recursos de Azure desde Cloud Shell, como puede hacerlo desde PowerShell o la CLI de Azure.
Acceso a un clúster privado de AKS
Hay varias maneras de conectarse a un clúster privado de AKS. El acceso de planificación es una actividad de día cero que se basa en las necesidades y limitaciones de su escenario. Puede conectarse al clúster privado mediante los siguientes componentes y servicios:
Un jump box implementado en una subred como estación de trabajo de operaciones: Esta configuración puede ser máquinas virtuales (VM) persistentes independientes en un conjunto de disponibilidad de o conjuntos de escalado de máquinas virtuales de Azure.
Azure Container Instances y un cliente compatible con OpenSSH : Implementación de una instancia de contenedor que ejecuta un servidor secure Shell (SSH) y, a continuación, use el cliente compatible con OpenSSH para acceder al contenedor. Este contenedor actúa como un jump box dentro de la red para llegar al clúster privado.
Azure Bastion: Uso de Azure Bastion para establecer un acceso remoto más seguro basado en explorador a las máquinas virtuales o cuadros de acceso directo dentro de azure Virtual Network. Este acceso le permite conectarse de forma más segura a puntos de conexión privados, como el servidor de API de AKS.
red privada virtual (VPN): Crear una conexión VPN segura que extienda la red local o remota a la red virtual. Esta conexión le permite acceder al clúster privado, como si estuviera conectado localmente.
azure ExpressRoute: Use ExpressRoute para crear una conexión privada dedicada entre la red local y Azure. Esta conexión ayuda a garantizar un acceso más seguro y confiable al clúster privado sin usar la red pública de Internet.
cli de Azure comando az aks invoca comando: Realizar comandos directamente en el clúster de AKS mediante la CLI de Azure con el comando
az aks command invoke
. Este comando interactúa con el clúster sin exponer más puntos de conexión de red.instancia de Cloud Shell que se implementa en una subred conectada al servidor de API para el clúster: Implementar Cloud Shell en una subred vinculada al servidor de API del clúster. Este enfoque proporciona un entorno de línea de comandos administrado más seguro para administrar el clúster privado.
Azure Virtual Desktop: Acceder a Azure Virtual Desktop para usar escritorios de Windows o Linux como jumpboxes para administrar de forma más segura el clúster privado desde casi cualquier lugar.
Nota
Todo el tráfico al servidor de API se transmite a través del protocolo de control de transmisión al puerto 443 a través de HTTPS. Los grupos de seguridad de red (NSG) u otros firewalls de red deben permitir el tráfico desde el origen al FQDN del servidor de API en el puerto 443 para HTTPS. Las asignaciones de tráfico deben restringirse específicamente al FQDN para el servidor de API del clúster.
Azure Bastion
Azure Bastion es una oferta de plataforma como servicio que permite conexiones SSH o protocolo de escritorio remoto seguro (RDP) a una máquina virtual dentro de la red virtual que no requiere una dirección IP pública en la máquina virtual. Al conectarse a un clúster de AKS privado, use Azure Bastion para acceder a un jump box en la red virtual del concentrador.
Como alternativa, puede usar SSH, RDP y Servicios de Escritorio remoto para controlar de forma remota los cuadros de salto. El clúster de AKS reside en una red de radios, que la separa del jump box. El emparejamiento de redes virtuales conecta las redes en estrella tipo hub-and-spoke. El jump box puede resolver el FQDN del servidor de API de AKS mediante el punto de conexión privado de Azure, una zona DNS privada y un registro A de DNS. Esta configuración ayuda a garantizar que el FQDN del servidor de API solo se pueda resolver dentro de la red virtual. Esta configuración proporciona una conexión de confianza al clúster de AKS privado.
Nota
Para el acceso continuo al clúster de AKS privado, la disponibilidad y la redundancia de los jump boxes son cruciales. Para ayudar a garantizar esta confiabilidad, coloque los cuadros de salto en los conjuntos de disponibilidad y use virtual Machine Scale Sets que tengan pocas instancias de máquina virtual. Para obtener más información, consulte los siguientes recursos:
- información general de conjuntos de disponibilidad de
- ¿Qué es Virtual Machine Scale Sets?
Descargar un archivo de Visio de esta arquitectura.
Flujo de datos
Un usuario intenta conectarse a un jump box mediante Azure Bastion y un explorador HTML5 con cifrado de seguridad de la capa de transporte.
El usuario elige en el portal si se va a usar RDP o SSH para conectarse al jump box.
El usuario inicia sesión en el jump box a través de Azure Bastion. El intento de conectarse al clúster privado de AKS se realiza desde este jumpbox. La red virtual del concentrador tiene un vínculo de red virtual a la zona DNS privada de AKS para resolver el FQDN del clúster privado.
La red virtual del concentrador y la red virtual de radio se comunican entre sí mediante el emparejamiento de redes virtuales.
Para llegar al clúster de AKS privado, el tráfico entra en la red troncal de Azure. Un punto de conexión privado establece una conexión privada y aislada al clúster de AKS privado.
El tráfico llega al servidor de API del clúster de AKS privado. Después, el usuario puede administrar pods, nodos y aplicaciones.
Nota
El FQDN del clúster privado se puede resolver desde fuera de la red virtual si no deshabilitar directamente el FQDN público en un clúster existente.
Solución de problemas de conexión
Si no puede conectarse al clúster privado:
Compruebe el emparejamiento de red virtual. Este mecanismo proporciona conectividad de red a red entre dos redes virtuales. Para que el tráfico fluya entre esas dos redes, debe establecer el emparejamiento de red virtual entre ellas. Al establecer un emparejamiento de red virtual, se coloca una ruta en la tabla de rutas del sistema de la red virtual. Esa ruta proporciona una ruta de acceso para llegar al espacio de direcciones de destino. Para obtener más información sobre cómo solucionar problemas de emparejamientos de red virtual, consulte Crear, cambiar o eliminar un emparejamiento de red virtual.
Nota
No necesita un emparejamiento de red virtual si el jump box está en la misma red virtual que el punto de conexión privado y el clúster privado de AKS.
Compruebe el vínculo de red virtual a la zona DNS privada. Los vínculos de red virtual proporcionan una manera de que las máquinas virtuales que están dentro de las redes virtuales se conecten a una zona DNS privada y resuelvan los registros DNS dentro de la zona. Si no puede conectarse al clúster de AKS privado o no puede resolver el FQDN del clúster privado, compruebe si la red virtual tiene un vínculo de red virtual a la zona DNS privada. El nombre de la zona DNS privada debe tener el formato
privatelink.<region>.azmk8s.io
.Para obtener más información sobre cómo solucionar problemas de vínculos de red virtual, consulte los siguientes recursos:
Nota
Al crear un clúster de AKS privado, se crea una zona DNS privada que tiene un vínculo de red virtual a la red virtual que hospeda el clúster de AKS privado.
Mejora de la seguridad
Para ayudar a proteger las cargas de trabajo de AKS y sus jump boxes, use el acceso Just-In-Time (JIT) y una estación de trabajo de acceso con privilegios (PAW). El acceso JIT forma parte de Microsoft Defender for Cloud. Puede ayudar a minimizar la posible superficie expuesta a ataques y vulnerabilidades bloqueando el tráfico entrante a su jump box y permitiendo el acceso solo durante un tiempo especificado cuando sea necesario. Una vez expirado el tiempo, el acceso se revoca automáticamente. Para obtener más información, consulte acceso a máquinas Just-In-Time.
Los PAW son dispositivos protegidos que proporcionan alta seguridad para los operadores bloqueando vectores de ataque comunes, como el correo electrónico y la exploración web. Para obtener más información, consulte Protección de dispositivos como parte del artículo de acceso con privilegios.
VPN
Una conexión VPN proporciona conectividad híbrida desde el entorno local a Azure. Esta conectividad permite el acceso a un clúster de AKS privado. El servidor de API del clúster privado no es accesible fuera de las redes virtuales. Con una VPN, puede conectarse a la red virtual en Azure a través de un túnel cifrado, acceder al jump box y después conectarse al servidor de API del clúster privado.
Descargar un archivo de Visio de esta arquitectura.
Flujo de datos
Un usuario inicia el tráfico RDP o SSH al jump box desde una estación de trabajo local.
El tráfico de jump box deja los enrutadores perimetrales del cliente y el dispositivo VPN. El tráfico usa un túnel cifrado de seguridad del protocolo de Internet para atravesar Internet.
El tráfico de jump box alcanza la puerta de enlace de red virtual en Azure, que es el punto de entrada y salida de la infraestructura de red virtual de Azure.
Después de que el tráfico se mueva más allá de la puerta de enlace de red virtual, llega al jump box. El intento de conectarse al clúster privado de AKS se realiza desde el jump box. La red virtual del concentrador tiene un vínculo de red virtual a la zona DNS privada de AKS para resolver el FQDN del clúster privado.
La red virtual del concentrador y la red virtual de radio se comunican entre sí mediante un emparejamiento de red virtual.
Para llegar al clúster de AKS privado, el tráfico entra en la red troncal de Azure. Un punto de conexión privado establece una conexión privada y aislada al clúster de AKS privado.
El tráfico llega al servidor de API del clúster de AKS privado. Después, el usuario puede administrar pods, nodos y aplicaciones.
ExpressRoute
ExpressRoute proporciona conectividad al clúster privado de AKS desde un entorno local. ExpressRoute usa el protocolo de puerta de enlace de borde para intercambiar rutas entre la red local y Azure. Esta conexión crea una ruta de acceso segura entre los recursos de infraestructura como servicio y las estaciones de trabajo locales. ExpressRoute proporciona una conexión dedicada y aislada que tiene un ancho de banda y una latencia coherentes, lo que hace que sea ideal para entornos empresariales.
Descargar un archivo de Visio de esta arquitectura.
Flujo de datos
Un usuario inicia el tráfico RDP o SSH al jump box desde una estación de trabajo local.
El tráfico de jump box deja los enrutadores perimetrales del cliente y viaja en una conexión de fibra a la ubicación de encuentro donde reside el circuito ExpressRoute. El tráfico llega a los dispositivos Microsoft Enterprise Edge (MSEE) allí. A continuación, entra en el tejido de Azure.
El tráfico de jump box llega a la puerta de enlace de ExpressRoute, que es el punto de entrada y salida de la infraestructura de red virtual de Azure.
El tráfico llega al jump box. El intento de conectarse al clúster privado de AKS se realiza desde el jump box. La red virtual del concentrador tiene un vínculo de red virtual a la zona DNS privada de AKS para resolver el FQDN del clúster privado.
La red virtual del concentrador y la red virtual de radio se comunican entre sí mediante un emparejamiento de red virtual.
Para llegar al clúster de AKS privado, el tráfico entra en la red troncal de Azure. Un punto de conexión privado establece una conexión privada y aislada al clúster de AKS privado.
El tráfico llega al servidor de API del clúster de AKS privado. Después, el usuario puede administrar pods, nodos y aplicaciones.
Nota
ExpressRoute requiere un proveedor de conectividad que no sea de Microsoft para proporcionar una conexión de emparejamiento a los enrutadores MSEE. tráfico de ExpressRoute no está cifrado.
Ejecución de la invocación del comando aks
Con un clúster privado de AKS, puede conectarse desde una máquina virtual que tenga acceso al servidor de API. Use el comando aks command invoke
de la CLI de Azure para ejecutar comandos como kubectl
o helm
de forma remota a través de la API de Azure. Este enfoque crea un pod transitorio en el clúster, que solo dura durante el comando . El comando aks command invoke
actúa como un método de conexión alternativo si carece de una red virtual vpn, ExpressRoute o emparejada. Asegúrese de que el clúster y el grupo de nodos tengan recursos suficientes para crear el pod transitorio.
Para obtener más información, consulte Uso de la invocación de comandos para acceder a un clúster de AKS privado.
Conexión de Cloud Shell a una subred
Al implementar Cloud Shell en una red virtual que controle, puede interactuar con los recursos dentro de esa red. La implementación de Cloud Shell en una subred que administra permite la conectividad con el servidor de API de un clúster privado de AKS. Esta implementación permite conectarse al clúster privado. Para más información, consulte Implementación de Cloud Shell en una red virtual de Azure.
Uso de SSH y Visual Studio Code para pruebas
SSH administra y accede de forma segura a los archivos de un host remoto mediante pares de claves públicas y privadas. Desde la máquina local, puede usar SSH con la extensión Remote - SSH de Visual Studio Code para conectarse a un jump box en la red virtual. El túnel SSH cifrado finaliza en la dirección IP pública del jump box, lo que facilita la modificación de los archivos de manifiesto de Kubernetes.
Para obtener información sobre cómo conectarse a su jump box a través de SSH, consulte Desarrollo remoto a través de SSH.
Si no puede conectarse a la máquina virtual a través de SSH para administrar el clúster privado:
Compruebe la regla de NSG de entrada para la subred de la máquina virtual. La regla de NSG predeterminada bloquea todo el tráfico entrante desde fuera de Azure, por lo que cree una nueva regla que permita el tráfico SSH desde la dirección IP pública del equipo local.
Compruebe la ubicación del certificado y compruebe la ubicación correcta de los certificados. Asegúrese de que la clave privada está en el directorio
C:\Users\User\.ssh\id_rsa
de la máquina local y de que la clave pública se encuentra en el archivo~/.ssh/id_rsa.pub
en la máquina virtual de Azure.
Nota
Le recomendamos que:
Evite usar una dirección IP pública para conectarse a recursos en entornos de producción. Use solo direcciones IP públicas en entornos de desarrollo o pruebas. En estos escenarios, cree una regla de NSG entrante para permitir el tráfico desde la dirección IP pública del equipo local. Para obtener más información sobre las reglas de NSG, consulte Crear, cambiar o eliminar un grupo de seguridad de red.
Evite usar SSH para conectarse directamente a nodos o contenedores de AKS. En su lugar, use una solución de administración externa dedicada. Esta práctica es especialmente importante cuando se usa el comando
aks command invoke
, que crea un pod transitorio dentro del clúster para el acceso proxy.
Conclusión
Puede acceder al servidor de API del clúster de AKS a través de Internet si el FQDN público está habilitado.
Cloud Shell es un shell de línea de comandos integrado en Azure Portal que puede usar para conectarse a un clúster de AKS.
Para un acceso más seguro, use Azure Bastion y un punto de conexión privado.
Las VPN y ExpressRoute proporcionan conectividad híbrida al clúster de AKS privado.
Si no hay ninguna solución de conectividad externa disponible, puede usar
aks command invoke
de forma remota.Puede implementar Cloud Shell directamente en una red virtual que administre para acceder al clúster privado.
Puede usar Visual Studio Code con SSH en un jump box para cifrar la conexión y simplificar la modificación del archivo de manifiesto. Sin embargo, este enfoque expone una dirección IP pública en su entorno.
Colaboradores
Microsoft mantiene este artículo. Los colaboradores siguientes escribieron este artículo.
Autores principales:
- Ayobami Ayodeji | Administrador de programas 2
- Ariel Ramír | Consultor sénior
- Bahram Rushenas | Arquitecto de incubación
Otros colaboradores:
- Shubham Agnihotri | Consultor
Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.
Pasos siguientes
- ¿Qué es Azure Bastion?
- Introducción a OpenSSH
- ¿Qué es un punto de conexión privado?
- ¿Qué es ExpressRoute?
- ¿Qué es Azure VPN Gateway?