亚马逊的 EKS 保护 GuardDuty - 亚马逊 GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

亚马逊的 EKS 保护 GuardDuty

GuardDuty EKS PAmazon GuardDuty rotestic Kubernetes Service (Amazon EKS) 所托管的 Kubernetes 集群的正式 (Amazon EKS)。

EKS 保护是一项可选的增强功能, GuardDuty 允许使用 Kubernetes 数据源。本主题介绍了启用或禁 GuardDuty 用 EKS 保护的过程。

我们强烈建议您不要在中禁用 EKS GuardDuty。如果未启用该功能,则监控或生成发现您的 Amazon EKS 环境中可疑活动的能力将受到限制。 GuardDuty

如何 GuardDuty 使用 Kubernetes 数据源

启用 EKS 保护后, GuardDuty 使用可选数据源来检测针对 Kubernetes API 的威胁。目前,在启用 Kubernetes 保护的情况下可以摄取以下数据源:

Kubernetes 审计日志

Kubernetes 审计日志是所有 Kubernetes 集群的一项功能,可捕获来自用户、应用程序和控制层面的按时间顺序排列 API 活动。启用 EKS 保护后,从 Amazon EKS GuardDuty 提取这些日志,为您的亚马逊 EKS 资源生成 Kubernetes 调查结果,无需您开启或存储这些日志。有关更多信息,请参阅 Kubernetes 审核日志

启用 EKS 保护后, GuardDuty 立即开始分析来自 Amazon EKS 集群的 Kubernetes 数据源,并监控它们是否存在恶意和可疑活动。有关更多信息,请参阅亚马逊如何 GuardDuty 使用其数据源

如果您禁用 GuardDuty EKS 保护,则 GuardDuty 立即停止使用此数据源并停止监视您的 EKS 集群。

为独立账户配置 EKS 保护

您可以通过控制台或UpdateDetector API 操作禁用或启用 GuardDuty EKS 保护。

要为您的账户配置 EKS 保护,请参阅以下配置选项。

启用或禁用 EKS

选择以下访问方法之一,获取有关为独立账户启用或禁 GuardDuty 用 EKS 保护的说明。

Console
  1. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  2. 在导航窗格中的导航窗中的 EKS。

  3. EKS 保护面板列出了您的账户的 Kubernetes 保护的当前状态。您可以随时启用或禁用它,分别选择 “用” 或 “禁用”,然后确认您的选择。

API
  • 使用您自己的区域探测器 ID 运行 updateDetectorAPI 操作,并将[["Kubernetes Logs":"enable"]]设置为 true 或 false 的dataSources对象传递以启用或禁用。

    您也可以通过运行以下Amazon CLIAmazon 命令使用命令行工具启用或禁用 GuardDuty EKS 保护。务必使用您自己的有效探测器 ID。

    注意

    以下示例代码启用 GuardDuty EKS 保护。要将其禁用,请true替换为false

    你可以在 https://console.aws.amazon.com/guardduty/ 控制台的 “设置” 页面上找到你当前区域的 detectorId,也可以使用 ListDetectorsAPI。

    aws guardduty update-detector --detector-id 12abc34d567e8fa901bc2d34e56789f0 --data-sources '{"Kubernetes":{"AuditLogs":{"Enable":true}}}'

在多账户环境中配置 EKS 保护

在多账户环境中,只有 GuardDuty 委托的管理员账户才能配置 EKS 保护。 GuardDuty 委托管理员可以为其成员账户启用或禁用 Kubernetes 保护。 GuardDuty 成员帐户无法启用或禁用此数据源。

GuardDuty 使用管理其成员帐户的管理员帐户Amazon Organizations可以选择在组织中的所有新帐户上自动启用 EKS Protection。有关更多信息,请参阅使用以下 GuardDuty 方式管理账户Amazon Organizations

自动为组织成员账户启用 EKS 保护

注意

此功能仅适用于通过注册成员的 GuardDuty 委托管理员Amazon Organizations。

  1. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  2. 在导航窗格中的 Settings 下,选择 Accounts

  3. 确保 “的自动启 GuardDuty 用” 已开启。如果已关闭,则可以通过从标题中选择 “启用” 或选择 “自动启用为关闭” 来启用它。当新成员帐户加入您的组织时,该功能会自动启用,并且必须启用此功能才能自动启用 EKS P GuardDuty rotection。

  4. 启自动启用后,您可以通过选择 Kubernetes 保护切换图标为新成员启用 EKS 保护。 GuardDuty 选择 “更新设置” 进行确认。

在成员账户中手动启用或禁用 EKS 保护

在下面选择您的访问方式,获取有关为成员账户启用或禁用 Kubernetes 保护的说明。

Console

为所有账户启用 EKS 保护

  1. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  2. 如果您想同时为所有账户启用 EKS 保护,请从导航窗格中选择 EKS 保护

  3. 您将看到一份声明,其中反映了您管理的启用了 EKS 保护的账户数量。选择 “全部启用” 可为所有账户启用 EKS 保护。

    注意

    如果您管理组织内的帐户,则此操作还会启用自动启用功能,以自动为组织内的future 成员帐户启用 EKS Protection。

在成员账户中手动启用或禁用 EKS 保护

  1. 通过 https://console.aws.amazon.com/guardduty/ 打开 GuardDuty 主机。

  2. 在导航窗格中的 Settings 下,选择 Accounts

    注意

    账户表中,查看 EKS 保护列。绿色勾号图标表示 EKS 保护已启用,蓝色短划线图标表示已禁用。如果此列为空,则该账户没有资格获得 EKS 保护。您也可以按 “启用” 或 “用” 进行筛选。

  3. 选择要为 Kubernetes 保护的账户。从 “操作” 菜单中选择 “启用 EKS 保护” 或 “禁用 EKS 保护”。确认您的选择以更改所选账户的设置。表格会自动更新以显示您的更改。

API

要有选择地为您的成员账户启用或禁用 EKS 保护,请使用您自己的检测器 ID 运行 updateMemberDetectorsAPI 操作。以下示例说明如何为单个成员账户启用 EKS。要将其禁用,请true替换为false

你可以在 https://console.aws.amazon.com/guardduty/ 控制台的 “设置” 页面上找到你当前区域的 detectorId,也可以使用 ListDetectorsAPI 来找到。

aws guardduty update-member-detectors --detector-id 12abc34d567e8fa901bc2d34e56789f0 --account-ids 123456789012 --data-sources '{"Kubernetes":{"AuditLogs":{"Enable":true}}}'
注意

您也可以传递由空格分隔的账户 ID 列表。

当代码成功运行时,它会返回一个空列表UnprocessedAccounts。如果更改账户的检测器设置时出现任何问题,则会列出该账户 ID 以及问题摘要。

注意

如果您使用脚本添加新账户并想在新账户中禁用 Kubernetes Protection,则可以使用本主题中所述的可选dataSources对象修改 createDetectorAPI 操作。

自动为新 GuardDuty 账户禁用 EKS 保护

重要

默认情况下,会自动为所有 GuardDuty 账户启用 EKS 保护。

如果您是首次在新账户上启 GuardDuty 用 EKS Protection 的 GuardDuty 管理员,并且您不希望在默认情况下启用 EKS Protection,则可以通过修改带有可选dataSources对象createDetector的 API 操作来将其禁用。以下示例在禁用 EKS 保护的情况下使用Amazon CLI 启用新的 GuardDuty 检测器。

aws guardduty create-detector --enable --data-sources '{"Kubernetes":{"AuditLogs":{"Enable":false}}}'