Prácticas recomendadas de seguridad de red para Amazon ECS
La seguridad de la red es un tema amplio que abarca varios subtemas. Estos incluyen el cifrado en tránsito, la segmentación y el aislamiento de la red, los firewalls, el enrutamiento del tráfico y la observabilidad.
Cifrado en tránsito
El cifrado del tráfico de la red evita que los usuarios no autorizados intercepten y lean los datos cuando esos se transmiten en una red. Con Amazon ECS, el cifrado de red se puede implementar de cualquiera de las siguientes formas.
-
Con una malla de servicios (TLS):
Con AWS App Mesh, puede configurar las conexiones TLS entre los proxies de Envoy que se implementan con puntos de conexión de malla. Dos ejemplos son los nodos virtuales y las puertas de enlace virtuales. Los certificados TLS pueden provenir de AWS Certificate Manager (ACM). O bien, puede provenir de su propia autoridad de certificación privada.
-
Uso de instancias de Nitro:
De forma predeterminada, el tráfico se cifra automáticamente entre los siguientes tipos de instancia de Nitro: C5n, G4, I3en, M5dn, M5n, P3dn, R5dn y R5n. El tráfico no se cifra cuando se enruta a través de una puerta de enlace de tránsito, un equilibrador de carga o un intermediario similar.
-
Utilizar el protocolo de indicación del nombre del servidor (SNI) con el equilibrador de carga de aplicación:
El equilibrador de carga de aplicación (ALB) y el equilibrador de carga de red (NLB) admiten la indicación de nombre de servidor (SNI). Al usar la SNI, puede colocar varias aplicaciones seguras en un solo oyente. Para eso, cada oyente cuenta con su propio certificado TLS. Le recomendamos que aprovisione los certificados para el equilibrador de cargas mediante AWS Certificate Manager (ACM) y, a continuación, los agregue a la lista de certificados del oyente. El equilibrador de carga de AWS utiliza un algoritmo de selección de certificados inteligentes con SNI. Si el nombre de host proporcionado por un cliente coincide con un único certificado en la lista de certificados, el equilibrador de carga selecciona este certificado. Si un nombre de host proporcionado por un cliente coincide con varios certificados de la lista, el equilibrador de carga selecciona un certificado que el cliente puede admitir. Los ejemplos incluyen un certificado autofirmado o un certificado generado a través del ACM.
-
Cifrado de extremo a extremo con certificados TLS:
Esto implica implementar un certificado TLS con la tarea. Puede ser un certificado autofirmado o un certificado de una entidad de certificación de confianza. Puede obtener el certificado haciendo referencia a un secreto del certificado. De lo contrario, puede optar por ejecutar un contenedor que emita una solicitud de firma de certificado (CSR) a ACM y, a continuación, monte el secreto resultante en un volumen compartido.
Integración en red de las tareas
Las siguientes recomendaciones tienen en cuenta el funcionamiento de Amazon ECS. Amazon ECS no utiliza una red superpuesta. En su lugar, las tareas se configuran para funcionar en distintos modos de red. Por ejemplo, las tareas que están configuradas para usar el modo bridge
adquieren una dirección IP no enrutable de una red Docker que se ejecuta en cada host. Las tareas que están configuradas para usar el modo de red awsvpc
adquieren una dirección IP de la subred del host. Las tareas que se configuran con la red host
utilizan la interfaz de red del host. awsvpc
es el modo de red preferido. Esto se debe a que es el único modo que puede utilizar para asignar grupos de seguridad a las tareas. También es el único modo disponible para las tareas de AWS Fargate en Amazon ECS.
Grupos de seguridad para tareas
Se recomienda configurar las tareas para que utilicen el modo de red awsvpc
. Tras configurar la tarea para utilizar este modo, el agente de Amazon ECS aprovisiona y adjunta automáticamente una interfaz de red elástica (ENI) a la tarea. Cuando se aprovisiona la ENI, la tarea se inscribe en un grupo de seguridad de AWS. Un grupo de seguridad funciona como un firewall virtual que puede utilizar para controlar el tráfico entrante y saliente.
AWS PrivateLink y Amazon ECS
AWS PrivateLink es una tecnología de red que permite crear puntos de conexión privados para distintos servicios de AWS, incluido Amazon ECS. Los puntos de conexión son necesarios en entornos aislados en los que no hay una puerta de enlace de Internet (IGW) conectada a la VPC de Amazon ni rutas alternativas a Internet. El uso de AWS PrivateLink garantiza que las llamadas al servicio de Amazon ECS permanezcan dentro de la VPC de Amazon y no atraviesen Internet. Para obtener instrucciones sobre cómo crear puntos de conexión de AWS PrivateLink para Amazon ECS y otros servicios relacionados, consulte Puntos de conexión de VPC de Amazon en la interfaz de Amazon ECS.
importante
Las tareas de AWS Fargate no requieren un punto de conexión de AWS PrivateLink para Amazon ECS.
Tanto Amazon ECR como Amazon ECS admiten políticas de puntos de conexión. Estas políticas le permiten restringir el acceso a las API de un servicio. Por ejemplo, podría crear una política de punto de conexión para Amazon ECR que solo permita enviar imágenes a los registros de determinadas cuentas de AWS. Una política como esta podría utilizarse para evitar que los datos se sustraigan a través de imágenes de contenedores y, al mismo tiempo, permitir a los usuarios acceder a registros autorizados de Amazon ECR. Para obtener más información, consulte Políticas de puntos de conexión de VPC.
La siguiente política permite a todas las entidades principales de AWS de su cuenta realizar todas las acciones únicamente contra los repositorios de Amazon ECR:
{ "Statement": [ { "Sid": "LimitECRAccess", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "arn:aws:ecr:
region
:account_id
:repository/*" }, ] }
Puede mejorarlo aún más estableciendo una condición que utilice la nueva propiedad de PrincipalOrgID
. Esto evita que una entidad principal de IAM que no forma parte de su AWS Organizations inserte y extraiga imágenes. Para obtener más información, consulte aws:PrincipalOrgID.
Recomendamos aplicar la misma política tanto a los puntos de conexión com.amazonaws.
como a los region
.ecr.dkrcom.amazonaws.
.region
.ecr.api
Configuración del agente de contenedor
El archivo de configuración del agente de contenedor de Amazon ECS incluye distintas variables de entorno relacionadas con la seguridad de la red. ECS_AWSVPC_BLOCK_IMDS
y ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST
se utilizan para bloquear el acceso de una tarea a los metadatos de Amazon EC2. HTTP_PROXY
se utiliza para configurar el agente para que se dirija a través de un proxy HTTP para conectarse a Internet. Para obtener instrucciones sobre cómo configurar el agente y el tiempo de ejecución de Docker para que se enruten a través de un proxy, consulte Configuración del proxy HTTP.
importante
Estos ajustes no están disponibles cuando utilice AWS Fargate.
Recomendaciones de seguridad de red
Le recomendamos que haga lo siguiente al configurar la VPC de Amazon, los equilibradores de carga y la red.
Uso del cifrado de red cuando corresponda con Amazon ECS
Debe utilizar el cifrado de red cuando corresponda. Algunos programas de conformidad, como el PCI DSS, exigen que se cifren los datos en tránsito si estos contienen datos del titular de la tarjeta. Si su carga de trabajo tiene requisitos similares, configure el cifrado de red.
Los navegadores modernos advierten a los usuarios cuando se conectan a sitios inseguros. Si su servicio se presenta mediante un equilibrador de carga público, utilice TLS/SSL para cifrar el tráfico del navegador del cliente hacia el equilibrador de carga y, si es necesario, vuelva a cifrarlo al backend.
Uso del modo de red awsvpc
y los grupos de seguridad para controlar el tráfico entre tareas y otros recursos en Amazon ECS
Debe utilizar el modo de red y los grupos de seguridad awsvpc
cuando necesite controlar el tráfico entre tareas o entre tareas y otros recursos de la red. Si su servicio está basado en un ALB, utilice grupos de seguridad para permitir únicamente el tráfico entrante desde otros recursos de red que utilicen el mismo grupo de seguridad que el ALB. Si su aplicación está basada en un NLB, configure el grupo de seguridad de la tarea para que solo permita el tráfico entrante del rango CIDR de la VPC de Amazon y las direcciones IP estáticas asignadas al NLB.
Los grupos de seguridad también se deben usar para controlar el tráfico entre las tareas y otros recursos de la VPC de Amazon, como las bases de datos de Amazon RDS.
Creación de clústeres de Amazon ECS en VPC de Amazon independientes cuando es necesario aislar estrictamente el tráfico de red
Debe crear clústeres en VPC de Amazon independientes cuando sea necesario aislar estrictamente el tráfico de red. Evite ejecutar cargas de trabajo que tengan requisitos de seguridad estrictos en clústeres con cargas de trabajo que no tengan que cumplir dichos requisitos. Cuando sea obligatorio aislar la red de forma estricta, cree clústeres en VPC de Amazon independientes y exponga los servicios de forma selectiva a otras VPC de Amazon mediante puntos de conexión de VPC de Amazon. Para obtener más información, consulte Puntos de conexión de VPC de Amazon.
Configuración de los puntos de conexión de AWS PrivateLink cuando esté justificado para Amazon ECS
Debe configurar los puntos de conexión de AWS PrivateLink cuando esté justificado. Si su política de seguridad le impide adjuntar una puerta de enlace de Internet (IGW) a sus VPC de Amazon, configure los puntos de conexión de AWS PrivateLink para Amazon ECS y otros servicios, como Amazon ECR, AWS Secrets Manager y Amazon CloudWatch.
Uso de los registros de flujo de VPC de Amazon para analizar el tráfico hacia y desde las tareas de larga ejecución en Amazon ECS
Debe utilizar los registros de flujo de VPC de Amazon para analizar el tráfico hacia y desde las tareas de larga ejecución. Las tareas que utilizan el modo de red awsvpc
tienen su propia ENI. De este modo, puede supervisar el tráfico que va y viene de tareas individuales mediante registros de flujo de VPC de Amazon. Una actualización reciente de los registros de flujo de VPC de Amazon (v3) enriquece los registros con metadatos de tráfico, incluidos el ID de VPC, el ID de subred y el ID de instancia. Estos metadatos se pueden utilizar para ayudar a enfocar una investigación. Para obtener más información, consulte Registros de flujo de VPC de Amazon.
nota
Debido a la naturaleza temporal de los contenedores, es posible que los registros de flujo no siempre sean una forma eficaz de analizar los patrones de tráfico entre diferentes contenedores o entre contenedores y otros recursos de la red.