

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

# 支持 ECS-EC2 Bottlerocket 的先决条件
<a name="prereq-runtime-monitoring-ecs-ec2-bottlerocket-support"></a>

**重要**  
本节仅适用于 *Bottlerocket ECS-optimized AMI* 版本`v1.62.1`及更高版本，包括以下变体：  
`bottlerocket-aws-ecs-2-x86_64` / `bottlerocket-aws-ecs-2-aarch64`
`bottlerocket-aws-ecs-3-x86_64` / `bottlerocket-aws-ecs-3-aarch64`
`bottlerocket-aws-ecs-2-nvidia` / `bottlerocket-aws-ecs-2-nvidia-fips`
`bottlerocket-aws-ecs-3-nvidia` / `bottlerocket-aws-ecs-3-nvidia-fips`

运行时监控使用作为主机容器运行的安全代理，将威胁检测扩展 GuardDuty到亚马逊 ECS 集群中的 Bottlerocket Amazon EC2 实例，以适应 Bottlerocket 的容器优化设计。要启用它，请完成本节中的先决条件。满足这些先决条件后，请参阅[启用 GuardDuty 运行时监控](runtime-monitoring-configuration.md)。

有关要求和说明的更多信息，请参阅[在 Bottlerocket（亚马逊 EC2 上的 Amazon ECS）上管理 GuardDuty 安全代理](managing-gdu-agent-bottlerocket-ecs-ec2.md)。

