Amazon Fargate(仅限 Amazon ECS)支持的先决条件
本节包含监控 Fargate-Amazon ECS 资源的运行时行为的先决条件。满足这些先决条件后,请参阅启用 GuardDuty 运行时监控。
验证架构要求
您使用的平台可能会影响 GuardDuty 安全代理支持 GuardDuty 接收来自 Amazon ECS 集群运行时事件的方式。您必须验证自己使用的是其中一个经过验证的平台。
- 初步注意事项:
-
Amazon ECS 集群的 Amazon Fargate 平台必须是 Linux。相应的平台版本必须至少为
1.4.0或LATEST。有关平台版本的更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Linux 平台版本。尚不支持 Windows 平台版本。
经过验证的平台
操作系统发行版和 CPU 架构会影响 GuardDuty 安全代理提供的支持。下表展示了用于部署 GuardDuty 安全代理以及配置运行时监控的经验证的配置。
| 操作系统发行版1 | 内核支持 | CPU 架构 x64(AMD64) | CPU 架构 Graviton(ARM64) |
|---|---|---|---|
| Linux | eBPF、Tracepoints、Kprobe | 支持 | 支持 |
1支持多种操作系统:已验证 GuardDuty 能够支持在上表所列操作系统上的运行时监控。虽然 GuardDuty 安全代理可以在上表中未列出的操作系统上运行,但 GuardDuty 团队无法保证预期的安全值。
访问容器映像的先决条件
以下先决条件可帮助您从 Amazon ECR 存储库访问 GuardDuty 附加容器映像。
权限要求
任务执行角色需要特定 Amazon Elastic Container Registry(Amazon ECR)权限才能下载 GuardDuty 安全代理容器映像:
... "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ...
要进一步限制 Amazon ECR 权限,您可以添加为 Amazon Fargate(仅限 Amazon ECS)托管 GuardDuty 安全代理的 Amazon ECR 存储库 URI。有关更多信息,请参阅 托管 GuardDuty 代理的 Amazon ECR 存储库。
您可以使用 AmazonECSTaskExecutionRolePolicy 托管式策略或将以上权限添加到您的 TaskExecutionRole 策略。
任务定义配置
创建或更新 Amazon ECS 服务时,您需要在任务定义中提供子网信息:
运行《Amazon Elastic Container Service API Reference》中的 CreateService 和 UpdateService API 时需要传递子网信息。有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Amazon ECS 任务定义。
网络连接要求
您必须确保有网络连接才能从 Amazon ECR 中下载 GuardDuty 容器映像。此要求特定于 GuardDuty,因为它使用 Amazon ECR 托管其安全代理。需要实施以下操作之一,具体取决于网络配置:
- 选项 1:使用公共网络访问(如果可用)
-
如果您的 Fargate 任务在具有出站互联网访问权限的子网中运行,则无需进行额外的网络配置。
- 选项 2:使用 Amazon VPC 端点(用于私有子网)
-
如果您的 Fargate 任务在无法访问互联网的私有子网中运行,您必须为 ECR 配置 VPC 端点,以确保用于托管 GuardDuty 安全代理的 ECR 存储库 URI 可通过网络访问。如果没有这些端点,私有子网中的任务就无法下载 GuardDuty 容器映像。
如需查看 VPC 端点设置说明,请参阅《Amazon Elastic Container Registry User Guide》中的 Create the VPC endpoints for Amazon ECR。
有关启用 Fargate 以下载 GuardDuty 容器的更多信息,请参阅《Amazon Elastic Container Registry 用户指南》中的将 Amazon ECR 映像与 Amazon ECS 结合使用。
安全组配置
GuardDuty 容器镜像位于 Amazon ECR 中,需要 Amazon S3 访问权限。此要求特定于从 Amazon ECR 下载容器映像。对于网络访问受限的任务,您必须将安全组配置为允许访问 S3。
在您的安全组中添加一条出站规则,允许流量通过端口 443 访问 S3 托管前缀列表 (pl-xxxxxxxx)。要添加出站规则,请参阅《Amazon VPC 用户指南》中的配置安全组规则。
要在控制台中查看您的 Amazon 托管前缀列表或使用 Amazon Command Line Interface(Amazon CLI)对其进行描述,请参阅《Amazon VPC 用户指南》 中的 Amazon 托管的前缀列表。
在多账户环境中验证组织服务控制策略
本节介绍如何验证您的服务控制策略(SCP)设置,以确保运行时监控在整个组织中按预期运行。
如果您设置了一个或多个服务控制策略来管理组织中的权限,必须验证该策略不会拒绝 guardduty:SendSecurityTelemetry 操作。有关 SCP 工作原理的信息,请参阅《Amazon Organizations User Guide》中的 SCP evaluation。
如果您是成员账户,则连接到关联的委派管理员。有关管理组织 SCP 的信息,请参阅《Amazon Organizations User Guide》中的 Service control policies (SCPs)。
对您已在多账户环境中设置的所有 SCP 执行以下步骤:
验证在 SCP 中未拒绝 guardduty:SendSecurityTelemetry
-
通过以下网址登录 Organizations 控制台:https://console.aws.amazon.com/organizations
。您必须以 IAM 角色的身份登录,或在组织的管理账户中以根用户的身份登录(不推荐)。 -
在左侧导航窗格中,选择策略。然后,在支持的策略类型下,选择服务控制策略。
-
在服务控制策略页面上,选择要验证的策略的名称。
-
在策略详情页面上,查看该策略的内容。确保该策略不会拒绝
guardduty:SendSecurityTelemetry操作。以下 SCP 策略是不拒绝
guardduty:SendSecurityTelemetry操作的示例:如果您的策略拒绝此操作,则必须更新该策略。有关更多信息,请参阅《Amazon Organizations 用户指南》中的更新服务控制策略(SCP)。
验证角色权限和策略权限边界
使用以下步骤验证与角色关联的权限边界及其策略是否不限制 guardduty:SendSecurityTelemetry 操作。
查看角色权限边界及其策略
登录 Amazon Web Services 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在左侧导航窗格中的访问权限管理下,选择角色。
-
在角色页面上,选择您已创建的角色
。TaskExecutionRole -
在所选角色页面的权限选项卡下,展开与此角色关联的策略名称。然后,确认此策略不限制
guardduty:SendSecurityTelemetry操作。 -
如果设置了权限边界,则展开此部分。然后,展开每项策略,查看其是否不限制
guardduty:SendSecurityTelemetry操作。策略应如 Example SCP policy 所示。如有需要,执行以下操作之一:
-
要修改策略,请选择编辑。在此策略的修改权限页面上,在策略编辑器中更新策略。确保 JSON 架构保持有效。然后选择下一步。然后,您可以查看并保存更改。
-
要更改此权限边界并选择其他边界,请选择更改边界。
-
要移除此权限边界,请选择移除边界。
有关管理策略的更多信息,请参阅《IAM 用户指南》中的 Amazon Identity and Access Management 中的策略与权限。
-
CPU 和内存限制
在 Fargate 任务定义中,您必须在任务级别指定 CPU 和内存值。下表展示了任务级别 CPU 和内存值的有效组合,以及 GuardDuty 容器相应的 GuardDuty 安全代理最大内存限制。
| CPU 值 | 内存值 | GuardDuty 代理最大内存限制 |
|---|---|---|
256 (.25 vCPU) |
512 MiB、1 GB、2 GB |
128MB |
512 (.5 vCPU) |
1GB、2GB、3GB、4GB |
|
1024 (1 vCPU) |
2 GB、3 GB、4 GB |
|
5 GB、6 GB、7 GB、8 GB |
||
2048 (2 vCPU) |
4GB 到 16GB 之间 (以 1GB 为增量) |
|
4096 (4 vCPU) |
8 GB 至 20 GB(以 1 GB 为单位增加) |
|
8192 (8 vCPU) |
16 GB 至 28 GB(以 4 GB 为单位增加) |
256 MB |
32 GB 至 60 GB(以 4 GB 为单位增加) |
512MB |
|
16384(16 个 vCPU) |
32 GB 到 120 GB 之间(以 8 GB 为增量) |
1 GB |
启用运行时监控并评估集群的覆盖率状态是否正常后,您可以设置和查看 Container Insights 指标。有关更多信息,请参阅 在 Amazon ECS 集群上设置监控。
下一步是配置运行时监控和安全代理。