Ayude a mejorar esta página
¿Quiere contribuir a esta guía del usuario? Elija el enlace Editar esta página en GitHub que se encuentra en el panel derecho de cada página. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.
Control del acceso de la red al punto de conexión del servidor de API del clúster
Esto lo ayudará a habilitar el acceso privado al punto de conexión del servidor de API de Kubernetes en su clúster de Amazon EKS, y a limitar, o deshabilitar completamente, el acceso público desde internet.
Cuando se crea un clúster nuevo, Amazon EKS crea un punto de conexión para el servidor de la API de Kubernetes administrado que utiliza a fin de comunicarse con su clúster (mediante herramientas de administración de Kubernetes como, por ejemplo, kubectl
). De forma predeterminada, este punto de conexión del servidor de la API es público en Internet y el acceso al servidor de la API está protegido mediante una combinación de AWS Identity and Access Management (IAM) y el Control de acceso basado en rol
formato de punto de conexión del clúster IPv6
EKS crea un punto de conexión único de doble pila con el siguiente formato para los nuevos clústeres IPv6
que se creen después de octubre de 2024. Un clúster IPv6 es un clúster en el que selecciona IPv6
en la configuración de la familia IP (ipFamily
) del clúster.
nota
El punto de conexión de clúster de doble pila se introdujo en octubre de 2024. Para obtener más información acerca de los clústeres IPv6
, consulte Obtenga información sobre la asignación de direcciones IPv6 a clústeres, Pods y servicios. En su lugar, los clústeres creados antes de octubre de 2024 utilizan el siguiente formato de punto de conexión.
Formato de punto de conexión del clúster IPv4
EKS crea un punto de conexión único en el siguiente formato para cada clúster en el que se selecciona IPv4
en la configuración de familia IP (ipFamily) del clúster:
nota
Antes de octubre de 2024, los clústeres IPv6
también utilizaban este formato de punto de conexión. En el caso de estos clústeres, tanto en el punto de conexión público como en el privado, solo se resuelven direcciones IPv4
a través de este punto de conexión.
Punto de conexión privado del clúster
Puede habilitar el acceso privado al servidor de la API de Kubernetes para que toda la comunicación entre los nodos y el servidor de la API permanezcan dentro de su VPC. Puede limitar las direcciones IP que pueden acceder a su servidor de API desde Internet o desactivar por completo el acceso a Internet al servidor de API.
nota
Debido a que este punto de conexión es para el servidor de API de Kubernetes y no un punto de conexión tradicional de AWS PrivateLink para comunicarse con una API de AWS, no aparece como un punto de conexión en la consola de Amazon VPC.
Al habilitar el acceso privado al punto de conexión para el clúster, Amazon EKS crea una zona alojada privada de Route 53 en su nombre y la asocia a la VPC de su clúster. Esta zona alojada privada se administra mediante Amazon EKS y no aparece en los recursos de Route 53 de su cuenta. Para que la zona privada alojada dirija el tráfico adecuadamente a su servidor de API, su VPC debe tener enableDnsHostnames
y enableDnsSupport
establecidos en true
y las opciones de DHCP establecidas para su VPC deben incluir AmazonProvidedDNS
en su lista de servidores de nombres de dominios. A fin de obtener más información, consulte Actualización de soporte de DNS para su VPC en la guía del usuario de Amazon VPC.
Puede definir los requisitos de acceso al punto de conexión del servidor de la API al crear un nuevo clúster; puede actualizar el acceso al punto de conexión del servidor de la API para un clúster en cualquier momento.
Modificar el acceso al punto de conexión del clúster
Utilice los procedimientos de esta sección para modificar el acceso al punto de conexión para un clúster existente. En la siguiente tabla se muestran las combinaciones de acceso al punto de conexión del servidor de la API y sus comportamientos asociados.
Acceso público al punto de conexión | Acceso privado al punto de conexión | Comportamiento |
---|---|---|
Habilitado |
Deshabilitado |
|
Habilitado |
Habilitado |
|
Deshabilitado |
Habilitado |
|
Puede modificar el acceso al punto de conexión del servidor de la API del clúster mediante la AWS Management Console o la AWS CLI.
Configuración del acceso al punto de conexión: consola de AWS
-
Abra la consola de Amazon EKS
. -
Elija el nombre del clúster para mostrar la información del clúster.
-
En la pestaña Networking (Redes), elija Update (Actualizar).
-
Para el acceso privado, decida si desea habilitar o deshabilitar el acceso privado al punto de conexión del servidor de API de Kubernetes del clúster. Si habilita el acceso privado, las solicitudes de la API de Kubernetes que provengan desde dentro de la VPC del clúster utilizan el punto de conexión de VPC privada. Debe habilitar el acceso privado para deshabilitar el acceso público.
-
Para el acceso público, decida si desea habilitar o deshabilitar el acceso público al punto de conexión del servidor de API de Kubernetes del clúster. Si deshabilita el acceso público, el servidor de la API de Kubernetes del clúster solo puede recibir solicitudes que provengan desde dentro de la VPC del clúster.
-
(Opcional) Si ha habilitado el acceso público, puede especificar qué direcciones de Internet pueden comunicarse con el punto de conexión público. Seleccione Advanced Settings (Configuración avanzada). Introduzca un bloque de CIDR, como
203.0.113.5/32
. El bloque no puede incluir direcciones reservadas. Puede introducir bloques adicionales seleccionando Add Source (Agregar origen). Hay un número máximo de bloques de CIDR que puede especificar. Para obtener más información, consulte Visualización y administración de Amazon EKS y las Service Quotas de Fargate. Si no especifica ningún bloque, el punto de conexión del servidor de API público recibe solicitudes de todas las direcciones IP ( 0.0.0.0/0
). Si restringe el acceso a su punto de conexión público mediante bloques de CIDR, se recomienda habilitar también el acceso al punto de conexión privado para que los nodos y los Pods de Fargate (si los utiliza) puedan comunicarse con el clúster. Si el punto de conexión privado no está habilitado, los orígenes de CIDR del punto de conexión de acceso público deben incluir los orígenes de salida de la VPC. Por ejemplo, si tiene un nodo en una subred privada que se comunica con Internet a través de una puerta de enlace NAT, deberá agregar la dirección IP saliente de la puerta de enlace NAT como parte de un bloque de CIDR permitido en su punto de conexión público. -
Elija Update (Actualizar) para finalizar.
Configuración del acceso al punto de conexión: AWS CLI
Complete los siguientes pasos con la versión 1.27.160
o posterior de la CLI de AWS. Puede comprobar su versión actual con aws --version
. Para instalar o actualizar la AWS CLI, consulte Instalación de la AWS CLI.
-
Actualice el acceso al punto de conexión del servidor de la API del clúster con el siguiente comando de la AWS CLI. Sustituya el nombre de su clúster y los valores de acceso de punto de conexión deseados. Si configura el
endpointPublicAccess=true
, podrá introducir un solo bloque de CIDR o una lista separada por comas de bloques de CIDR parapublicAccessCidrs
. Los bloques no pueden incluir direcciones reservadas. Si especifica bloques de CIDR, el punto de conexión del servidor de API público solo recibirá solicitudes de los bloques enumerados. Hay un número máximo de bloques de CIDR que puede especificar. Para obtener más información, consulte Visualización y administración de Amazon EKS y las Service Quotas de Fargate. Si restringe el acceso a su punto de conexión público mediante bloques de CIDR, se recomienda habilitar también el acceso al punto de conexión privado para que los nodos y los Pods de Fargate (si los utiliza) puedan comunicarse con el clúster. Si el punto de conexión privado no está habilitado, los orígenes de CIDR del punto de conexión de acceso público deben incluir los orígenes de salida de la VPC. Por ejemplo, si tiene un nodo en una subred privada que se comunica con Internet a través de una puerta de enlace NAT, deberá agregar la dirección IP saliente de la puerta de enlace NAT como parte de un bloque de CIDR permitido en su punto de conexión público. Si no especifica ningún bloque de CIDR, el punto de conexión del servidor de API público recibe solicitudes de todas las direcciones IP (0.0.0.0/0). nota
El siguiente comando habilita el acceso privado y público desde una única dirección IP al punto de conexión del servidor de API. Reemplace
203.0.113.5/32
por un único bloque de CIDR o una lista separada por comas de bloques de CIDR a los que desea restringir el acceso a la red.aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true
Un ejemplo de salida sería el siguiente.
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
-
Monitoree el estado de la actualización del acceso al punto de conexión con el siguiente comando, utilizando el nombre del clúster y el ID de actualización devueltos por el comando anterior. Su actualización se habrá completado cuando el estado mostrado sea
Successful
.aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000
Un ejemplo de salida sería el siguiente.
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
Acceso a un servidor de API solo privado
Si ha deshabilitado el acceso público al punto de conexión del servidor de la API de Kubernetes del clúster, solo puede obtener acceso al servidor de API desde dentro de la VPC o desde una red conectada. Hay varias formas de obtener acceso al punto de conexión del servidor de API de Kubernetes:
- Red conectada
-
Conecte su red a la VPC con una puerta de enlace de tránsito de AWS u otra opción de conectividad y, a continuación, utilice un equipo en la red conectada. Debe asegurarse de que el grupo de seguridad del plano de control de Amazon EKS tiene reglas para permitir el tráfico de entrada en el puerto 443 desde la red conectada.
- Host bastión de Amazon EC2
-
Puede lanzar una instancia de Amazon EC2 en una subred pública de la VPC del clúster y, a continuación, iniciar sesión mediante SSH en esa instancia para ejecutar comandos de
kubectl
. Para obtener más información, consulte Hosts bastión de Linux en AWS. Debe asegurarse de que el grupo de seguridad del plano de control de Amazon EKS tiene reglas para permitir el tráfico de entrada en el puerto 443 desde su host bastión. Para obtener más información, consulte Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres. Cuando configure
kubectl
para el host bastión, asegúrese de utilizar las credenciales de AWS que ya están asignadas a su configuración de RBAC del clúster o agregue la entidad principal de IAM que utilizará el bastión a la configuración de RBAC antes de eliminar el acceso público al punto de conexión. Para obtener más información, consulte Concesión a los usuarios y roles de IAM de acceso a las APIs de Kubernetes y Acceso denegado o no autorizado (kubectl). - IDE de AWS Cloud9
-
AWS Cloud9 es un entorno de desarrollo integrado (IDE) basado en la nube que permite escribir, ejecutar y depurar su código con solo un navegador. Puede crear un IDE de AWS Cloud9 en la VPC de su clúster y utilizar el IDE para comunicarse con el clúster. Para obtener más información, consulte Creación de un entorno en AWS Cloud9. Debe asegurarse de que el grupo de seguridad del plano de control de Amazon EKS tiene reglas para permitir el tráfico de entrada en el puerto 443 desde el grupo de seguridad de IDE. Para obtener más información, consulte Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres.
Cuando configure
kubectl
para el IDE de AWS Cloud9, asegúrese de utilizar las credenciales de AWS que ya están asignadas a su configuración de RBAC del clúster o agregue la entidad principal de IAM que utilizará el IDE a la configuración de RBAC antes de eliminar el acceso público al punto de conexión. Para obtener más información, consulte Concesión a los usuarios y roles de IAM de acceso a las APIs de Kubernetes y Acceso denegado o no autorizado (kubectl).