运行时监控如何与 Amazon EKS 集群结合使用 - Amazon GuardDuty

运行时监控如何与 Amazon EKS 集群结合使用

运行时监控使用一种称为 GuardDuty 安全代理的 EKS 附加组件aws-guardduty-agent。在 EKS 集群上部署 GuardDuty 安全代理后,GuardDuty 将能够接收这些 EKS 集群的运行时事件。

备注

运行时监控支持在 Amazon EC2 实例上运行的 Amazon EKS 集群和 Amazon EKS 自动模式。

运行时监控不支持带有 Amazon EKS 混合节点功能的 Amazon EKS 集群以及在 AWS Fargate 上运行的集群。

有关这些 Amazon EKS 功能的更多信息,请参阅《Amazon EKS 用户指南》中的什么是 Amazon EKS?

您可以在账户或集群级别监控 Amazon EKS 集群的运行时事件。您只能为要进行威胁检测监控的 Amazon EKS 集群管理 GuardDuty 安全代理。您可以手动管理 GuardDuty 安全代理,也可以使用自动代理配置来允许 GuardDuty 代表您进行管理。

如果您使用自动代理配置方法来允许 GuardDuty 代表您管理安全代理的部署,则将自动创建一个Amazon Virtual Private Cloud(Amazon VPC)端点。安全代理使用此 Amazon VPC 端点将运行时事件传送到 GuardDuty。

除该 VPC 端点外,GuardDuty 还会创建一个新的安全组。入站(入口)规则负责控制被允许达到与该安全组关联的资源的流量。GuardDuty 会添加与资源的 VPC CIDR 范围相匹配的入站规则,并且还会在 CIDR 范围发生变化时对规则进行调整。有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC CIDR 范围

备注
  • 使用 VPC 端点不会产生额外的成本。

  • 将集中式 VPC 与自动代理结合使用:当您对某个资源类型使用 GuardDuty 自动代理配置时,GuardDuty 将代表您为所有 VPC 创建一个 VPC 端点。这包括集中式 VPC 和分支 VPC。GuardDuty 不支持仅为集中式 VPC 创建 VPC 端点。有关集中式 VPC 工作原理的更多信息,请参阅《AWS 白皮书:构建可扩展且安全的多 VPC AWS 网络基础设施》中的 Interface VPC endpoints

在 Amazon EKS 集群中管理 GuardDuty 安全代理的方法

在 2023 年 9 月 13 日之前,您可以将 GuardDuty 配置为在账户级别管理安全代理。此行为表明,默认情况下,GuardDuty 将管理属于 AWS 账户 的所有 EKS 集群上的安全代理。现在,GuardDuty 提供了一种细粒度功能,可以帮助您选择希望 GuardDuty 在其中管理安全代理的 EKS 集群。

选择 手动管理 GuardDuty 安全代理 后,您仍然可以选择要监控的 EKS 集群。但是,要手动管理代理,必须先为您的 AWS 账户 创建 Amazon VPC 端点。

注意

无论您使用何种方法管理 GuardDuty 安全代理,都会在账户级别启用 EKS 运行时监控。

通过 GuardDuty 管理安全代理

GuardDuty 代表您部署和管理安全代理。在任何时候,您都可以使用以下方法之一监控账户中的 EKS 集群。

监控所有 EKS 集群

如果您希望 GuardDuty 为账户中的所有 EKS 集群部署和管理安全代理,请使用此方法。默认情况下,GuardDuty 还会在您的账户中创建的潜在新 EKS 集群上部署安全代理。

使用此方法的影响
  • GuardDuty 创建了一个 Amazon Virtual Private Cloud(Amazon VPC)端点,GuardDuty 安全代理通过该端点将运行时事件传递给 GuardDuty。当您通过 GuardDuty 管理安全代理时,创建 Amazon VPC 端点不会产生额外费用。

  • 您的 Worker 节点必须具有到活动 guardduty-data VPC 端点的有效网络路径。GuardDuty 在 EKS 集群上部署安全代理。Amazon Elastic Kubernetes Service(Amazon EKS)将协调 EKS 集群内节点上安全代理的部署。

  • 根据 IP 可用性,GuardDuty 选择子网来创建 VPC 端点。如果您使用高级网络拓扑,则必须验证连接是否可行。

