Amazon ECS 中的 Fargate 安全最佳实践
在使用 AWS Fargate 时,建议您考虑以下最佳实践。有关其他指南,请参阅 AWS Fargate 的安全性概述
使用 AWS KMS 加密 Fargate 的临时存储
您应该使用 AWS KMS 或自己的客户自主管理型密钥来加密临时存储。对于使用平台版本 1.4.0
或更高版本在 Fargate 上托管的任务,每个任务会获得 20 GiB 的临时存储。有关更多信息,请参阅客户自主管理型密钥(CMK)。您可以增加临时存储总量,最多可达 200GiB,方法是在您的任务定义中指定 ephemeralStorage
参数。对于在 2020 年 5 月 28 日或之后启动的此类任务,将使用 AES-256 加密算法以及由 Fargate 托管的加密密钥对临时存储进行加密。
有关更多信息,请参阅在任务中使用数据卷。
示例:使用临时存储加密在 Fargate 平台版本 1.4.0 上启动任务
以下命令将在 Fargate 平台版本 1.4 上启动任务。由于此任务是作为集群的一部分启动的,因此会使用自动加密的 20 GiB 临时存储。
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
使用 Fargate 进行内核系统调用跟踪的 SYS_PTRACE 功能
添加或从容器中移除的 Linux 功能的默认配置由 Docker 提供。
在 Fargate 上启动的任务仅支持添加 SYS_PTRACE
内核功能。
下面的视频展示了如何通过 Sysdig Falco
上一个视频中讨论的代码可以在 GitHub 上在此处
将 Amazon GuardDuty 与 Fargate 运行时监控结合使用
Amazon GuardDuty 是一项威胁检测服务,可帮助保护您的账户、容器、工作负载和 AWS 环境中的数据。GuardDuty 使用机器学习(ML)模型以及异常和威胁检测功能,持续监控不同的日志源和运行时活动,以识别环境中的潜在安全风险和恶意活动并确定其优先级。
GuardDuty 中的运行时监控通过持续监控 AWS 日志和联网活动来识别恶意或未经授权的行为,从而保护在 Fargate 上运行的工作负载。运行时监控使用轻量级、完全托管的 GuardDuty 安全代理分析主机中的行为,例如文件访问、进程执行和网络连接。它涉及的问题包括权限升级、使用公开的凭证,或与恶意 IP 地址、域通信,以及您的 Amazon EC2 实例和容器工作负载上存在恶意软件。有关更多信息,请参阅《GuardDuty User Guide》中的 GuardDuty Runtime Monitoring。