Prácticas recomendadas sobre seguridad de Fargate en Amazon ECS
Al utilizar AWS Fargate, recomendamos que tenga en cuenta las siguientes prácticas recomendadas. Para obtener más orientación, consulte Descripción general de la seguridad de AWS Fargate
Uso de AWS KMS para cifrar el almacenamiento efímero de Fargate
Debe cifrar su almacenamiento efímero mediante una AWS KMS o mediante su propia clave administrada por el cliente (CMK). En el caso de las tareas alojadas en Fargate que utilizan la versión de la plataforma 1.4.0
o una posterior, cada una de ellas recibe 20 GiB de almacenamiento efímero. Puede aumentar la cantidad total de almacenamiento efímero, hasta un máximo de 200 GiB, especificando el parámetro ephemeralStorage
en la definición de tareas. Para las tareas que se lanzaron el 28 de mayo de 2020 o después, el almacenamiento efímero se cifra con un algoritmo de cifrado AES-256 que utiliza una clave de cifrado administrada por Fargate.
Para obtener más información, consulte Uso de volúmenes de datos en tareas.
Ejemplo: lanzar una tarea de Fargate en la versión de la plataforma 1.4.0 con cifrado de almacenamiento efímero
El siguiente comando lanzará una tarea de Fargate en la versión de la plataforma 1.4. Como esta tarea se lanza como parte del clúster, utiliza los 20 GiB de almacenamiento efímero que se cifra automáticamente.
aws ecs run-task --cluster clustername \ --task-definition
taskdefinition
:version
\ --count 1 --launch-type "FARGATE" \ --platform-version 1.4.0 \ --network-configuration "awsvpcConfiguration={subnets=[subnetid
],securityGroups=[securitygroupid
]}" \ --region region
Capacidad SYS_PTRACE para el seguimiento de llamadas al sistema del kernel con Fargate
Docker proporciona la configuración predeterminada de las capacidades de Linux que se agregan al contenedor o se eliminan de él. Para obtener más información sobre las capacidades disponibles, consulte Privilegio de tiempo de ejecución y capacidades de Linux
Las tareas lanzadas en Fargate solo admiten la adición de la capacidad del kernel SYS_PTRACE
.
En el siguiente video tutorial se muestra cómo utilizar esta característica mediante el proyecto Falco
El código mencionado en el video anterior se puede encontrar en GitHub aquí
Uso de la supervisión en tiempo de ejecución de Amazon GuardDuty con Fargate
Amazon GuardDuty es un servicio de detección de amenazas que ayuda a proteger las cuentas, los contenedores, las cargas de trabajo y los datos de su entorno de AWS. Mediante modelos de machine learning (ML) y capacidades de detección de anomalías y amenazas, GuardDuty supervisa continuamente los diferentes orígenes de registro y la actividad en tiempo de ejecución para identificar y priorizar los posibles riesgos de seguridad y actividades maliciosas en su entorno.
La supervisión en tiempo de ejecución en GuardDuty protege las cargas de trabajo que se ejecutan en Fargate mediante la supervisión continua de la actividad de registro y red de AWS para identificar comportamientos malintencionados o no autorizados. La supervisión en tiempo de ejecución utiliza un agente de seguridad de GuardDuty ligero y totalmente administrado que analiza el comportamiento en el host (como el acceso a los archivos, la ejecución de procesos y las conexiones de red). Esto abarca problemas como el escalado de privilegios, el uso de credenciales expuestas, la comunicación con direcciones IP malintencionadas, los dominios y la presencia de malware en las cargas de trabajo de contenedores e instancias de Amazon EC2. Para obtener más información, consulte GuardDuty Runtime Monitoring en la Guía del usuario de GuardDuty.