Amazon ECS 中的 Fargate 安全最佳实践
在使用 AWS Fargate 时,建议您考虑以下最佳实践。
使用 AWS KMS 加密 Fargate 的临时存储
您应该使用 AWS KMS 或自己的客户自主管理型密钥来加密临时存储。对于使用平台版本 1.4.0 或更高版本在 Fargate 上托管的任务,每个任务会获得 20 GiB 的临时存储。有关更多信息,请参阅客户自主管理型密钥(CMK)。您可以增加临时存储总量,最多可达 200GiB,方法是在您的任务定义中指定 ephemeralStorage 参数。对于在 2020 年 5 月 28 日或之后启动的此类任务,将使用 AES-256 加密算法以及由 Fargate 托管的加密密钥对临时存储进行加密。
有关更多信息,请参阅 Amazon ECS 任务的存储选项。
示例:使用临时存储加密在 Fargate 平台版本 1.4.0 上启动任务
以下命令将在 Fargate 平台版本 1.4 上启动任务。由于此任务是作为集群的一部分启动的,因此会使用自动加密的 20 GiB 临时存储。
aws ecs run-task --cluster clustername \ --task-definitiontaskdefinition: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 用户指南》中的 GuardDuty 运行时监控。