Amazon EC2 实例的运行时覆盖率和故障排除
对于 Amazon EC2 资源,运行时间覆盖率是在实例级别评估的。Amazon EC2 实例可能会在您的 Amazon 环境中运行多种类型的应用程序和工作负载等等。此功能还支持由 Amazon ECS 托管的 Amazon EC2 实例,并且如果您在 Amazon EC2 实例上运行 Amazon ECS 集群,则实例级别的覆盖率问题将在 Amazon EC2 运行时覆盖率下显示。
查看覆盖率统计数据
对于与您自己的账户或成员账户有关的 Amazon EC2 实例,覆盖率统计数据是选定 Amazon Web Services 区域中正常 EC2 实例占所有 EC2 实例的百分比。下式将其表示为:
(正常实例数/所有实例数)*100
如果您还为 Amazon ECS 集群部署了 GuardDuty 安全代理,那么与在 Amazon EC2 实例上运行的 Amazon ECS 集群相关的任何实例级别覆盖率问题都将显示为 Amazon EC2 实例运行时覆盖率问题。
选择一种访问方法来查看您账户的覆盖率统计数据。
如果 EC2 实例的覆盖率状态为不正常,请参阅对 Amazon EC2 运行时覆盖率问题进行故障排除。
通过 EventBridge 通知接收覆盖率状态更改
Amazon EC2 实例的覆盖率状态可能显示为不正常。要检测覆盖率状态何时变为不正常,我们建议您定期监控覆盖率状态,并在状态变为不正常时进行故障排除。您也可以创建一条 Amazon EventBridge 规则,从而在覆盖率状态从不正常变为正常或发生其他变化时接收通知。默认情况下,GuardDuty 会在您账户的 EventBridge 总线中发布此信息。
示例通知架构
在 EventBridge 规则中,您可以使用预定义的示例事件和事件模式来接收覆盖状态通知。有关创建 EventBridge 规则的更多信息,请参阅《Amazon EventBridge 用户指南》中的创建规则。
此外,您还可以使用以下示例通知架构来创建自定义事件模式。确保替换账户的值。要在 Amazon EC2 实例的覆盖率状态从 Healthy 变为 Unhealthy 时接收通知,则 detail-type 应为 GuardDuty Runtime Protection Unhealthy。要在覆盖状态从 Unhealthy 变为 Healthy 时收到通知,请将 detail-type 的值替换为 GuardDuty Runtime Protection Healthy。
{ "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 运行时覆盖率问题进行故障排除
如果 Amazon EC2 实例的覆盖率状态为不正常,则可以在问题列下查看原因。
如果 EC2 实例与某个 EKS 集群关联,并且手动或通过自动代理配置安装了 EKS 安全代理,则要对覆盖率问题进行故障排除,请参阅Amazon EKS 集群的运行时覆盖率和故障排除。
下表列举了问题类型和相应的故障排除步骤。
| 问题类型 | 问题消息 | 故障排除步骤 |
|---|---|---|
|
无代理报告 |
正在等待 SSM 通知 |
接收 SSM 通知可能需要几分钟时间。 确保 Amazon EC2 实例是由 SSM 托管的。有关更多信息,请参阅手动安装安全代理中方法 1 – 使用 Amazon Systems Manager 下的步骤。 |
|
(特意留空) |
如果您是手动管理 GuardDuty 安全代理,请确保您已完成手动管理 Amazon EC2 资源的安全代理中的步骤。 |
|
|
如果您启用了自动代理配置:
|
||
|
验证 Amazon EC2 实例的 VPC 端点配置是否正确。有关更多信息,请参阅 验证 VPC 端点配置。 |
||
|
如果您的组织设置了服务控制策略(SCP),请验证权限边界未限制 |
||
|
代理已断开连接 |
|
|
|
未预置代理 |
带有排除标签的实例将排除在运行时监控之外。 |
GuardDuty 不会接收来自使用排除标签 要接收来自此 Amazon EC2 实例的运行时事件,请移除排除标签。 |
|
内核版本低于支持的版本。 |
有关各操作系统分发支持的内核版本的信息,请参阅验证架构要求,了解 Amazon EC2 实例。 |
|
|
内核版本高于支持的版本。 |
有关各操作系统分发支持的内核版本的信息,请参阅验证架构要求,了解 Amazon EC2 实例。 |
|
|
无法检索实例身份文档。 |
按照以下步骤进行操作:
|
|
|
创建 SSM 关联失败 |
您的账户中已存在 GuardDuty SSM 关联 |
|
|
您的账户有太多的 SSM 关联 |
请选择以下两个选项之一:
|
|
|
更新 SSM 关联失败 |
您的账户中不存在 GuardDuty SSM 关联 |
您的账户中不存在 GuardDuty SSM 关联。禁用运行时监控,然后重新启用。 |
|
删除 SSM 关联失败 |
您的账户中不存在 GuardDuty SSM 关联 |
您的账户中不存在该 SSM 关联。如果 SSM 关联已被有意删除,则无需执行任何操作。 |
|
SSM 实例关联执行失败 |
不满足架构要求或其他先决条件。 |
有关经验证的操作系统发行版的信息,请参阅 Amazon EC2 实例支持的先决条件。 如果您仍然遇到此问题,以下步骤将有助您识别和潜在解决问题:
|
|
VPC 端点创建失败 |
共享 VPC |
运行时监控支持在组织内使用共享 VPC。有关更多信息,请参阅 使用带运行时监控功能的共享 VPC。 |
|
仅在将自动代理配置与共享 VPC 结合使用时 共享 VPC |
共享 VPC 所有者账户必须至少为一种资源类型 [Amazon EKS 或 Amazon ECS(Amazon Fargate)] 启用运行时监控和自动代理配置。有关更多信息,请参阅 GuardDuty 运行时监控特有的先决条件。 | |
启用私有 DNS 需要将 |
确保以下 VPC 属性设置为 如果您在 https://console.aws.amazon.com/vpc/ 更新 VPC 属性后,必须通过进行以下更改之一来加快 VPC 端点创建的重试速度:
|
|
VPC 端点删除失败 |
账户 ID |
可能的步骤:
|
|
代理未报告 |
(特意留空) |
对该问题类型的支持已经终止。如果您仍然遇到此问题并且尚未为 Amazon EC2 启用 GuardDuty 自动代理,请启用该自动代理。 如果问题仍然存在,可考虑禁用运行时监控几分钟,然后重新启用。 |