View a markdown version of this page

B ECS-EC2 ottlerocket 的运行时间覆盖和故障排除 - Amazon GuardDuty

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

B ECS-EC2 ottlerocket 的运行时间覆盖和故障排除

对于亚马逊 ECS 集群中的 Bottlerocket Amazon EC2 实例,在实例 GuardDuty 级别评估运行时间覆盖率。 GuardDuty 安全代理在 Bottlerocket 上作为主机容器运行,而不是作为已安装的 RPM 或 Debian 软件包运行。

Bottlerocket Amazon EC2 实例显示在 EC2 实例运行时覆盖率选项卡下。要查看 Bottlerocket 实例的覆盖率统计信息,请打开 GuardDuty 控制台,在导航窗格中选择 “运行时监控”,然后选择 “运行时覆盖率” 选项卡。在 EC2 实例运行时覆盖范围下,您可以查看每个实例的覆盖状态并按账户 ID、代理版本或覆盖状态进行筛选。有关更多信息,请参阅 查看覆盖率统计数据

排除 Bottlerocket 运行 ECS-EC2 时覆盖率问题

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

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

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

无代理报告

正在等待 SSM 通知

接收 SSM 通知可能需要几分钟。

确保你的 Bottlerocket 实例由 SSM 托管。默认情况下,SSM 代理在 Bottlerocket 控制容器中运行。验证实例配置文件是否包含AmazonSSMManagedInstanceCoreAmazonEC2ContainerRegistryReadOnly托管策略。

无代理报告

不适用

验证代理主机容器是否已启用并正在运行:

  1. 使用 SSM 会话管理器连接到您的实例。

  2. 进入管理容器:enter-admin-container.

  3. 验证设置:apiclient get settings.host-containers.amazon-guardduty-agent。确认事实trueenabledsuperpowered现状true

  4. 检查代理进程是否正在运行:sheltie ps aux | grep guardduty.

  5. 使用以下方法之一查看代理日志:

    • sheltie journalctl -u host-containers@amazon-guardduty-agent

    • 来自 sheltie 会议 (sudo sheltie):ls /var/log/amzn-guardduty-agent/.

无代理报告

不适用

验证实例是否与 Amazon ECR 终端节点和 GuardDuty VPC 终端节点具有网络连接。如果您的实例在私有子网中运行,请确保您已为 Amazon ECR 和 GuardDuty配置了 VPC 终端节点。

无代理报告

不适用

如果您的组织有服务控制策略 (SCP),请确认权限边界允许该guardduty:SendSecurityTelemetry权限。

创建 SSM 关联失败

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

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

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

创建 SSM 关联失败

您的账户有太多的 SSM 关联。

请选择以下两个选项之一

  • 删除任何未使用的 SSM 关联。有关更多信息,请参阅《AWS Systems Manager 用户指南》中的删除关联

  • 检查您的账户是否有资格申请增加配额。有关信息,请参阅《AWS 一般参考》中的 Systems Manager Service quotas

SSM 关联更新失败

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

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

删除 SSM 关联失败

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

您的账户中不存在该 SSM 关联。如果 SSM 关联已被有意删除,则无需执行任何操作。

SSM 实例关联执行失败

不满足架构要求或其他先决条件。

有关已验证要求的信息,请参阅支持 ECS-EC2 Bottlerocket 的先决条件

如果您仍然遇到此问题,请查看 SSM 状态管理器执行历史记录:

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

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

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

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

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

代理已断开连接

不适用

  • 从管理容器中查看代理日志:

    enter-admin-container sheltie journalctl -u host-containers@amazon-guardduty-agent
  • 通过检查主机容器设置中的source字段是否指向有效的 Amazon ECR URI,验证代理容器映像已成功提取。

  • 确保实例配置文件具有 Amazon ECR 拉取权限。有关更多信息,请参阅 将 EC2 实例设为 SSM 托管并配置实例权限

未预置代理

带有排除标签的实例将排除在运行时监控之外。

GuardDuty 不会接收来自使用排除标签启动的 Amazon EC2 实例的运行时事件GuardDutyManagedfalse

要从该实例接收运行时事件,请移除排除标签。

未预置代理

内核版本低于支持的版本。

更新到最新的 Bottlerocket 或 ECS-2 经过优化的 ECS-3 AMI v1.62.1 或更高版本,以实现自动代理配置。

ECR 镜像拉取失败

无法从 Amazon ECR 中提取代理容器映像。

  • 验证实例配置文件是否包含AmazonEC2ContainerRegistryReadOnly托管策略或所需的个人 Amazon ECR 权限。

  • 验证与您所在地区的 Amazon ECR 终端节点的网络连接。

  • 如果使用私有子网,请确保已配置 VPC 终端节点。有关更多信息,请参阅 网络连接要求