View a markdown version of this page

支持 ECS-EC2 Bottlerocket 的先决条件 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

支持 ECS-EC2 Bottlerocket 的先决条件

重要

本节仅适用于 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 运行时监控。

有关要求和说明的更多信息,请参阅在 Bottlerocket(亚马逊 EC2 上的 Amazon ECS)上管理 GuardDuty 安全代理。

将 EC2 实例设为 SSM 托管并配置实例权限

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

在大多数情况下,您的实例已经拥有的 Bottlerocket 权限也涵盖在内。 GuardDuty无需其他政策。Bottlerocket 用来控制和管理容器镜像的AmazonEC2ContainerRegistryReadOnly策略也满足了提取代理容器镜像 GuardDuty的要求。有关更多信息,请参阅 Bottleroc ket 自述文件。

实例配置文件必须包含以下托管策略:

  • AmazonSSMManagedInstanceCore— Bottlerocket 控制容器需要运行 SSM 代理。要使用 Systems Manager 管理 Amazon EC2 实例,请参阅《Amazon Systems Manager 用户指南》中的为 Amazon EC2 实例设置 Systems Manager。

  • 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 存储库。

验证架构要求

您的实例的架构决定了 GuardDuty 安全代理的行为方式。Bottlerocket ECS-2 及其 ECS-3 变体开箱即用即可满足这些要求。在启用 “运行时监控” 之前,请确认以下内容:

  • 内核支持包括eBPFTracepoints、和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)。

网络连接要求

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

选项 1:使用公共网络访问(如果可用)

如果您的 Bottlerocket 实例在具有出站互联网访问权限的子网中运行,则无需进行额外的网络配置。

选项 2:使用 Amazon VPC 端点(用于私有子网)

对于私有子网中的 Bottlerocket 实例,VPC 终端节点提供代理所需的连接。为 Amazon ECR、Amazon S3 和 Systems Manager 配置终端节点,以便实例可以提取代理映像并与 Systems Manager 通信进行部署。

有关配置 VPC 终端节点的更多信息,请参阅亚马逊弹性容器注册表用户指南中的为 Amazon ECR 创建 VPC 终端节点和用户指南中的创建 VPC 终端节点。Amazon Systems Manager

在多账户环境中验证组织服务控制策略

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

如果您的账户是成员账号,请联系关联的委托管理员。有关管理组织的 SCP 的信息,请参阅 Service control policies (SCPs)。

使用自动代理配置时

要使用自动代理配置, Amazon Web Services 账户 必须满足以下先决条件:

  • 在自动代理配置中使用包含标签时, GuardDuty 要为新实例创建 SSM 关联,请确保新实例由 SSM 管理并显示在控制台的 Fleet Manager 下。https://console.aws.amazon.com/systems-manager/

  • 将排除标签与自动代理配置结合使用时

    • 在启动 Amazon EC2 实例之前,以及在为账户配置 GuardDuty 自动代理之前,将GuardDutyManaged:false标签添加到该实例。启用自动代理配置后,任何启动时没有排除标签的实例都会被自动覆盖。

    • 为您的实例启用允许在元数据中添加标签设置。此设置是必需的,因为 GuardDuty 需要从实例元数据服务 (IMDS) 读取排除标签,以确定是否应将该实例排除在代理安装之外。有关更多信息,请参阅《Amazon EC2 用户指南》中的启用对实例元数据中标签的访问权限。

GuardDuty 代理的 CPU 和内存限制

CPU 限制

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

内存限制

在与您的 Amazon EC2 实例关联的内存中, GuardDuty 安全代理可以使用的内存有限制。

具体内存限制详见下表。

Amazon EC2 实例内存大小

GuardDuty 代理的最大内存

小于 8 GB

128MB

8 GB 到低于 32 GB

256 MB

大于等于 32 GB

1 GB

后续步骤

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