本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 团队无法保证预期的安全值。
提供 ECR 权限和子网详细信息
在启用运行时监控之前,您必须提供以下详细信息:
- 为任务执行角色提供权限
-
任务执行角色要求您拥有特定的 Amazon Elastic Container Registry(Amazon ECR)权限。您可以使用 Amazon ECSTask ExecutionRolePolicy 托管策略,也可以在
TaskExecutionRole
策略中添加以下权限:... "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ...
要进一步限制 Amazon ECR 权限,您可以添加为其托管 GuardDuty 安全代理的 Amazon ECR 存储库 URI(仅限 Amazon Fargate Amazon ECS)。有关更多信息,请参阅 Amazon ECR 存储库托管代理 GuardDuty。
- 在任务定义中提供子网详细信息
-
您可以将公有子网作为任务定义中的输入提供,也可以创建一个 Amazon ECR VPC 端点。
-
使用任务定义选项 — UpdateService APIs 在 Amazon 弹性容器服务 API 参考中运行CreateService和需要您传递子网信息。有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Amazon ECS 任务定义。
-
使用 Amazon ECR VPC 端点选项:提供指向 Amazon ECR 的网络路径,以确保用于托管 GuardDuty 安全代理的 Amazon ECR 存储库 URI 可通过网络访问。如果 Fargate 任务将在私有子网中运行,则 Fargate 将需要网络路径来下载容器。 GuardDuty 有关 VPC 端点设置说明,请参阅 Amazon Elastic Contain er Registry 用户指南中的为 Amazon EC R 创建 VPC 端点。
有关启用 Fargate 以下载 GuardDuty 容器的更多信息,请参阅《Amazon Elastic Container Registry 用户指南》中的将 Amazon ECR 映像与 Amazon EC S 结合使用。
-
验证组织服务控制策略
本节介绍如何验证您的服务控制策略 (SCP) 设置,以确保运行时监控在整个组织中按预期运行。
如果您设置了一个或多个服务控制策略来管理组织中的权限,则必须验证该策略未拒绝guardduty:SendSecurityTelemetry
操作。有关 SCPs 工作原理的信息,请参阅《Amazon Organizations 用户指南》中的 SCP 评估。
如果您是成员账户,则连接到关联的委派管理员。有关 SCPs 为您的组织进行管理的信息,请参阅《Amazon Organizations 用户指南》中的服务控制策略 (SCPs)。
对您在多账户环境中设置的所有内容执行以下步骤: SCPs
在 SCP 中未拒绝验证 guardduty:SendSecurityTelemetry
-
登录 Organizations 控制台,网址为https://console.aws.amazon.com/organizations/
。您必须以 IAM 角色身份登录,或在组织的管理账户中以根用户的身份登录(不推荐)。 -
在左侧导航窗格中,选择策略。然后,在支持的策略类型下,选择服务控制策略。
-
在 S ervice control policies (服务控制策略) 页面上,选择要验证的策略的名称。
-
在政策的详情页面上,查看该政策的内容。确保它不会拒绝该
guardduty:SendSecurityTelemetry
操作。以下 SCP 策略是不拒绝
guardduty:SendSecurityTelemetry
操作的示例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ ..., ..., "guardduty:SendSecurityTelemetry" ], "Resource": "*" } ] }
如果您的政策拒绝此操作,则必须更新该政策。有关更多信息,请参阅《Amazon Organizations 用户指南》中的更新服务控制策略(SCP)。
验证角色权限和策略权限边界
使用以下步骤验证与角色及其策略关联的权限边界是否不是限制guardduty:SendSecurityTelemetry
操作。
查看角色及其策略的权限边界
登录到 Amazon Web Services Management Console 并打开 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 集群上设置监控。
下一步是配置运行时监控和安全代理。