Controles de Amazon ECS - AWS Security Hub

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Controles de Amazon ECS

Estos controles están relacionados con los recursos de Amazon ECS.

Es posible que estos controles no estén disponibles en todos Regiones de AWS. Para obtener más información, consulte Disponibilidad de los controles por región.

[ECS.1] Las definiciones de tareas de Amazon ECS deben tener modos de red seguros y definiciones de usuario.

Requisitos relacionados: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6

Categoría: Proteger - Administración de acceso seguro

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

Regla de AWS Config : ecs-task-definition-user-for-host-mode-check

Tipo de horario: provocado por un cambio

Parámetros:

  • SkipInactiveTaskDefinitions: true (no personalizable)

Este control comprueba si una definición de tarea de Amazon ECS activa con el modo de red de host tiene definiciones de contenedor de privileged o user. El control falla para definiciones de tarea que tienen modo de red host y definiciones de contenedor de privileged=false, vacío y user=root, o vacío.

Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

El objetivo de este control es garantizar que el acceso se defina intencionalmente cuando se ejecutan tareas que utilizan el modo de red host. Si la definición de una tarea tiene privilegios elevados, es porque ha elegido esa configuración. Este control comprueba si hay una escalada inesperada de privilegios cuando la definición de una tarea tiene habilitada la red host y no se eligen privilegios elevados.

Corrección

Para obtener información sobre cómo actualizar una definición de tarea, consulte Actualización de una definición de tarea en la Guía para desarrolladores de Amazon Elastic Container Service.

Al actualizar una definición de tarea, no se actualizan las tareas en ejecución que se iniciaron a partir de la definición de tarea anterior. Para actualizar una tarea en ejecución, debe volver a implementar la tarea con la nueva definición de tarea.

[ECS.2] Los servicios de ECS no deberían tener direcciones IP públicas asignadas automáticamente

Requisitos relacionados: NIST.800-53.r5 AC-21, NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-4, NIST.800-53.r5 AC-4(21), NIST.800-53.r5 AC-6, NIST.800-53.r5 SC-7, NIST.800-53.r5 SC-7(11), NIST.800-53.r5 SC-7(16), NIST.800-53.r5 SC-7(20), NIST.800-53.r5 SC-7(21), NIST.800-53.r5 SC-7(3), NIST.800-53.r5 SC-7(4), NIST.800-53.r5 SC-7(9)

Categoría: Proteger > Configuración de red segura > Recursos no accesibles públicamente

Gravedad: alta

Tipo de recurso: AWS::ECS::Service

Regla de AWS Config: ecs-service-assign-public-ip-disabled (regla personalizada de Security Hub)

Tipo de horario: provocado por un cambio

Parámetros:

  • exemptEcsServiceArns (no personalizable). Security Hub no rellena este parámetro. Lista separada por comas de los ARN de los servicios de Amazon ECS que están exentos de esta regla.

    Esta regla es COMPLIANT si un servicio de Amazon ECS tiene AssignPublicIP establecido como ENABLED y se especifica en esta lista de parámetros.

    Esta regla es NON_COMPLIANT si un servicio de Amazon ECS tiene AssignPublicIP establecido como ENABLED y no se especifica en esta lista de parámetros.

Este control comprueba si los servicios de Amazon ECS están configurados para asignar direcciones IP públicas de forma automática. Este control tiene errores si AssignPublicIP figura como ENABLED. Este control se aprueba si AssignPublicIP figura como DISABLED.

Una dirección IP pública es una dirección IP a la que se puede tener acceso desde Internet. Si lanza sus instancias de Amazon ECS con una dirección IP pública, podrá acceder a sus instancias de Amazon ECS desde Internet. Los servicios de Amazon ECS no deben ser de acceso público, ya que esto podría permitir el acceso no deseado a los servidores de aplicaciones contenedoras.

Corrección

Para deshabilitar la asignación automática de IP públicas, consulte Para configurar los ajustes de VPC y grupos de seguridad para su servicio en la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.3] Las definiciones de tareas de ECS no deben compartir el espacio de nombres de los procesos del anfitrión

Requisitos relacionados: NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-2

Categoría: Identificar > Configuración de recursos

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

AWS Config regla: ecs-task-definition-pid-mode-check

Tipo de horario: provocado por un cambio

Parámetros: ninguno

Este control comprueba si las definiciones de tareas de Amazon ECS están configuradas para compartir el espacio de nombres de procesos de un host con sus contenedores. El control falla si la definición de la tarea comparte el espacio de nombres del proceso del host con los contenedores que se ejecutan en él. Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

