Consideraciones sobre grupos de seguridad de Amazon EKS - Amazon EKS

Consideraciones sobre grupos de seguridad de Amazon EKS

En las siguientes secciones se describe la configuración del grupo de seguridad mínima requerida y recomendada para el clúster, el plano de control y los grupos de seguridad del nodo del clúster. Estas consideraciones dependen de la versión de Kubernetes y la versión de la plataforma de Amazon EKS que utilice.

Grupo de seguridad de clúster

Los clústeres de Amazon EKS, a partir de la versión 1.14 de Kubernetes y la versión de plataforma eks.3, crean un grupo de seguridad de clúster cuando se crean. Esto también ocurre cuando un clúster de una versión anterior se actualiza a esta versión de Kubernetes y la versión de la plataforma. El grupo de seguridad de clúster se ha diseñado para permitir que todo el tráfico del plano de control y de los grupos de nodos administrados fluya libremente entre sí. Al asignar el grupo de seguridad de clúster a las interfaces de red elásticas creadas por Amazon EKS que permiten que el plano de control se comunique con las instancias del grupo de nodos administrado, no es necesario configurar reglas de grupo de seguridad complejas para permitir esta comunicación. Cualquier instancia o interfaz de red asignada a este grupo de seguridad puede comunicarse libremente con otros recursos con este grupo de seguridad.

Puede buscar un grupo de seguridad de clúster para su clúster en la AWS Management Console, en la sección Networking (Redes) del clúster, o con el siguiente comando de AWS CLI:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.clusterSecurityGroupId

Recomendamos que agregue el grupo de seguridad de clúster a todos los grupos de nodos existentes y futuros. Para obtener más información, consulte Grupos de seguridad de su VPC en la Guía del usuario de Amazon VPC. Los grupos de nodos administrados de Amazon EKS se configuran de forma automática para utilizar el grupo de seguridad de clúster.

Protocolo Puertos Fuente Destino

Tráfico de entrada recomendado

Todos

Todos

El mismo

Tráfico de salida recomendado

Todos

Todos

0.0.0.0/0

Restringir el tráfico del clúster

Si debe limitar los puertos abiertos entre el plano de control y los nodos, el grupo de seguridad de clúster predeterminado se puede modificar para solo permitir los siguientes puertos mínimos requeridos. Los puertos mínimos requeridos son iguales a los de las versiones anteriores de Amazon EKS.

Protocolo Puerto Fuente Destino
Tráfico de entrada mínimo TCP

443

Grupo de seguridad de clúster
Tráfico de entrada mínimo* TCP

10250

Grupo de seguridad de clúster
Tráfico de salida mínimo TCP

443

Grupo de seguridad de clúster

Tráfico de salida mínimo* TCP

10250

Grupo de seguridad de clúster

* Cualquier protocolo y puerto que espere que sus nodos utilicen para la comunicación entre nodos debe incluirse, si es necesario. Los nodos también requieren acceso a Internet saliente a las API de Amazon EKS para la introspección del clúster y el registro de nodos en el momento del lanzamiento, o que haya implementado la configuración necesaria requerida en Clústeres privados. Para extraer imágenes de contenedor, deben tener acceso a Amazon S3, las API de Amazon ECR y cualquier otro registro de contenedor del que necesiten extraer imágenes, como DockerHub. Para obtener más información, consulte Rangos de direcciones IP de AWS en la Referencia general de AWS.

Grupos de seguridad de nodo y plano de control

Para clústeres de Amazon EKS anteriores a la versión 1.14 de Kubernetes y la versión de plataforma eks.3, la comunicación entre el plano de control y el nodo se configura al crear de forma manual un grupo de seguridad de plano de control y especificar ese grupo de seguridad al crear el clúster. Cuando se creó el clúster, este grupo de seguridad se adjuntó a las interfaces de red creadas por Amazon EKS que permiten la comunicación entre el plano de control y los nodos. Estas interfaces de red cuentan con Amazon EKS <cluster name> en su descripción.

nota

Si utilizó la API de forma directa, o una herramienta como AWS CloudFormation a fin de crear el clúster y no especificó un grupo de seguridad, el grupo de seguridad predeterminado para la VPC se aplicó a las interfaces de red entre cuentas del plano de control.