**Topics**
+ [将 EC2 实例设为 SSM 托管并配置实例权限](#ssm-managed-prereq-bottlerocket)
+ [验证架构要求](#validating-architecture-req-bottlerocket)
+ [网络连接要求](#network-connectivity-prereq-bottlerocket)
+ [在多账户环境中验证组织服务控制策略](#validate-organization-scp-bottlerocket)
+ [使用自动代理配置时](#runtime-bottlerocket-prereq-automated-agent-config)
+ [GuardDuty 代理的 CPU 和内存限制](#bottlerocket-prereq-cpu-memory-limits)
+ [后续步骤](#next-step-after-prereq-bottlerocket)

## 将 EC2 实例设为 SSM 托管并配置实例权限
<a name="ssm-managed-prereq-bottlerocket"></a>

GuardDuty 使用 Amazon Systems Manager (SSM) 在 Bottlerocket 实例上部署、安装和管理安全代理，通过 Bottlerocket 控制容器中的 SSM 代理运行。

在大多数情况下，您的实例已经拥有的 Bottlerocket 权限也涵盖在内。 GuardDuty无需其他政策。Bottlerocket 用来控制和管理容器镜像的`AmazonEC2ContainerRegistryReadOnly`策略也满足了提取代理容器镜像 GuardDuty的要求。有关更多信息，请参阅 [Bottleroc](https://github.com/bottlerocket-os/bottlerocket/blob/develop/README.md#exploration) ket 自述文件。

实例配置文件必须包含以下托管策略：
+ `AmazonSSMManagedInstanceCore`— Bottlerocket 控制容器需要运行 SSM 代理。要使用 Systems Manager 管理 Amazon EC2 实例，请参阅《Amazon Systems Manager 用户指南》**中的[为 Amazon EC2 实例设置 Systems Manager](https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html)。
+ `AmazonEC2ContainerRegistryReadOnly`— 从 Amazon ECR 中提取 GuardDuty 代理容器映像时必需的。至少需要以下权限：

  ```
  ...
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
  ...
  ```

要进一步限制亚马逊 ECR 权限，您可以添加托管 Amazon EC2 Bottlerocket GuardDuty 安全代理的 Amazon ECS-Amazon ECR 存储库 URI。有关更多信息，请参阅 [Bottlerocke GuardDuty t 上 ECS-EC2 代理的 ECR 存储库](ecs-ec2-bottlerocket-runtime-agent-ecr-image-uri.md)。

## 验证架构要求
<a name="validating-architecture-req-bottlerocket"></a>

您的实例的架构决定了 GuardDuty 安全代理的行为方式。Bottlerocket ECS-2 及其 ECS-3 变体开箱即用即可满足这些要求。在启用 “运行时监控” 之前，请确认以下内容：
+ 内核支持包括`eBPF``Tracepoints`、和`Kprobe`。Bottlerocket ECS-2 变体使用内核，变 ECS-3 体使用内核`6.1`。`6.12`两个版本都符合运行时监控的内核要求。在 Bottlerock ECS-2 et 和`CONFIG_DEBUG_INFO_BTF=y`内核中，内核选项默认处于启用状态。 ECS-3 
+ 对于 CPU 架构，运行时监控支持 AMD64 (`x86_64`) 和 ARM64 (`aarch64`)。

## 网络连接要求
<a name="network-connectivity-prereq-bottlerocket"></a>

GuardDuty 将其安全代理作为容器镜像托管在 Amazon ECR 中，因此您的实例需要与 Amazon ECR 的网络连接才能提取它。根据您的网络配置，选择以下选项之一：

**选项 1：使用公共网络访问（如果可用）**  
如果您的 Bottlerocket 实例在具有出站互联网访问权限的子网中运行，则无需进行额外的网络配置。

**选项 2：使用 Amazon VPC 端点（用于私有子网）**  
对于私有子网中的 Bottlerocket 实例，VPC 终端节点提供代理所需的连接。为 Amazon ECR、Amazon S3 和 Systems Manager 配置终端节点，以便实例可以提取代理映像并与 Systems Manager 通信进行部署。  
*有关配置 VPC 终端节点的更多信息，请参阅亚马逊*弹性容器注册表用户指南中的[为 Amazon ECR 创建](https://docs.amazonaws.cn/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-vpc-create) VPC 终端节点和用户指南*中的[创建 VPC 终端节点](https://docs.amazonaws.cn/systems-manager/latest/userguide/setup-create-vpc.html)。Amazon Systems Manager *

## 在多账户环境中验证组织服务控制策略
<a name="validate-organization-scp-bottlerocket"></a>

如果您已设置服务控制策略 (SCP) 来管理组织中的权限，请验证权限边界是否允许该`guardduty:SendSecurityTelemetry`操作。 GuardDuty 需要此权限才能支持跨不同资源类型的运行时监控。

如果您的账户是成员账号，请联系关联的委托管理员。有关管理组织的 SCP 的信息，请参阅 [Service control policies (SCPs)](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies_scps.html)。

## 使用自动代理配置时
<a name="runtime-bottlerocket-prereq-automated-agent-config"></a>

要使用自动代理配置， Amazon Web Services 账户 必须满足以下先决条件：
+ 在自动代理配置中使用包含标签时， GuardDuty 要为新实例创建 SSM 关联，请确保新实例由 SSM 管理并显示在控制台的 **Fleet Manager** 下。[https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)
+ 将排除标签与自动代理配置结合使用时
  + 在启动 Amazon EC2 实例之前，以及在为账户配置 GuardDuty 自动代理之前，将`GuardDutyManaged`:`false`标签添加到该实例。启用自动代理配置后，任何启动时没有排除标签的实例都会被自动覆盖。
  + 为您的实例启用**允许在元数据中添加标签**设置。此设置是必需的，因为 GuardDuty 需要从实例元数据服务 (IMDS) 读取排除标签，以确定是否应将该实例排除在代理安装之外。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[启用对实例元数据中标签的访问权限](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html#allow-access-to-tags-in-IMDS)。

## GuardDuty 代理的 CPU 和内存限制
<a name="bottlerocket-prereq-cpu-memory-limits"></a>

**CPU 限制**  
GuardDuty 将安全代理限制为实例上 vCPU 总容量的 10%。例如，在具有 4 个 vCPU 核心的实例上，代理最多可以使用 0.4 个 vCPU。

**内存限制**  
在与您的 Amazon EC2 实例关联的内存中， GuardDuty 安全代理可以使用的内存有限制。  
具体内存限制详见下表。  


<table>
<thead>
  <tr><th>Amazon EC2 实例内存大小</th><th> GuardDuty 代理的最大内存</th></tr>
</thead>
<tbody>
  <tr><td>小于 8 GB</td><td>128MB</td></tr>
  <tr><td>8 GB 到低于 32 GB</td><td>256 MB</td></tr>
  <tr><td>大于等于 32 GB</td><td>1 GB</td></tr>
</tbody>
</table>


## 后续步骤
<a name="next-step-after-prereq-bottlerocket"></a>

下一步是配置运行时监控并自动管理安全代理。