Amazon EC2 实例的覆盖范围 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EC2 实例的覆盖范围

对于 Amazon EC2 资源,运行时间覆盖率是在实例级别进行评估的。您的 Amazon EC2 实例可以在您的 Amazon 环境中运行多种类型的应用程序和工作负载。此功能还支持 Amazon ECS 托管的 Amazon EC2 实例,如果您在 Amazon EC2 实例上运行 Amazon ECS 集群,则实例级别的覆盖问题将显示在 Amazon EC2 运行时覆盖范围之下。

查看覆盖率统计数据

与您自己的账户或成员账户关联的 Amazon EC2 实例的覆盖率统计数据是健康的 EC2 实例占所选所有 EC2 实例的百分比 Amazon Web Services 区域。下式将其表示为:

(运行正常的实例/所有实例)*100

如果您还为 Amazon ECS 集群部署了 GuardDuty 安全代理,则与在 Amazon EC2 实例上运行的 Amazon ECS 集群相关的任何实例级别覆盖问题都将显示为 Amazon EC2 实例运行时覆盖率问题。

选择一种访问方法来查看您账户的覆盖率统计数据。

Console
  • 登录 Amazon Web Services Management Console 并打开 GuardDuty 控制台,网址为 https://console.aws.amazon.com/guardduty/

  • 在导航窗格中,选择 “运行时监控”。

  • 选择 “运行时覆盖范围” 选项卡。

  • EC2 实例运行时覆盖率选项卡下,您可以查看按实例列表表中提供的每个 Amazon EC2 实例的覆盖率状态汇总的覆盖率统计数据。

    • 您可以按以下列筛选 “实例” 列表表:

      • 账户 ID

      • 代理管理类型

      • 代理版本

      • 覆盖状态

      • 实例 ID

      • 集群 ARN

  • 如果您的任何 EC2 实例的覆盖状态为 “不健康”,则 “问题” 列将包含有关不健康状态的原因的其他信息。

API/CLI
  • 使用您自己的有效检测器 ID、当前区域和服务端点运行 ListCoverageAPI。您可以使用此 API 对实例列表进行筛选和排序。

    • 您可以使用以下 CriterionKey 选项之一更改示例 filter-criteria

      • ACCOUNT_ID

      • RESOURCE_TYPE

      • COVERAGE_STATUS

      • AGENT_VERSION

      • MANAGEMENT_TYPE

      • INSTANCE_ID

      • CLUSTER_ARN

    • filter-criteria包含RESOURCE_TYPEEC2 时,运行时监控不支持使用 ISSU E 作为AttributeName。如果您使用它,API 响应将生成InvalidInputException

      您可以使用以下选项更改 sort-criteria 中的示例 AttributeName

      • ACCOUNT_ID

      • COVERAGE_STATUS

      • INSTANCE_ID

      • UPDATED_AT

    • 您可以更改最大结果(最多 50 个)。

    • 要查找您的账户和当前区域的,请参阅 https://console.aws.amazon.com/guardduty/ 控制台中的 “设置” 页面,或者运行 ListDetectorsAPI detectorId

    aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "EKS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • 运行 GetCoverageStatisticsAPI 以检索基于的覆盖率汇总统计信息statisticsType

    • 您可以使用以下选项之一更改示例 statisticsType

      • COUNT_BY_COVERAGE_STATUS:表示按覆盖状态汇总的 EKS 集群的覆盖率统计数据。

      • COUNT_BY_RESOURCE_TYPE— 根据列表中的 Amazon 资源类型汇总的覆盖率统计信息。

      • 您可以在命令中更改示例 filter-criteria。您可以对 CriterionKey 使用以下选项:

        • ACCOUNT_ID

        • RESOURCE_TYPE

        • COVERAGE_STATUS

        • AGENT_VERSION

        • MANAGEMENT_TYPE

        • INSTANCE_ID

        • CLUSTER_ARN

    • 要查找您的账户和当前区域的,请参阅 https://console.aws.amazon.com/guardduty/ 控制台中的 “设置” 页面,或者运行 ListDetectorsAPI detectorId

    aws guardduty --region us-east-1 get-coverage-statistics --detector-id 12abc34d567e8fa901bc2d34e56789f0 --statistics-type COUNT_BY_COVERAGE_STATUS --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"123456789012"}}] }'

如果您的 EC2 实例的覆盖状态为 “运行状况不佳”,请参阅排查覆盖问题

配置覆盖状态变更通知

您的 Amazon EC2 实例的覆盖状态可能显示为 “不健康”。要了解覆盖状态何时发生变化,我们建议您定期监控覆盖状态,并在状态变为 “不健康” 时进行故障排除。或者,您可以创建 Amazon EventBridge 规则,以便在保险状态从 “不健康” 变为 “健康” 或其他情况时收到通知。默认情况下,会在EventBridge 公交车上为您的账户 GuardDuty 发布此内容。

示例通知架构

在 EventBridge 规则中,您可以使用预定义的示例事件和事件模式来接收覆盖状态通知。有关创建 EventBridge 规则的更多信息,请参阅 Amazon EventBridge 用户指南中的创建规则

此外,您还可以使用以下示例通知架构来创建自定义事件模式。确保替换账户的值。要在您的 Amazon EC2 实例的覆盖状态从变Healthy为时收到通知Unhealthydetail-type应为 “GuardDuty 运行时保护不健康”。要在覆盖范围状态从变为时收到通知HealthyUnhealthy请将的detail-type值替换为 “GuardDuty 运行时保护健康”。

