tenemos algunos procesos de php-fpm que se atascan en nuestro sistema de producción en las tareas de ECS FARGATE. Intenté depurar esos servicios usando: "strace -p 50", donde 50 es PID para mi proceso de trabajo secundario de php-fpm y estoy ejecutando esto bajo el usuario raíz, sin embargo, obtengo este error:
Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.confModifiqué la configuración en /etc/sysctl.d/10-ptrace.conf y guardé el archivo; sin embargo, sigo recibiendo el mismo error.
También me gustaría mencionar cuál es el problema más probable relacionado con Docker porque también tenemos el mismo problema al ejecutar strace dentro de nuestro entorno local que se ejecuta como un contenedor de Docker. Vi algunas publicaciones SO anteriores que mencionan agregar algún argumento al comando "docker run" para solucionarlo, pero no estoy seguro de que sea posible hacerlo dentro de la tarea ECS.
Las tareas de Fargate ahora admiten la capacidad de Linux CAP_SYS_PTRACE
En 2017, presentamos soporte para agregar capacidades de Linux a las tareas de ECS. Cuando lanzamos AWS Fargate el mismo año, decidimos desactivar estas opciones porque queríamos minimizar el área superficial de ataque para ofrecer una plataforma segura.
Desde entonces, hemos recibido comentarios de los clientes (así como de los socios que gravitan en torno a la seguridad y el cumplimiento) de que podrían hacer un buen uso de algunas de estas capacidades (es decir CAP_SYS_PTRACE ). Hay una serie de herramientas de observabilidad que pueden ayudar a los clientes para los que el cumplimiento es importante a lograr la visibilidad que necesitan. Por ejemplo, algunos de estos clientes han expresado la necesidad de ejecutar herramientas como strace .
Es por esta razón que, a partir de la disponibilidad de la versión 1.4.0 de la plataforma Fargate, permitimos que los clientes habiliten esta capacidad específica en sus definiciones de tareas de Fargate (en todas las versiones disponibles de la plataforma Fargate). Tenga en cuenta que CAP_SYS_PTRACE es la única capacidad que se puede agregar a las tareas de Fargate en este momento. Se siguen admitiendo otras capacidades para las tareas que se ejecutan en el tipo de lanzamiento EC2.
TL/DR: debe agregar este parámetro a la definición de su tarea. Y, por supuesto, asegúrese de estar utilizando la versión 1.4 de la plataforma Fargate (o la LATEST que corresponde a la 1.4 hoy).