Controles 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 Amazon ECS

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

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

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

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 cronograma: cambio activado

Parámetros:

  • SkipInactiveTaskDefinitions: true

Este control comprueba si una definición de tarea activa de Amazon ECS que tiene el modo de red host también tiene privileged definiciones de user contenedor. El control falla en las definiciones de tareas que tienen el modo de red host y las definiciones de contenedor privileged=false o están vacías con user=root o vacías. Este control solo evalúa la última revisión activa de una definición de tarea de Amazon ECS.

Si una definición de tarea tiene privilegios elevados, se debe a que el cliente ha optado específicamente por esa configuración. Este control comprueba si hay un aumento inesperado de privilegios cuando la definición de una tarea tiene habilitada la red host, pero el cliente no ha optado por obtener 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.

Tenga en cuenta que al actualizar una definición de tarea, no se actualizan las tareas en ejecución que se iniciaron desde 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, NIS.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 al público

Gravedad: alta

Tipo de recurso: AWS::ECS::Service

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

Tipo de cronograma: cambio activado

Parámetros:

  • exemptEcsServiceArns (Opcional). 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 se aplica COMPLIANT si un servicio de Amazon ECS AssignPublicIP se ha establecido en esta lista de parámetros ENABLED y se especifica en ella.

    Esta regla se aplica NON_COMPLIANT si un servicio de Amazon ECS está AssignPublicIP configurado en esta lista de parámetros ENABLED y no está especificado en ella.

Este control comprueba si los servicios de Amazon ECS están configurados para asignar automáticamente direcciones IP públicas. Este control falla si AssignPublicIP es asíENABLED. Este control se aprueba si AssignPublicIP es asíDISABLED.

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

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 del proceso del host

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 Configregla: ecs-task-definition-pid-mode-check

Tipo de cronograma: cambio activado

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 una separación entre los procesos. Impide 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án ver todos los procesos del sistema host. Esto reduce el beneficio del aislamiento a nivel de proceso entre el huésped y los contenedores. Estas circunstancias podrían provocar un acceso no autorizado a los procesos del propio host, incluida la posibilidad de manipularlos y cancelarlos. Los clientes no deben compartir el espacio de nombres de procesos del host con los contenedores que se ejecutan en él.

Corrección

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

[ECS.4] Los contenedores ECS deben ejecutarse como contenedores 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 usuarios raíz

Gravedad: alta

Tipo de recurso: AWS::ECS::TaskDefinition

Regla de AWS Config: ecs-containers-nonprivileged

Tipo de cronograma: cambio activado

Parámetros: ninguno

Este control comprueba si el privileged parámetro de la definición de contenedor de las definiciones de tareas de Amazon ECS está establecido entrue. El control falla si este parámetro es igual atrue. 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 estrue, el contenedor recibe privilegios elevados en la instancia del contenedor anfitrión (similares a los del usuario raíz).

Corrección

Para configurar el privileged parámetro en una definición de tarea, consulte Parámetros avanzados de definición de contenedores 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 cronograma: cambio activado

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 readonlyRootFilesystem parámetro está establecido en 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 el sistema de archivos de la instancia del contenedor no se puede manipular ni escribir en él a menos que tenga permisos de lectura y escritura explícitos en la carpeta y los directorios del sistema de archivos. Este control también se adhiere al principio del mínimo privilegio.

Corrección

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

  2. En el panel de navegación de la izquierda, seleccione Definiciones de tareas.

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

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

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

    • Seleccione Crear.

[ECS.8] Los secretos no deben pasarse como variables de entorno de 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 cronograma: cambio activado

Parámetros:

  • Claves secretas =AWS_ACCESS_KEY_ID,, AWS_SECRET_ACCESS_KEY ECS_ENGINE_AUTH_DATA

Este control comprueba si el valor clave de alguna variable del environment parámetro de las definiciones de contenedores incluye AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, oECS_ENGINE_AUTH_DATA. Este control falla si una única variable de entorno en cualquier definición de contenedor es igual a AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, oECS_ENGINE_AUTH_DATA. Este control no cubre las variables ambientales transferidas 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 ManagerEl almacén de parámetros puede ayudarlo a mejorar la postura de seguridad de su organización. Recomendamos utilizar el almacén de parámetros para almacenar secretos y credenciales en lugar de ordenarlos pasarlos a las instancias del contenedor o codificarlos de forma rígida 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 AWS Systems Manager usuario. 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.10] Los servicios de ECS Fargate deben ejecutarse en la versión más reciente 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 cronograma: cambio activado

Parámetros:

  • latestLinuxVersion: 1.4.0

  • latestWindowsVersion: 1.0.0

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

AWS Fargatelas versiones de plataforma hacen referencia 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 del núcleo y del contenedor. Se lanzan nuevas versiones de la plataforma a medida que evoluciona el entorno de ejecución. Por ejemplo, se puede publicar una nueva versión para actualizar el núcleo o el sistema operativo, nuevas funciones, 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 encuentra un problema de seguridad que afecta a una versión de la plataforma, AWS parchea la versión de la plataforma.

Corrección

Para actualizar un servicio existente, incluida su versión de 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 cronograma: cambio activado

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 confiabilidad, la disponibilidad y el rendimiento de los clústeres de Amazon ECS. Utilice CloudWatch Container Insights para recopilar, agregar y resumir métricas y registros de sus aplicaciones en contenedores y microservicios. CloudWatchrecopila automáticamente las métricas de muchos recursos, como la CPU, la memoria, el disco y la red. Container Insights 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 puede establecer alarmas de CloudWatch en las métricas que recopila Container Insights.

Corrección

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