Aws ECS Fargate 强制执行只读文件系统

bru*_*vio 5 readonly amazon-ecs datadog aws-fargate aws-security-hub

我需要在 ECS Fargate 服务上强制执行“readonlyrootFileSystem”以减少安全中心漏洞。

我认为只需在任务定义中将其设置为 true 即可轻松完成任务。

但它适得其反,因为服务没有部署,因为 dockerfile 中的命令没有执行,因为它们无权访问文件夹,而且这与 ssm 执行命令不兼容,所以我将无法进入容器。

我设法将 readonlyrootFileSystem 设置为 true 并通过安装卷重新启动我的服务。为此,我安装了一个tmp卷,容器使用该卷在启动时安装依赖项,并安装了一个data卷来存储数据(更新)。

因此,现在根据文档,安全中心漏洞应该得到修复,因为规则需要该变量不为 False,但安全中心仍然将任务标记为非投诉。

---更多更新---

我的服务的任务定义还旋转一个用于监控的数据狗图像。它还需要将其文件系统设置为只读以满足安全中心的要求。

在这里我无法像上面那样解决,因为 datadog 代理需要访问/etc/文件夹,如果我在那里安装卷,我将丢失文件并且服务将无法启动。

有办法解决这个问题吗?

有任何想法吗?

bru*_*vio 3

万一有人偶然发现这个。解决方案(或解决方法,随意称呼它)是将readonlyrootFileSystem容器和 sidecard(在本例中为 datadog)设置为 True 并使用绑定安装。

使用datadog监控ECS的规则可以在这里找到

您需要为服务添加的绑定安装取决于您如何设置 dockerfile。

就我而言,这是关于添加用于下载数据的卷。

此外,由于只读 FS ECS exec (SSM) 不起作用,如果您想要这样做,您还必须添加安装:如果在/var/lib/amazon和中添加了两个安装/var/log/amazon。这将允许 ssm (docker exec 基本上进入你的容器)

至于datadog,我只需要修复安装座,以便代理可以工作。就我而言,由于它又是一个自定义映像,因此我在/etc/datadog-agent.

快乐的时光!