本页面介绍如何在 Google Cloud 上运行的 Google Kubernetes Engine (GKE) Enterprise 版集群中查找活跃的威胁,并获取切实可行的缓解建议。GKE 威胁检测是 GKE 安全状况信息中心的高级功能。如需了解详情,请参阅 GKE 威胁检测简介。
GKE 威胁检测功能仅适用于使用 GKE Enterprise 并且具有符合条件的 GKE 集群的项目。
价格
GKE 威胁检测功能通过 GKE Enterprise 提供,无需额外付费。
准备工作
- 确保您是 GKE Enterprise 用户。如需设置 GKE Enterprise,请参阅启用 GKE Enterprise。
启用 Container Security API
确保您已有已注册到舰队的 GKE 集群。如需创建并注册新集群,请参阅注册新集群。
启用 GKE 威胁检测之前的注意事项
启用 GKE 威胁检测功能时,还会启用 Kubernetes 安全状况扫描功能的以下功能。这些功能也无需额外付费。
此外,在项目中的集群上启用 GKE 威胁检测时,您还可以在项目中启用以下 Security Command Center 组件。如果您想稍后从项目中移除 GKE 威胁检测,则必须单独停用这些组件。
- Security Command Center API
- 适用于 GKE Enterprise 的 Security Command Center 插件
- Security Command Center 服务账号
- Container Threat Detection 服务账号
在启用过程中,您需要向 Security Command Center 服务账号和 Container Threat Detection 服务账号授予以下 IAM 角色:
- Security Command Center 服务账号:Security Center Service Agent (
roles/securitycenter.serviceAgent
) - Container Threat Detection 服务账号:Container Threat Detection Service Agent (
roles/containerthreatdetection.serviceAgent
)
在项目中启用 GKE 威胁检测
您必须先在项目中启用 GKE 威胁检测,然后才能在集群中启用它。如果您已启用 GKE 威胁检测,请跳过此步骤。
进入 Google Cloud 控制台中的安全状况页面。
在威胁图块中,点击启用威胁检测。
查看您要授予的权限和 IAM 角色,然后点击授予角色并启用威胁检测。这将在项目中启用 GKE 威胁检测。
如需在 GKE 威胁检测中注册集群,请点击在设置页面上选择集群,然后执行以下操作:
- 选中要在 GKE 威胁检测中注册的集群对应的复选框。
- 在选择操作下拉菜单中,选择设置为高级。
- 点击应用。
在单个集群上启用 GKE 威胁检测
如果您已在项目中启用 GKE 威胁检测,则可以使用 Google Cloud 控制台或 Google Cloud CLI 在已注册到舰队的现有集群中启用威胁检测。
控制台
进入 Google Cloud 控制台中的安全状况页面。
点击设置标签。
在已启用安全状况的集群部分中,点击选择集群。
选中要为其启用 GKE 威胁检测的集群对应的复选框。
在选择操作下拉菜单中,选择设置为高级。
点击应用。
gcloud
运行以下命令:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--security-posture=enterprise
替换以下内容:
CLUSTER_NAME
:GKE 集群的名称。LOCATION
:集群的 Compute Engine 位置。
查看 GKE 威胁检测结果并执行操作
启用此功能后,最多可能需要 15 分钟才能开始看到结果。GKE 会在安全状况信息中心上显示结果,并自动将条目添加到集群日志中。
查看结果
如需大致了解项目的集群和工作负载中发现的问题,请执行以下操作:
进入 Google Cloud 控制台中的安全状况页面。
点击问题标签页。
在过滤条件问题窗格的问题类型部分中,选中威胁复选框。您还可以展开威胁部分,按 MITRE ATT&CK® 类型等子类别进行过滤。
如需查看个别威胁发现结果的详细信息,请点击该发现结果的说明。发现结果详细信息窗格随即会打开,并包含以下信息:
- 有关威胁的详细信息,例如严重级别和状态
- 缓解威胁的建议
- 已注册集群中受影响的资源的列表
在 Security Command Center 中查看结果
如果您使用 Security Command Center 的高级层级,则可以将 GKE 威胁检测结果作为 THREAT
发现结果查看。
在 Google Cloud 控制台中转到威胁页面。
查看日志以了解发现的问题
GKE 会针对每个发现的问题向 Logging 中的 _Default
日志存储桶添加条目。这些日志仅保留特定时间。有关详情,请参阅日志保留期限。
在 Google Cloud 控制台中,转到 Logs Explorer 页面。
前往 Logs Explorer在查询字段中,指定以下查询:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_THREAT"
点击运行查询。
如需在 GKE 向 Logging 添加新发现时收到通知,请为此查询设置基于日志的提醒。如需了解详情,请参阅配置基于日志的提醒。
停用 GKE 威胁检测
您可以在集群中停用 GKE 威胁检测。如需对项目停用 GKE 威胁检测,您必须手动移除在启用该功能时创建的各个 Security Command Center 组件。
在集群中停用 GKE 威胁检测
您可以使用 gcloud CLI 或 Google Cloud 控制台在集群中停用 GKE 威胁检测。
控制台
进入 Google Cloud 控制台中的安全状况页面。
点击设置标签。
在已启用安全状况的集群部分中,点击选择集群。
选中要为其停用 GKE 威胁检测的集群对应的复选框。
在选择操作下拉菜单中,执行以下操作之一:
- 推荐:如需停用 GKE 威胁检测,但要保留配置审核等其他功能,请选择设为基本。
- 如需停用所有 Kubernetes 安全状况扫描功能,请选择设为已停用。
点击应用。
gcloud
运行以下命令:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--security-posture=TIER
替换以下内容:
CLUSTER_NAME
:集群的名称。LOCATION
:集群的位置。TIER
:Kubernetes 安全状况层级。必须是以下项之一:standard
(推荐):停用 GKE 威胁检测,但保留其他 Kubernetes 安全状况扫描功能。disabled
:停用集群上的所有 Kubernetes 安全状况扫描功能,包括配置审核。