修复发现的 Security Health Analytics 问题

>

本页面提供了参考指南和技术,了解如何使用 Security Command Center 修复 Security Health Analytics 的发现结果。

Security Health Analytics 修复

BUCKET_LOGGING_DISABLED

为了帮助调查安全问题和监控存储空间使用情况,请为 Cloud Storage 存储分区启用访问日志和存储信息。访问日志提供向指定存储分区发出的所有请求的信息,而存储日志提供该存储分区的存储空间使用情况的信息。

要修复此发现结果,请按 访问日志和存储日志 指南为 Security Health Analytics 查找的存储分区设置日志记录。

CLUSTER_LOGGING_DISABLED

为帮助调查安全问题和监控使用情况,建议您在集群上 启用 Cloud Logging

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 在旧版 Stackdriver LoggingStackdriver Kubernetes Engine Monitoring 下拉列表中,选择 启用

    这些选项不兼容。确保您仅使用 Stackdriver Kubernetes Engine Monitoring,或将旧版 Stackdriver Logging旧版 Stackdriver Monitoring 结合使用。

  5. 点击保存

CLUSTER_MONITORING_DISABLED

为帮助调查安全问题和监控使用情况,建议您在集群上 启用 Cloud Monitoring

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 在旧版 Stackdriver LoggingStackdriver Kubernetes Engine Monitoring 下拉列表中,选择 启用

    这些选项不兼容。确保您仅使用 Stackdriver Kubernetes Engine Monitoring 或将旧版 Stackdriver Monitoring旧版 Stackdriver Logging 结合使用。

  5. 点击保存

KMS_ROLE_SEPARATION

贵组织中的一个或多个成员已分配有多项 KMS 权限。建议不要为任何帐号同时授予 Cloud KMS Admin 和其他 KMS 权限。

要修复此发现结果,请执行以下操作:

  1. 在 Cloud Console 中,转到 IAM 页面。
    转到 IAM 页面
  2. 在 Security Health Analytics 发现结果的成员旁边点击修改
  3. 如需移除权限,请点击 Cloud KMS Admin 旁边的 删除。如果您要移除该成员的所有权限,请点击所有其他权限旁边的删除
  4. 点击保存
  5. 对 Security Health Analytics 发现结果中的每个成员重复上述步骤。

LEGACY_AUTHORIZATION_ENABLED

在 Kubernetes 中,借助基于角色的访问权限控制 (RBAC),您可以使用包含一组权限的规则定义角色,并在集群和命名空间级别授予权限。这样可确保用户仅拥有特定资源的访问权限,从而提高了安全性。建议您停用旧版基于特性的访问权限控制 (ABAC)

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 旧版授权下拉列表中,选择已停用

  5. 点击保存

MASTER_AUTHORIZED_NETWORKS_DISABLED

主授权网络通过阻止指定的 IP 地址访问集群的控制平面来提高容器集群的安全性。

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 主要的已授权网络下拉菜单中,选择已启用

  5. 点击添加已获授权的网络

  6. 指定您要使用的授权网络。

  7. 点击保存

NETWORK_POLICY_DISABLED

默认情况下,pod 到 pod 的通信处于开放状态。开放的通信使 pod 能够直接跨节点连接,无论是否使用 NAT。NetworkPolicy 类似于一个 pod 层面的防火墙,会限制 pod 之间的连接,除非 NetworkPolicy 明确允许该连接。了解如何 定义网络政策

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 主节点的网络政策节点的网络政策下拉列表中,选择已启用

  5. 点击保存

NON_ORG_IAM_MEMBER

组织之外的用户拥有项目或组织的 IAM 权限。详细了解 IAM 权限

要修复此发现结果,请执行以下操作:

  1. 在 Cloud Console 中,转到 IAM 页面。
    转到 IAM 页面
  2. 选中组织外用户旁边的复选框。
  3. 点击移除

OBJECT_VERSIONING_DISABLED

为了支持检索已删除或覆盖的对象,Cloud Storage 提供了对象版本控制功能。启用对象版本控制可防止 Cloud Storage 的数据被覆盖或意外删除。了解如何 启用对象版本控制

