

# Amazon ECS 中的 Fargate 安全最佳实践
<a name="security-fargate"></a>

在使用 Amazon Fargate 时，建议您考虑以下最佳实践。有关其他指南，请参阅 [Amazon Fargate 的安全性概述](https://d1.awsstatic.com/whitepapers/AWS_Fargate_Security_Overview_Whitepaper.pdf)。

## 使用 Amazon KMS 加密 Fargate 的临时存储
<a name="security-fargate-ephemeral-storage-encryption"></a>

您应该使用 Amazon KMS 或自己的客户自主管理型密钥来加密临时存储。对于使用平台版本 `1.4.0` 或更高版本在 Fargate 上托管的任务，每个任务会获得 20 GiB 的临时存储。有关更多信息，请参阅[客户自主管理型密钥（CMK）](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/fargate-storage-encryption.html)。您可以增加临时存储总量，最多可达 200GiB，方法是在您的任务定义中指定 `ephemeralStorage` 参数。对于在 2020 年 5 月 28 日或之后启动的此类任务，将使用 AES-256 加密算法以及由 Fargate 托管的加密密钥对临时存储进行加密。

有关更多信息，请参阅 [Amazon ECS 任务的存储选项](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/using_data_volumes.html)。

**示例：使用临时存储加密在 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\$1PTRACE 功能
<a name="security-fargate-syscall-tracing"></a>

添加或从容器中移除的 Linux 功能的默认配置由 Docker 提供。

在 Fargate 上启动的任务仅支持添加 `SYS_PTRACE` 内核功能。

下面的视频展示了如何通过 Sysdig [Falco](https://github.com/falcosecurity/falco) 项目使用此功能。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/OYGKjmFeLqI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/OYGKjmFeLqI)


上一个视频中讨论的代码可以在 GitHub 上[在此处](https://github.com/paavan98pm/ecs-fargate-pv1.4-falco)找到。

## 将 Amazon GuardDuty 与 Fargate 运行时监控结合使用
<a name="fargate-runtime-monitoring"></a>

Amazon GuardDuty 是一项威胁检测服务，可帮助保护您的账户、容器、工作负载和 Amazon 环境中的数据。GuardDuty 使用机器学习（ML）模型以及异常和威胁检测功能，持续监控不同的日志源和运行时活动，以识别环境中的潜在安全风险和恶意活动并确定其优先级。

GuardDuty 中的运行时监控通过持续监控 Amazon 日志和联网活动来识别恶意或未经授权的行为，从而保护在 Fargate 上运行的工作负载。运行时监控使用轻量级、完全托管的 GuardDuty 安全代理分析主机中的行为，例如文件访问、进程执行和网络连接。它涉及的问题包括权限升级、使用公开的凭证，或与恶意 IP 地址、域通信，以及您的 Amazon EC2 实例和容器工作负载上存在恶意软件。有关更多信息，请参阅《GuardDuty 用户指南》**中的 [GuardDuty 运行时监控](https://docs.amazonaws.cn/guardduty/latest/ug/runtime-monitoring.html)。