Un espacio de nombres de ID de proceso (PID) proporciona separación entre los procesos. Evita que los procesos del sistema estén visibles y permite reutilizar los PID, incluido el PID 1. Si el espacio de nombres PID del host se comparte con los contenedores, los contenedores podrían ver todos los procesos del sistema anfitrión. Esto reduce la ventaja del aislamiento a nivel de proceso entre el host y los contenedores. Estas circunstancias podrían provocar el acceso no autorizado a los procesos del propio host, incluida la posibilidad de manipularlos y cancelarlos. Los clientes no deberían compartir el espacio de nombres de los procesos del anfitrión con los contenedores que se ejecuten en él.

Corrección

Para configurar el pidMode de la definición de una tarea, consulte Parámetros de definición de tareas en la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.4] Los contenedores de ECS deben ejecutarse sin privilegios

Requisitos relacionados: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6

Categoría: Proteger > Gestión del acceso seguro > Restricciones de acceso para los usuarios raíz

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

Regla de AWS Config: ecs-containers-nonprivileged

Tipo de horario: provocado por un cambio

Parámetros: ninguno

Este control comprueba si el parámetro privileged de la definición de contenedor de las definiciones de tareas de Amazon ECS se establece como true. El control falla si este parámetro es igual a true. Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

Le recomendamos que elimine los privilegios elevados de las definiciones de tareas de ECS. Cuando el parámetro de privilegio es true, al contenedor se le conceden privilegios elevados en la instancia de contenedor de host (similares a los de un usuario raíz).

Corrección

Para configurar el parámetro privileged en una definición de tarea, consulte Parámetros de definición avanzada de contenedor en la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.5] Los contenedores ECS deben limitarse al acceso de solo lectura a los sistemas de archivos raíz

Requisitos relacionados: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6

Categoría: Proteger - Administración de acceso seguro

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

Regla de AWS Config: ecs-containers-readonly-access

Tipo de horario: provocado por un cambio

Parámetros: ninguno

Este control comprueba si los contenedores de Amazon ECS están limitados al acceso de solo lectura a los sistemas de archivos raíz montados. El control falla si el parámetro readonlyRootFilesystem se establece como false o si el parámetro no existe en la definición del contenedor dentro de la definición de la tarea. Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

Al habilitar esta opción, se reducen los vectores de ataque a la seguridad, ya que no se puede manipular ni escribir en el sistema de archivos de la instancia contenedora a menos que tenga permisos explícitos de lectura y escritura en sus carpetas y directorios del sistema de archivos. Este control también se adhiere al principio de privilegio mínimo.

Corrección

Limitar las definiciones de contenedor al acceso de solo lectura a los sistemas de archivos raíz
  1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.

  2. En el panel de navegación izquierdo, elija Definiciones de tareas.

  3. Seleccione una definición de tarea que contenga definiciones de contenedores que deban actualizarse. Para cada uno, lleve a cabo los siguientes pasos:

    • En el menú desplegable, seleccione Crear nueva revisión con JSON.

    • Añada el parámetro readonlyRootFilesystem y configúrelo como true en la definición del contenedor dentro de la definición de la tarea.

    • Seleccione Crear.

[ECS.8] Los secretos no deben pasarse como variables de entorno del contenedor

Requisitos relacionados: NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-2

Categoría: Proteger > Desarrollo seguro > Credenciales no codificadas

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

Regla de AWS Config: ecs-no-environment-secrets

Tipo de horario: provocado por un cambio

Parámetros:

  • secretKeys = AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y ECS_ENGINE_AUTH_DATA (no personalizables)

Este control comprueba si el valor clave de alguna variable del parámetro environment de las definiciones de contenedores incluye AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, o ECS_ENGINE_AUTH_DATA. Este control falla si una sola variable de entorno en cualquier definición de contenedor es igual a AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, o ECS_ENGINE_AUTH_DATA. Este control no cubre las variables de entorno que se transmiten desde otras ubicaciones, como Amazon S3. Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

AWS Systems Manager Parameter Store puede ayudarlo a mejorar la postura de seguridad de su organización. Le recomendamos que utilice el almacén de parámetros para almacenar los secretos y las credenciales en lugar de pasarlos directamente a las instancias contenedoras o codificarlos en el código.

Corrección

Para crear parámetros mediante SSM, consulte Creación de parámetros de Systems Manager en la Guía del usuario de AWS Systems Manager . Para obtener más información sobre cómo crear una definición de tarea que especifique un secreto, consulte Especificar datos confidenciales mediante Secrets Manager en la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.9] Las definiciones de tareas de ECS deben tener una configuración de registro

