

# 使用运行时监控识别未经授权的行为
<a name="ecs-guard-duty-integration"></a>

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

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

您的安全管理员为 AWS Organizations 中的单个或多个账户启用 GuardDuty 的运行时监控。他们还会选择在您使用 Fargate 时 GuardDuty 是否自动部署 GuardDuty 安全代理。您的所有集群都将自动受到保护，GuardDuty 将代表您管理安全代理。

在以下情况下，您还可以手动配置 GuardDuty 安全代理：
+ 您使用 EC2 容器实例时
+ 您需要精细控制在集群级别启用运行时监控时

要使用运行时监控，您必须配置受保护的集群，并在您的 EC2 容器实例上安装和管理 GuardDuty 安全代理。

## 运行时监控如何与 Amazon ECS 结合使用
<a name="ecs-runtime-monitoring-events"></a>

运行时监控使用轻量级 GuardDuty 安全代理，以监控 Amazon ECS 的工作负载活动，了解应用程序请求、访问和消耗底层系统资源的方式。

对于 Fargate 任务，GuardDuty 安全代理作为每项任务的附加容器运行。

对于 EC2 容器实例，GuardDuty 安全代理作为进程在实例上运行。

GuardDuty 安全代理从以下资源收集数据，然后将数据发送到 GuardDuty 以进行处理。您可以在 GuardDuty 控制台中查看调查发现。您也可以将它们发送给其他 AWS 服务（例如 AWS Security Hub CSPM）或第三方安全供应商，以进行聚合和修复。有关如何查看和管理调查发现的信息，请参阅《Amazon GuardDuty 用户指南》**中的[管理 Amazon GuardDuty 调查发现](https://docs.aws.amazon.com/guardduty/latest/ug/findings_management.html)。
+ 来自以下 Amazon ECS API 调用的响应：
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html)

    使用 `--include TAGS` 选项时，响应参数包括运行时监控标签（设置标签时）。
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)

    对于 Fargate，响应参数包括 GuardDuty sidecar 容器。
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html)

    响应参数包括运行时监控账户设置，该设置由您的安全管理员设置。
+ 容器代理自检数据。有关更多信息，请参阅 [Amazon ECS 容器自检](ecs-agent-introspection.md)。
+ 计算选项的任务元数据端点：
  +  [Amazon ECS 任务元数据端点版本 4](task-metadata-endpoint-v4.md)
  +  [Fargate 上任务的 Amazon ECS 任务元数据端点版本 4](task-metadata-endpoint-v4-fargate.md)

## 注意事项
<a name="ecs-guard-duty-support"></a>

使用运行时监控时，请考虑以下内容：
+ 运行时监控具有与之相关的成本。有关更多信息，请参阅 [Amazon GuardDuty 定价](https://aws.amazon.com/guardduty/pricing/)。
+ Amazon ECS Anywhere 不支持运行时监控。
+ Windows 操作系统不支持运行时监控。
+ 在 Fargate 上使用 Amazon ECS Exec 时，您必须指定容器名称，因为 GuardDuty 安全代理作为附加容器运行。
+ 您不能在 GuardDuty 安全代理附加容器上使用 Amazon ECS Exec。
+ 在集群级别控制运行时监控的 IAM 用户，必须具有适当的 IAM 权限才能进行标记。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 教程：基于标签定义访问 AWS 资源的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。
+ Fargate 任务必须使用任务执行角色。此角色授予任务代表您检索、更新和管理存储在 Amazon ECR 私有存储库中的 GuardDuty 安全代理的权限。
+ Amazon ECS 托管实例上运行的应用程序不支持运行时监控。

## 资源利用情况
<a name="ecs-guard-duty-resources"></a>

您添加到集群的标签将计入集群标签配额。

GuardDuty 代理附加容器不计入每个任务定义的容器配额。

与大多数安全软件一样，GuardDuty 有少量开销。有关 Fargate 内存限制的信息，请参阅《GuardDuty 用户指南》**中的 [CPU 和内存限制](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits)。有关 Amazon EC2 内存限制的信息，请参阅 [CPU and memory limit for GuardDuty agent](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ec2-support.html#ec2-cpu-memory-limits-gdu-agent)。