本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EC2 实例支持的先决条件
本节包括监控 Amazon EC2 实例运行时行为的先决条件。满足这些先决条件后,请参阅启用 GuardDuty 运行时监控。
将 EC2 实例设为 SSM 托管(仅用于自动代理配置)
GuardDuty 使用 Amazon Systems Manager (SSM) 在您的实例上自动部署、安装和管理安全代理。如果您计划手动安装和管理 GuardDuty 代理,则不需要 SSM。
要使用 EC2 Systems Manager 管理您的亚马逊实例,请参阅Amazon Systems Manager 用户指南中的为亚马逊 EC2 实例设置系统管理器。
验证架构要求
操作系统分发的架构可能会影响 GuardDuty 安全代理的行为。在对 Amazon EC2 实例使用运行时监控之前,您必须满足以下要求:
-
内核支持包括
eBPF
、Tracepoints
和Kprobe
。对于 CPU 架构,运行时监控支持 AMD64 (x64
) 和 ARM64 (Graviton2 及更高版本)。1下表显示了经验证可支持 Amazon EC2 实例 GuardDuty安全代理的操作系统分布。
-
Amazon EC2 资源的运行时监控不支持第一代 Graviton 实例,例如 A1 实例类型。
-
对各种操作系统的支持- GuardDuty 已验证运行时监控支持上表中列出的操作发行版。虽然 GuardDuty 安全代理可以在上表中未列出的操作系统上运行,但该 GuardDuty 团队无法保证预期的安全值。
-
对于任何内核版本,都必须将该
CONFIG_DEBUG_INFO_BTF
标志设置为y
(意思是 true)。这是必需的,这样 GuardDuty 安全代理才能按预期运行。 -
对于内核版本 5.10 及更早版本, GuardDuty 安全代理使用 RAM (
RLIMIT_MEMLOCK
) 中的锁定内存来按预期运行。如果您的系统RLIMIT_MEMLOCK
值设置得太低, GuardDuty 建议将硬限制和软限制都设置为至少 32 MB。有关验证和修改默认RLIMIT_MEMLOCK
值的信息,请参见查看和更新RLIMIT_MEMLOCK值。
-
-
其他要求-仅当您拥有 Amazon 时 ECS/Amazon EC2
对于亚马逊 ECS/Amazon EC2,我们建议您使用最新的亚马逊 ECS 优化版 AMIs (日期为 2023 年 9 月 29 日或更晚),或者使用亚马逊 ECS 代理版本 1.77.0。
查看和更新RLIMIT_MEMLOCK
值
当您的系统RLIMIT_MEMLOCK
限制设置得太低时, GuardDuty 安全代理可能无法按设计运行。 GuardDuty 建议硬限制和软限制都必须至少为 32 MB。如果您不更新限制, GuardDuty 将无法监控资源的运行时事件。RLIMIT_MEMLOCK
当超过规定的最低限额时,您可以选择更新这些限制。
您可以在安装 GuardDuty 安全客户端之前或之后修改默认RLIMIT_MEMLOCK
值。
查看RLIMIT_MEMLOCK
值
-
运行
ps aux | grep guardduty
。这将输出进程 ID (pid
)。 -
从上一个命令的输出中复制进程 ID (
pid
)。 -
将
pid
替换为从上一步中复制的进程 IDgrep "Max locked memory" /proc/
后运行。pid
/limits这将显示运行 GuardDuty 安全代理时的最大锁定内存。
更新RLIMIT_MEMLOCK
值
-
如果该
/etc/systemd/system.conf.d/
文件存在,则NUMBER
-limits.confDefaultLimitMEMLOCK
从该文件中注释掉该行。此文件将默认设置RLIMIT_MEMLOCK
为高优先级,这会覆盖您在/etc/systemd/system.conf
文件中的设置。 -
打开
/etc/systemd/system.conf
文件并取消注释包含的行。#DefaultLimitMEMLOCK=
-
更新默认值,将硬限制和软
RLIMIT_MEMLOCK
限制设置为至少 32MB。更新应该是这样的:DefaultLimitMEMLOCK=32M:32M
. 格式为soft-limit:hard-limit
。 -
运行
sudo reboot
。
在多账户环境中验证您的组织服务控制策略
如果您已设置服务控制策略 (SCP) 来管理组织中的权限,请验证权限边界是否允许该guardduty:SendSecurityTelemetry
操作。它是支持跨不同资源类型的运行时监控所必需的。 GuardDuty
如果您是成员账户,则连接到关联的委派管理员。有关为您的组织 SCPs 进行管理的信息,请参阅服务控制策略 (SCPs)。
使用自动代理配置时
为使用自动代理配置(推荐)此,您 Amazon Web Services 账户 必须满足以下先决条件:
-
在自动代理配置中使用包含标签时, GuardDuty 要为新实例创建 SSM 关联,请确保新实例由 SSM 管理并显示在控制台的 Fleet Manager 下。https://console.aws.amazon.com/systems-manager/
-
将排除标签与自动代理配置结合使用时
-
在为您的账户配置 GuardDuty 自动代理之前,请添加
GuardDutyManaged
:false
标签。在启动 Amazon EC2 实例之前,请务必将排除标签添加到这些实例。在您为 Amazon 启用自动代理配置后 EC2,任何在没有排除标签的情况下启动的 EC2 实例都将包含在 GuardDuty 自动代理配置中。
-
为您的实例启用 “允许在元数据中添加标签” 设置。此设置是必需的,因为 GuardDuty 需要从实例元数据服务 (IMDS) 读取排除标签,以确定是否应将该实例排除在代理安装之外。有关更多信息,请参阅 Amazon EC2 用户指南中的启用对实例元数据中标签的访问权限。
-
GuardDuty 代理的 CPU 和内存限制
- CPU 限制
-
与 Amazon EC2 实例关联 GuardDuty 的安全代理的最大 CPU 限制为 vCPU 内核总数的 10%。例如,如果您的 EC2 实例有 4 个 vCPU 内核,则安全代理最多可以使用 400% 的可用核心。
- 内存限制
-
从与您的 Amazon EC2 实例关联的内存中, GuardDuty 安全代理可以使用的内存有限。
具体内存限制详见下表。
Amazon EC2 实例的内存
GuardDuty 代理的最大内存
小于 8 GB
128MB
小于 32 GB
256 MB
大于等于 32 GB
1 GB
后续步骤
下一步是配置运行时监控并管理安全代理(自动或手动)。