Puede comprobar el grupo de seguridad del plano de control del clúster en la AWS Management Console, en la sección Networking (Redes) del clúster (en la lista Grupos de seguridad adicionales) o con el siguiente comando AWS CLI:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.securityGroupIds

Si lanza nodos con la plantilla de AWS CloudFormation en la explicación Introducción a Amazon EKS, AWS CloudFormation modifica el grupo de seguridad del plano de control para permitir la comunicación con los nodos. Amazon EKS recomienda encarecidamente que utilice un grupo de seguridad dedicado para cada plano de control (uno para cada clúster). Si comparte un grupo de seguridad del plano de control con otros clústeres o recursos de Amazon EKS, puede bloquear o interrumpir las conexiones a esos recursos.

El grupo de seguridad de los nodos y el grupo de seguridad para la comunicación del plano de control con los nodos se han configurado para evitar la comunicación con puertos privilegiados de los nodos. Si las aplicaciones requieren mayor acceso entrante o saliente desde el plano de control o los nodos, deberá agregar las reglas correspondientes a los grupos de seguridad asociados al clúster. Para obtener más información, consulte Grupos de seguridad de su VPC en la Guía del usuario de Amazon VPC.

nota

Para permitir la funcionalidad de proxy en los puertos privilegiados o ejecutar pruebas de conformidad CNCF por su cuenta, debe editar los grupos de seguridad del plano de control y de los nodos. El grupo de seguridad en el lado de los nodos debe permitir el acceso de entrada en los puertos 0-65535 desde el plano de control y el lado del plano de control debe permitir el acceso saliente hacia los nodos en los puertos 0-65535.

Grupo de seguridad del plano de control
Protocolo Rango de puerto Fuente Destino
Tráfico de entrada mínimo

TCP

443

Todos los grupos de seguridad de nodos

Cuando el acceso privado de punto de enlace del clúster está habilitado: cualquier grupo de seguridad que genera tráfico de cliente de servidor de API (como comandos kubectl en un host bastión dentro de la VPC de su clúster)

Tráfico de entrada recomendado

TCP

443

Todos los grupos de seguridad de nodos

Cuando el acceso privado de punto de enlace del clúster está habilitado: cualquier grupo de seguridad que genera tráfico de cliente de servidor de API (como comandos kubectl en un host bastión dentro de la VPC de su clúster)

Tráfico de salida mínimo

TCP

10250

Todos los grupos de seguridad de nodos

Tráfico de salida recomendado

TCP

1025-65535

Todos los grupos de seguridad de nodos

Grupo de seguridad de nodos
Protocolo Rango de puerto Fuente Destino
Tráfico de entrada mínimo (desde otros nodos)

Cualquier protocolo que los nodos puedan utilizar para la comunicación entre nodos

Cualquier puerto que los nodos puedan utilizar para la comunicación entre nodos

Todos los grupos de seguridad de nodos

Tráfico de entrada mínimo (desde el plano de control)

TCP

10250

Grupo de seguridad del plano de control

Tráfico de entrada recomendado

Todos

TCP

Todos

443, 1025-65535

Todos los grupos de seguridad de nodos

Grupo de seguridad del plano de control

Tráfico de salida mínimo*

TCP

443

Grupo de seguridad del plano de control

Tráfico de salida recomendado

Todos

Todos

0.0.0.0/0

* Los nodos también requieren acceso a las API de Amazon EKS para la introspección del clúster y el registro de nodos al momento del lanzamiento a través de los puntos de enlace de la VPC o Internet. Para extraer las imágenes de contenedor, deben tener acceso a las API de Amazon S3 y Amazon ECR (y cualquier otro registro de contenedor, como DockerHub). Para obtener más información, consulte Rangos de direcciones IP de AWS en la Referencia general de AWS y Clústeres privados.

Uno, y solo uno, de los grupos de seguridad asociados a los nodos debe tener la siguiente etiqueta aplicada: Para obtener más información sobre el etiquetado, consulte Uso de etiquetas mediante la consola.

Clave Valor

kubernetes.io/cluster/<cluster-name>

owned