用途:为 GKE 工作负载提供安全审计与加固的工作流和最佳实践,覆盖安全审计、身份与访问管理(Workload Identity)、网络安全(网络策略)和节点安全。
主要能力与用法:
- 安全审计:使用脚本 ./scripts/audit_cluster.sh <cluster-name> <region> <project-id> 检查 Workload Identity、网络策略、Shielded Nodes、Binary Authorization 和私有集群配置。
- 配置 Workload Identity:创建命名空间与 KSA,用 gcloud iam service-accounts add-iam-policy-binding 绑定 KSA 与 GSA(角色 roles/iam.workloadIdentityUser),再用 kubectl annotate 添加 iam.gke.io/gcp-service-account 注解,并用 assets/workload-identity-pod.yaml 验证。
- 网络策略:用 gcloud container clusters update 启用 NetworkPolicy 附加组件;若使用 Dataplane V2 则内置,无需此步。可应用 assets/default-deny-netpol.yaml 实现默认拒绝。
- 启用 Shielded Nodes:gcloud container clusters update --enable-shielded-nodes。
- GKE Sandbox(gVisor):--enable-gke-sandbox,并在 Pod 中设置 runtimeClassName: gvisor。
- Pod 安全标准:用 kubectl label 为命名空间设置 pod-security.kubernetes.io/enforce=restricted。
- Secret Manager CSI 驱动:通过 SecretProviderClass 将 Secret Manager 密钥挂载为卷。
- 网络策略日志:使用 NetworkLogging 自定义资源记录允许和拒绝的连接。
最佳实践:最小权限使用 Workload Identity,避免节点默认服务账号;用网络策略限制 Pod 间通信并启用日志;用 Binary Authorization 确保可信镜像;用 Secret Manager CSI 驱动管理敏感数据;对非系统命名空间执行 baseline 或 restricted Pod 安全标准;可考虑 Policy Controller(Gatekeeper)执行自定义策略。
限制:部分步骤依赖集群配置(如 Dataplane V2 下网络策略启用步骤可能失败);Secret Manager CSI 驱动需预先启用;资料未提供收费、价格或平台支持范围等信息。