{ "version": "0", "id": "event ID", "detail-type": "GuardDuty Runtime Protection Unhealthy", "source": "aws.guardduty", "account": "Amazon Web Services 账户 ID", "time": "event timestamp (string)", "region": "Amazon Web Services 区域", "resources": [ ], "detail": { "schemaVersion": "1.0", "resourceAccountId": "string", "currentStatus": "string", "previousStatus": "string", "resourceDetails": { "resourceType": "EC2", "ec2InstanceDetails": { "instanceId":"", "instanceType":"", "clusterArn": "", "agentDetails": { "version":"" }, "managementType":"" } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

排查覆盖问题

如果您的 Amazon EC2 实例的覆盖状态为 “不健康”,则可以在问题列下查看原因。

如果您的 EC2 实例与 EKS 集群相关联,并且 EKS 的安全代理是手动安装或通过自动代理配置安装的,则要解决覆盖问题,请参阅Amazon EKS 集群的覆盖范围

下表列出了问题类型和相应的故障排除步骤。

问题类型 问题消息 故障排除步骤

没有代理报告

正在等待 SSM 通知

确保 Amazon EC2 实例已由 SSM 托管。接收 SSM 通知可能需要几分钟。

(故意为空)

如果您是手动管理 GuardDuty 安全客户端,请确保按照以下步骤操作手动管理 Amazon EC2 实例的安全代理

如果您启用了自动代理配置:

如果您的组织有服务控制策略 (SCP),请确保它不会拒绝该guardduty:SendSecurityTelemetry权限。有关更多信息,请参阅 验证您的组织服务控制策略

代理已断开连接

  • 查看您的安全代理的状态。有关更多信息,请参阅 正在验证 GuardDuty 安全代理安装状态

  • 查看安全代理日志以确定潜在的根本原因。日志提供了详细的错误,您可以使用这些错误自行解决问题。日志文件位于下方/var/log/amzn-guardduty-agent/

    完成 sudo journalctl -u amazon-guardduty-agent

创建 SSM 关联失败

GuardDuty 您的账户中已存在 SSM 关联

  1. 手动删除现有关联。有关更多信息,请参阅Amazon Systems Manager 用户指南中的删除关联

  2. 删除关联后,请禁用 Amazon EC2 的 GuardDuty 自动代理配置,然后重新启用。

您的账户有太多的 SSM 关联

选择以下两个选项之一

SSM 关联更新失败

GuardDuty 您的账户中不存在 SSM 关联

GuardDuty 您的账户中没有 SSM 关联。禁用,然后重新启用 “运行时监控”。

删除 SSM 关联失败

GuardDuty 您的账户中不存在 SSM 关联

您的账户中没有 SSM 关联。如果故意删除了 SSM 关联,则无需执行任何操作。

SSM 实例关联执行失败

不符合架构要求或其他先决条件。

有关经过验证的操作系统发行版的信息,请参见支持 Amazon EC2 实例的先决条件

如果您仍然遇到此问题,以下步骤将帮助您识别并解决问题:

  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中的节点管理下,选择状态管理器

  3. 按 “文档名称” 属性筛选并输入AmazonGuardDuty-ConfigureRuntimeMonitoringSsmPlugin

  4. 选择相应的关联 ID 并查看其执行历史记录

  5. 使用执行历史记录,查看失败,确定潜在的根本原因,然后尝试解决问题。

创建 VPC 终端节点失败

共享 VPC vpcId 不支持创建 VPC 端点

运行时监控支持在组织内使用共享 VPC。有关更多信息,请参阅 使用带有自动安全代理的共享 VPC

仅当使用带有自动代理配置的共享 VPC 时

共享 VPC 的所有者账户 ID 111122223333 vpcID 未启用运行时监控、自动代理配置或两者兼而有之

共享 VPC 所有者账户必须为至少一种资源类型(Amazon EKS 或 Amazon ECS (Amazon Fargate))启用运行时监控和自动代理配置。有关更多信息,请参阅 特定于 GuardDuty运行时监控的先决条件

启用私有 DNS 需要将 vpcIdenableDnsSupportenableDnsHostnames VPC 属性设置为 true(服务:Ec2,状态代码:400,请求 ID:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111)。

确保以下 VPC 属性设置为 trueenableDnsSupportenableDnsHostnames。有关更多信息,请参阅 VPC 中的 DNS 属性

如果您在 https://console.aws.amazon.com/vpc/ 上使用 Amazon VPC 控制台创建 Amazon VPC,确保选择启用 DNS 主机名启用 DNS 解析。有关更多信息,请参阅 VPC 配置选项

删除共享 VPC 终端节点失败

不允许删除账户 ID 为 111122223333、共享 VPC vp cID、所有者账户 ID 为 555555555555 的共享 VPC 终端节点。

可能的步骤:
  • 禁用共享 VPC 参与者账户的运行时监控状态不会影响共享 VPC 终端节点策略和所有者账户中存在的安全组。

    要删除共享 VPC 终端节点和安全组,您必须在共享 VPC 所有者账户中禁用运行时监控或自动代理配置状态。

  • 共享 VPC 参与者账户无法删除共享 VPC 所有者账户中托管的共享 VPC 终端节点和安全组。

代理未报告

(故意为空)

问题类型已终止支持。如果您仍然遇到此问题但尚未这样做,请为 Amazon EC2 启用 GuardDuty 自动代理。

如果问题仍然存在,请考虑禁用运行时监控几分钟,然后再次启用。