

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

# ECS-EC2 Bottlerocket 的运行时覆盖范围和故障排除
<a name="gdu-assess-coverage-bottlerocket-ecs-ec2"></a>

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

Bottlerocket 亚马逊 EC2 实例显示在 EC2 实例运行时覆盖**范围选项卡下。**要查看 Bottlerocket 实例的覆盖率统计信息，请打开 GuardDuty 控制台，**在导航窗格中选择**运行时监控，然后选择**运行时覆盖率选项卡。**在 ** EC2 实例运行时覆盖范围下**，您可以查看每个实例的覆盖范围状态，并按账户 ID、代理版本或覆盖范围状态进行筛选。有关更多信息，请参阅 [查看覆盖率统计数据](gdu-assess-coverage-ec2.md#review-coverage-statistics-ec2-runtime-monitoring)。

## 排除 BottleRocket 运行 ECS-EC2 时覆盖率问题
<a name="bottlerocket-ecs-ec2-coverage-issues-troubleshoot"></a>

如果您的 Bottlerocket Amazon EC2 实例的承保状态为 “**不正常”**，您可以在 “问题” 列下查看原因。** **

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


| 问题类型 | 问题消息 | 故障排除步骤 | 
| --- | --- | --- | 
| 无代理报告 | 正在等待 SSM 通知 | 接收 SSM 通知可能需要几分钟。<br />确保您的 Bottlerocket 实例由 SSM 管理。默认情况下，SSM 代理在 Bottlerocket 控制容器中运行。验证实例配置文件是否包含`AmazonSSMManagedInstanceCore`和`AmazonEC2ContainerRegistryReadOnly`托管策略。 | 
| 无代理报告 | 不适用 | 验证代理主机容器是否已启用并正在运行：1.  使用 SSM 会话管理器连接到您的实例。 <br />2.  进入管理容器：`enter-admin-container`。 <br />3.  验证设置:`apiclient get settings.host-containers.amazon-guardduty-agent`. 确认`enabled`是`true`和`superpowered`是`true`。 <br />4.  检查代理进程是否正在运行：`sheltie ps aux \| grep guardduty`。 <br />5.  使用以下方法之一检查代理日志：   `sheltie journalctl -u host-containers@amazon-guardduty-agent`   来自谢尔蒂会议 (`sudo sheltie`):`ls /var/log/amzn-guardduty-agent/`.    | 
| 无代理报告 | 不适用 | 验证该实例是否具有与 Amazon ECR 终端节点和 GuardDuty VPC 终端节点的网络连接。如果您的实例在私有子网中运行，请确保您已为 Amazon ECR 和 GuardDuty VPC 终端节点配置了。 | 
| 无代理报告 | 不适用 | 如果您的组织有服务控制策略 (SCP)，请确认权限边界允许该`guardduty:SendSecurityTelemetry`权限。 | 
| 创建 SSM 关联失败 | GuardDuty 您的账户中已经存在 SSM 关联。 |  1.  手动删除现有的关联。有关更多信息，请参阅《Amazon Systems Manager 用户指南》中的[删除关联](https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-state-manager-delete-association.html)**。 <br />2.  删除关联后，禁用并重新启用 Amazon EC2 的 GuardDuty 自动代理配置。   | 
| 创建 SSM 关联失败 | 您的账户有太多的 SSM 关联。 | 请选择以下两个选项**之一**：+  删除任何未使用的 SSM 关联。有关更多信息，请参阅《Amazon Systems Manager 用户指南》中的[删除关联](https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-state-manager-delete-association.html)**。 <br />+  检查您的账户是否有资格申请增加配额。有关信息，请参阅《Amazon Web Services 一般参考》中的 [Systems Manager Service quotas](https://docs.amazonaws.cn/general/latest/gr/ssm.html#limits_ssm)**。  | 
| SSM 关联更新失败 | GuardDuty 您的账户中不存在 SSM 关联。 | GuardDuty 您的账户中没有 SSM 关联。禁用运行时监控，然后重新启用。 | 
| 删除 SSM 关联失败 | GuardDuty 您的账户中不存在 SSM 关联。 | 您的账户中不存在该 SSM 关联。如果 SSM 关联已被有意删除，则无需执行任何操作。 | 
| SSM 实例关联执行失败 | 不满足架构要求或其他先决条件。 | 有关经过验证的要求的信息，请参阅[支持 ECS-EC2 Bottlerocket 的先决条件](prereq-runtime-monitoring-ecs-ec2-bottlerocket-support.md)。<br />如果您仍然遇到此问题，请查看 SSM 状态管理器的执行历史记录：1.  在处打开 Amazon Systems Manager 控制台[https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)。 <br />2.  在导航窗格中的**节点管理**下，选择**状态管理器**。 <br />3.  按**文档名称**属性筛选并输入 **AmazonGuardDuty-ConfigureRuntimeMonitoringSsmPlugin**。 <br />4.  选择相应的关联 ID 并查看其**执行历史记录**。 <br />5.  使用执行历史记录，查看失败的记录，确定可能的根本原因，然后尝试解决问题。  | 
| 代理已断开连接 | 不适用 |  +  检查管理容器中的代理日志： <pre>enter-admin-container<br />sheltie journalctl -u host-containers@amazon-guardduty-agent</pre> <br />+  通过检查主机容器设置中的`source`字段是否指向有效的 Amazon ECR URI，验证代理容器映像是否已成功提取。 <br />+  确保实例配置文件具有 Amazon ECR 提取权限。有关更多信息，请参阅 [管理 EC2 实例 SSM 并配置实例权限](prereq-runtime-monitoring-ecs-ec2-bottlerocket-support.md#ssm-managed-prereq-bottlerocket)。   | 
| 未预置代理 | 带有排除标签的实例将排除在运行时监控之外。 | GuardDuty 不接收来自使用排除标签`GuardDutyManaged`:启动的 Amazon EC2 实例的运行时事件`false`。<br />要接收来自该实例的运行时事件，请移除排除标签。 | 
| 未预置代理 | 内核版本低于支持的版本。 | 更新到最新的 Bottlerocket ECS-2 或 ECS-3 经过优化的 AMI `v1.62.1` 或更高版本，以实现自动代理配置。 | 
| ECR 镜像提取失败 | 无法从 Amazon ECR 提取代理容器镜像。 |  +  验证实例配置文件是否包含`AmazonEC2ContainerRegistryReadOnly`托管策略或所需的个人 Amazon ECR 权限。 <br />+  验证与您所在地区的 Amazon ECR 终端节点的网络连接。 <br />+  如果使用私有子网，请确保配置 VPC 终端节点。有关更多信息，请参阅 [网络连接要求](prereq-runtime-monitoring-ecs-ec2-bottlerocket-support.md#network-connectivity-prereq-bottlerocket)。   | 