要修复此发现结果,请使用 gsutil versioning set on 命令以及适当的值(如 gsutil versioning set on gs://finding.assetDisplayName

OPEN_FIREWALL

若防火墙规则允许来自所有 IP 地址(例如 0.0.0.0/0)的连接,可能会使资源不必要地暴露在非预期来源的攻击之下。应移除这些规则,或将范围明确限定在预期的来源 IP 地址范围。了解如何 删除防火墙规则

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的防火墙规则页面。
    转到“防火墙规则”页面
  2. 点击 Security Health Analytics 发现结果中列出的防火墙规则,然后点击修改
  3. 来源 IP 地址范围下,修改 IP 值以限制允许的 IP 范围。

OS_LOGIN_DISABLED

OS Login 通过 IAM 实现集中式 SSH 密钥管理,并对项目中的所有实例停用基于元数据的 SSH 密钥配置。了解如何设置和配置 OS Login

要修复此发现结果,请执行以下操作:

  1. 在 Cloud Console 中,转到元数据页面。
    转到“元数据”页面
  2. 点击修改,然后点击添加一项
  3. 添加一个键为 enable-oslogin 且值为 TRUE 的项。

POD_SECURITY_POLICY_DISABLED

PodSecurityPolicy 是一种准入控制器资源,用于验证在集群上创建和更新 Pods 的请求。PodSecurityPolicy 定义了 Pods 必须满足的一组条件才能被集群接受。

要修复此发现结果,请定义并授权 PodSecurityPolicies,然后启用 PodSecurityPolicy 控制器。如需查看相关说明,请参阅使用 PodSecurityPolicies 指南。

PRIVATE_CLUSTER_DISABLED

专用集群允许节点仅具有内部 IP 地址。这限制了节点出站互联网访问权限。如果集群节点没有公共 IP 地址,就不会在公共互联网上被检测到,也不会被公开。您仍可以使用内部负载平衡器将流量路由到这些节点。

您无法将现有集群设置为专用。要修复此发现结果,请创建新的专用集群:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 点击创建集群
  3. 点击可用性、网络、安全性及其他功能,然后选择启用 VPC 原生(使用别名 IP)专用集群的复选框。
  4. 点击创建

PUBLIC_BUCKET_ACL

Security Health Analytics 发现结果指示的存储分区是公开的,互联网上的任何人都可以访问它。

要修复此发现结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Storage 浏览器 页面。
    Storage 浏览器
  2. 选择 Security Health Analytics 发现结果中列出的存储分区。
  3. 存储分区详情页面上,点击权限标签。
  4. 角色下,点击删除以移除授予 allUsersallAuthenticatedUsers 的所有 IAM 权限。

SERVICE_ACCOUNT_ROLE_SEPARATION

贵组织中的一个或多个成员分配有多项服务帐号权限。建议不要为任何帐号同时授予 Service Account Admin 和其他服务帐号权限。

要修复此发现结果,请执行以下操作:

  1. 在 Cloud Console 中,转到 IAM 页面。
    转到 IAM 页面
  2. 在 Security Health Analytics 发现结果的成员旁边点击修改
  3. 如需移除权限,请点击 Service Account Admin 旁边的删除。如果您要移除所有服务帐号权限,请点击所有其他权限旁边的删除
  4. 点击保存
  5. 对 Security Health Analytics 发现结果中的每个成员重复上述步骤。

SQL_NO_ROOT_PASSWORD

Security Health Analytics 指示的 MySQL 数据库实例没有为根帐号设置密码。

要修复此发现结果,请向 MySQL 数据库实例添加密码:

  1. 转到 Cloud Console 中的 SQL 实例页面
    转到“SQL 实例”页面
  2. 选择 Security Health Analytics 发现结果中列出的实例。
  3. 在加载的实例详情页面上,选择用户标签页。
  4. root 用户旁边,点击更多,然后选择更改密码
  5. 输入新的安全系数高的密码,然后点击确定

SQL_WEAK_ROOT_PASSWORD

Security Health Analytics 发现的 MySQL 数据库实例已为根帐号设置一个安全系数低的密码。

要修复此发现结果,请为 MySQL 数据库实例设置安全系数高的密码:

  1. 在 Cloud Console 中,转到“SQL 实例”页面
    转到“SQL 实例”页面
  2. 选择 Security Health Analytics 发现结果中列出的实例。
  3. 在加载的实例详情页面上,选择用户标签页。
  4. root 用户旁边,点击更多,然后选择更改密码
  5. 输入新的安全系数高的密码,然后点击确定

SSL_NOT_ENFORCED

为避免在未加密通信中泄露所传输的敏感数据,连至您的 SQL 数据库实例的所有传入连接都应使用 SSL。详细了解如何 配置 SSL/TLS

要修复此发现结果,请仅允许 SSL 连接您的 SQL 实例:

  1. 转到 Cloud Console 中的 SQL 实例页面
    转到“SQL 实例”页面
  2. 选择 Security Health Analytics 发现结果中列出的实例。
  3. 连接标签页上,点击只允许 SSL 连接

WEB_UI_ENABLED

高度特权的 Kubernetes 服务帐号支持 Kubernetes 网页界面。如果泄露,则该服务帐号可能会被滥用。如果您已经在使用 Cloud Console,则 Kubernetes 网页界面会不必要地扩展您的攻击面。了解如何停用 Kubernetes 网页界面

要修复此发现结果,请停用 Kubernetes 网页界面:

  1. 转到 Cloud Console 中的 Kubernetes 集群页面。
    转到“Kubernetes 集群”页面
  2. 选择 Security Health Analytics 发现结果中列出的集群。
  3. 点击修改

    如果最近更改了集群配置,则修改按钮可能会被停用。如果您无法修改集群设置,请等待几分钟,然后重试。

  4. 点击插件。此部分将展开,显示可用的插件。

  5. Kubernetes 信息中心下拉列表中,请选择停用

  6. 点击保存

WORKLOAD_IDENTITY_DISABLED

由于 Workload Identity 具有增强的安全属性和可管理性,因此它是在 GKE 中访问 Google Cloud 服务的推荐方法。启用 Workload Identity 可保护一些潜在的敏感系统元数据,确保集群上运行的用户工作负载无法对其进行不当访问。了解元数据隐藏

要修复此发现结果,请按照在现有集群上启用 Workload Identity 指南操作。