Requisitos relacionados: NIST.800-53.r5 AC-4(26), NIST.800-53.r5 AU-10, NIST.800-53.r5 AU-12, NIST.800-53.r5 AU-2, NIST.800-53.r5 AU-3, NIST.800-53.r5 AU-6(3), NIST.800-53.r5 AU-6(4), NIST.800-53.r5 CA-7, NIST.800-53.r5 SC-7(9), NIST.800-53.r5 SI-7(8)

Categoría: Identificar - Registro

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

AWS Config regla: ecs-task-definition-log -configuración

Tipo de horario: provocado por un cambio

Parámetros: ninguno

Este control comprueba si la última definición de tarea activa de Amazon ECS tiene una configuración de registro especificada. El control falla si la definición de la tarea no tiene la propiedad definida logConfiguration o si el valor logDriver es null en al menos una definición de contenedor.

El registro le ayuda a mantener la fiabilidad, la disponibilidad y el rendimiento de Amazon ECS. La recopilación de datos de las definiciones de tareas proporciona visibilidad, lo que puede ayudarle a depurar los procesos y encontrar la causa raíz de los errores. Si utiliza una solución de registro que no tiene que estar definida en la definición de tareas de ECS (como una solución de registro de terceros), puede deshabilitar este control después de asegurarse de que los registros se capturan y entregan correctamente.

Corrección

Para definir una configuración de registro para las definiciones de tareas de Amazon ECS, consulte Especificar una configuración de registro en la definición de tareas de la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.10] Los servicios Fargate de ECS deberían ejecutarse en la última versión de la plataforma Fargate

Requisitos relacionados: NIST.800-53.r5 SI-2, NIST.800-53.r5 SI-2(2), NIST.800-53.r5 SI-2(4), NIST.800-53.r5 SI-2(5)

Categoría: Identificar > Administración de vulnerabilidades, parches y versiones

Gravedad: media

Tipo de recurso: AWS::ECS::Service

Regla de AWS Config: ecs-fargate-latest-platform-version

Tipo de horario: provocado por un cambio

Parámetros:

  • latestLinuxVersion: 1.4.0 (no personalizable)

  • latestWindowsVersion: 1.0.0 (no personalizable)

Este control comprueba si los servicios Fargate de Amazon ECS ejecutan la versión más reciente de la versión de la plataforma Fargate. Este control falla si la versión de la plataforma no es la más reciente.

AWS Fargate las versiones de plataforma se refieren a un entorno de ejecución específico para la infraestructura de tareas de Fargate, que es una combinación de versiones de ejecución de kernel y contenedor. Se lanzan nuevas versiones de la plataforma a medida que evoluciona el tiempo de ejecución. Por ejemplo, se puede lanzar una nueva versión de kernel o del sistema operativo, características nuevas, correcciones de errores o actualizaciones de seguridad. Las actualizaciones y los parches de seguridad se implementan automáticamente para las tareas de Fargate. Si se detecta un problema de seguridad que afecte a una versión de la plataforma, corrija AWS la versión de la plataforma.

Corrección

Para actualizar un servicio existente, incluida su versión de la plataforma, consulte Actualización de un servicio en la Guía para desarrolladores de Amazon Elastic Container Service.

[ECS.12] Los clústeres de ECS deben usar Container Insights

Requisitos relacionados: NIST.800-53.r5 AU-6(3), NIST.800-53.r5 AU-6(4), NIST.800-53.r5 CA-7, NIST.800-53.r5 SI-2

Categoría: Identificar - Registro

Gravedad: media

Tipo de recurso: AWS::ECS::Cluster

Regla de AWS Config: ecs-container-insights-enabled

Tipo de horario: provocado por un cambio

Parámetros: ninguno

Este control comprueba si los clústeres de ECS utilizan Container Insights. Este control falla si Container Insights no está configurado para un clúster.

La monitorización es una parte importante del mantenimiento de la fiabilidad, la disponibilidad y el rendimiento de los clústeres de Amazon ECS. Utilice CloudWatch Container Insights para recopilar, agregar y resumir las métricas y los registros de sus aplicaciones y microservicios contenerizados. CloudWatch recopila automáticamente las métricas de muchos recursos, como la CPU, la memoria, el disco y la red. Información de contenedores también proporciona información de diagnóstico, como, por ejemplo, errores de reinicio de contenedores, para ayudarle a aislar problemas y solucionarlos rápidamente. También puedes configurar CloudWatch alarmas en las métricas que recopila Container Insights.

Corrección

Para usar Container Insights, consulta Actualización de un servicio en la Guía del CloudWatch usuario de Amazon.