排除选定的 EKS 集群

如果您希望 GuardDuty 管理账户中所有 EKS 集群的安全代理,但排除选定的 EKS 集群,请使用此方法。此方法使用基于标签 1 的方法,在这种方法中,您可以标记不希望接收运行时事件的 EKS 集群。预定义标签必须以 GuardDutyManaged-false 作为键值对。

使用此方法的影响

此方法要求您只有在为希望排除监控的 EKS 集群添加标签后,才能启用 GuardDuty 代理自动管理。

因此,当 通过 GuardDuty 管理安全代理 适用于此方法时,也会产生影响。当您在启用 GuardDuty 代理自动管理之前添加标签时,GuardDuty 既不会部署也不会管理从监控中排除的 EKS 集群的安全代理。

注意事项
  • 在启用自动代理配置之前,您必须为选定的 EKS 集群添加标签键值对 GuardDutyManaged:false;否则,在使用标签之前,将在所有 EKS 集群上部署 GuardDuty 安全代理。

  • 您必须防止标签被修改,除非由可信身份修改。

    重要

    使用服务控制策略或 IAM policy 管理修改 EKS 集群 GuardDutyManaged 标签值的权限。有关更多信息,请参阅《AWS Organizations 用户指南》中的服务控制策略(SCP)或《IAM 用户指南》中的控制对 AWS 资源的访问

  • 对于您不想监控的潜在新 EKS 集群,请确保在创建此 EKS 集群时添加 GuardDutyManaged-false 键值对。

  • 此方法的注意事项与 监控所有 EKS 集群 的注意事项相同。

包含选定的 EKS 集群

如果您希望 GuardDuty 仅为您账户中的选定 EKS 集群部署和管理安全代理的更新,请使用此方法。此方法使用基于标签 1 的方法,在这种方法中,您可以标记要接收运行时事件的 EKS 集群。

使用此方法的影响
  • 通过使用包含标签,GuardDuty 将仅为使用 GuardDutyManaged-true 键值对标记的选定 EKS 集群自动部署和管理安全代理。

  • 使用此方法的影响与 监控所有 EKS 集群 的影响相同。

注意事项
  • 如果 GuardDutyManaged 标签的值未设置为 true,则包含标签将无法按预期工作,这可能会影响对您的 EKS 集群的监控。

  • 为确保监控您选择性 EKS 集群,您需要防止标签被修改,除非由可信身份进行修改。

    重要

    使用服务控制策略或 IAM policy 管理修改 EKS 集群 GuardDutyManaged 标签值的权限。有关更多信息,请参阅《AWS Organizations 用户指南》中的服务控制策略(SCP)或《IAM 用户指南》中的控制对 AWS 资源的访问

  • 对于您不想监控的潜在新 EKS 集群,请确保在创建此 EKS 集群时添加 GuardDutyManaged-false 键值对。

  • 此方法的注意事项与 监控所有 EKS 集群 的注意事项相同。

1 有关标记选择性 EKS 集群的更多信息,请参阅《Amazon EKS 用户指南》中的标记 Amazon EKS 资源

手动管理 GuardDuty 安全代理

如果您希望在所有 EKS 集群上手动部署和管理 GuardDuty 安全代理,请使用此方法。确保为您的账户启用 EKS 运行时监控。如果不启用 EKS 运行时监控,GuardDuty 安全代理可能无法按预期工作。

使用此方法的影响

您需要在所有可使用此功能的账户和 AWS 区域中,协调 EKS 集群内的 GuardDuty 安全代理部署。当 GuardDuty 发布代理版本时,您还需要进行更新。有关适用于 EKS 的代理版本的更多信息,请参阅适用于 Amazon EKS 资源的 GuardDuty 安全代理版本

注意事项

随着新集群和工作负载的持续部署,您必须在监控和解决覆盖率缺口的同时,支持安全的数据流。