本页面介绍了如何自动审核集群以发现合规性问题,并获取切实可行的建议,以提高 Google Kubernetes Engine (GKE) Enterprise 版本集群的合规性。合规性审核是 GKE Compliance 信息中心的一项功能。如需了解详情,请参阅 GKE“合规性”信息中心简介。
支持的合规性标准
合规性审核会根据以下标准扫描集群以检查是否合规,并提供建议来改善合规状况:
名称 |
说明 |
CIS Google Kubernetes Engine 基准 v1.5.0 |
一组用于配置 Google Kubernetes Engine (GKE) 的建议安全控制措施,基于 CIS Google Kubernetes Engine (GKE) 基准 v1.5.0。 |
Pod 安全标准基准 |
一组适用于 Kubernetes 集群的建议保护措施,基于 Kubernetes Pod 安全标准 (PSS) 基准政策。 |
Pod 安全标准受限 |
一组适用于 Kubernetes 集群的建议保护措施,基于 Kubernetes Pod 安全标准 (PSS) 受限政策。 |
默认的标准集包含所有三种支持的标准:
- CIS Google Kubernetes Engine 基准 v1.5.0
- Pod 安全标准基准
- Pod 安全标准受限
价格
启用了 GKE Enterprise 的用户可使用 GKE Compliance 信息中心。
准备工作
在开始之前,请确保您已执行以下任务:
启用 Container Security API
要求
如需获得使用合规性审核所需的权限,请让您的管理员为您授予 Google Cloud 项目的以下 IAM 角色:
-
Container Security Viewer (
roles/containersecurity.viewer
) -
Fleet Viewer(以前称为 GKE Hub Viewer)(
roles/gkehub.viewer
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供使用合规性审核所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
使用合规性审核需要以下权限:
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
-
container.clusters.list
-
gkehub.features.get
-
gkehub.memberships.list
审核集群合规性
您可以使用 Google Cloud 控制台在集群上启用合规性审核。
在现有集群上启用合规性审核
进入 Google Cloud 控制台中的合规性页面。
在设置卡片中,点击选择集群。
在审核已停用标签页中,选中要添加的集群对应的复选框。
点击启用以在这些集群上启用审核。
测试合规性审核
部署一个有意违反 Pod 安全标准的示例 Pod。
将以下清单保存为
noncompliant-sample.yaml
:apiVersion: v1 kind: Pod metadata: namespace: default name: wp-non-compliant labels: app: wordpress spec: containers: - image: nginx name: wordpress securityContext: capabilities: add: - NET_RAW
将资源应用于您的集群:
kubectl apply -f noncompliant-sample.yaml
如果您要尝试其他违规行为,请使用其他不合规的配置修改 noncompliant-sample.yaml
。
查看和解决合规性问题
初始审核最多需要 30 分钟才能返回结果。您可以在合规性页面上查看结果,也可以采用集群日志中的条目形式来查看。
查看结果
如需大致了解项目集群中的合规性问题,请执行以下操作:
进入 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_MISCONFIG" jsonPayload.configuration.violation:*
点击运行查询。
如需在 GKE 向 Logging 添加新发现时收到通知,请为此查询设置基于日志的提醒。如需了解详情,请参阅配置基于日志的提醒。
清理
删除您部署的示例 Pod:
kubectl delete pod wp-non-compliant
停用合规性审核
您可以使用 Google Cloud 控制台停用合规性审核。
进入 Google Cloud 控制台中的合规性页面。
在“设置”卡片中,点击选择集群。
在审核已启用标签页中,选中要移除的集群对应的复选框。
点击停用以在这些集群上停用审核。
限制
- 不支持 Windows Server 节点池。
- 合规性审核不会扫描 GKE 管理的工作负载,例如 kube-system 命名空间中的工作负载。
- 合规性审核仅适用于节点少于 1,000 个的集群。