【问题标题】:Strace utility does not work inside AWS ECS taskStrace 实用程序在 AWS ECS 任务中不起作用
【发布时间】:2021-08-26 08:54:45
【问题描述】:

我们有一些 php-fpm 进程在 ECS FARGATE 任务上卡在我们的生产系统中。 我尝试使用“strace -p 50”调试这些服务,其中 50 是我的 php-fpm 子工作进程的 PID,我在 root 用户下运行它,但是收到此错误:

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.conf

我已经修改了 /etc/sysctl.d/10-ptrace.conf 中的设置并保存了文件,但是我仍然遇到同样的错误。

另外我想提一下这个问题最有可能与 Docker 相关,因为我们在作为 Docker 容器运行的本地环境中运行 strace 时也遇到了同样的问题。我看到一些以前的 SO 帖子提到在“docker run”命令中添加一些参数来修复它,但不确定是否可以在 ECS 任务中执行。

【问题讨论】:

    标签: php amazon-ecs strace fpm


    【解决方案1】:

    来自this blog post


    Fargate 任务现在支持 CAP_SYS_PTRACE Linux 功能

    在 2017 年,我们引入了将 Linux 功能添加到 ECS 任务的支持。当我们在同年推出 AWS Fargate 时,我们决定禁用这些选项,因为我们希望最大限度地减少攻击的表面积以提供一个安全的平台。

    此后,我们收到了来自客户(以及关注安全性和合规性的合作伙伴)的反馈,他们可以充分利用其中的一些功能(即CAP_SYS_PTRACE)。有许多可观察性工具可以帮助合规性很重要的客户实现他们所需的可见性。例如,其中一些客户表示需要运行strace 等工具。

    正是出于这个原因,从 Fargate 平台版本 1.4.0 的可用性开始,我们允许客户在其 Fargate 任务定义中启用此特定功能(跨所有可用的 Fargate 平台版本)。请注意,CAP_SYS_PTRACE 是目前唯一可以添加到 Fargate 任务的功能。在 EC2 启动类型上运行的任务仍支持其他功能。


    TL/DR:您需要将this parameter 添加到您的任务定义中。当然,请确保您使用的是 Fargate 平台版本 1.4(或 LATEST,它现在映射到 1.4)。

    【讨论】:

    • 精彩的答案!我将不得不尽快尝试并通知您,如果可行,我一定会将其标记为正确答案,再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 2020-12-25
    • 2018-07-02
    • 2020-10-31
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多