---
title: "GCP 安全强化清单 | Snow Tree"
url: "https://www.snow-tree.com/zh-Hans/gcp-security-hardening/"
---

安全的 GCP 基础设施

# 面向中小型团队的 GCP 安全强化清单

为没有专职安全部门、在 Google Cloud 上运行生产工作负载的团队提供的实用基准。先从最可能导致严重事件、同时又最容易降低风险的路径入手。

## 本页内容

1. [常见的 GCP 威胁路径](https://www.snow-tree.com/zh-Hans/#threat-paths)
2. [身份和访问权限](https://www.snow-tree.com/zh-Hans/#identity)
3. [网络和边缘](https://www.snow-tree.com/zh-Hans/#network)
4. [数据和密钥](https://www.snow-tree.com/zh-Hans/#data)
5. [GKE 安全强化](https://www.snow-tree.com/zh-Hans/#gke)
6. [检测与恢复](https://www.snow-tree.com/zh-Hans/#detection)
7. [按优先级排列的 30 天、60 天和 90 天清单](https://www.snow-tree.com/zh-Hans/#checklist)
8. [官方参考资料](https://www.snow-tree.com/zh-Hans/#references)

## 常见的 GCP 威胁路径

大多数云安全事件都始于责任归属或配置上的小疏漏。请抢在攻击者之前排查这些路径。

- 权限过大的用户、服务账号或工作负载身份，可能让一个被盗的凭据变成跨多个项目的广泛访问权限。
- 暴露的管理端点、调试端口或过于宽松的防火墙规则，可能绕过为正常应用流量设计的所有控制措施。
- 公开的存储桶或范围过宽的签名网址，可能在应用没有明显被入侵迹象的情况下泄露客户数据。
- 当旧映像、被遗忘的命名空间、未使用的服务账号和无人负责的资源仍可部署时，陈旧的工作负载会带来长期风险。
- 审核证据缺失或保留时间过短，会让人难以确定谁更改了策略、访问何时开始以及哪些数据被访问。
- 未经测试的备份只是一种希望。恢复失败、保留不完整以及无法访问的加密密钥，都可能让一次安全事件变成永久性损失。

## 身份和访问权限

将身份视为主要的控制平面。每个人员、自动化流程和工作负载都应拥有各自独立、用途有限的身份。

### 明确资源边界

使用组织和文件夹设置护栏，并将开发、预发布和生产环境分离到不同项目或更强的信任边界中。在切实可行的最高层级应用组织政策，限制服务使用，并避免在不相关的产品之间共享生产项目。

### 在最小范围内授予最低限度的角色

优先使用预定义角色或自定义角色，而不是宽泛的基本角色；将角色授予群组和工作负载身份，并在可以通过资源名称或标记缩小访问范围时使用 IAM 条件。审查未使用的权限，并移除仅应通过紧急访问（break-glass）流程获得的常设生产访问权限。

### 移除长期有效的凭据

使用 Workload Identity Federation for GKE，让 Pod 无需导出服务账号密钥即可获得短期有效的凭据。尽可能通过组织政策禁止创建和上传密钥，清点所有剩余密钥，并针对 Cloud Audit Logs 中的高风险 IAM 更改发出告警。

## 网络和边缘

假设某个应用缺陷终将可以从网络访问到，并限制该缺陷能够访问的范围。

### 默认拒绝，仅添加明确指定的路径

使用遵循最小权限原则的 VPC 防火墙规则，并对 Pod 流量使用 Kubernetes NetworkPolicies。将各环境划分到不同的网络中，记录每条入站路径，并删除允许大范围地址访问管理端口或所有协议的宽泛调试规则。

### 将节点和控制平面保持为私有

停用 GKE 节点上的外部 IP 地址。优先使用基于 DNS 的私有控制平面端点；当无法避免使用 IP 端点时，通过授权网络加以限制。为工作负载提供经过规划的出站路径，而不是宽泛的互联网访问。

### 仅发布经过规划的公共服务

通过经过审查的网关或负载均衡器公开应用，而不是通过附带暴露的 Pod 或节点地址。使用托管证书终止 TLS，限制入站主机和路径，应用请求限制和速率限制，并将管理界面置于身份感知访问控制之后。

## 数据和密钥

保护静态、传输中和使用中的数据，然后证明您能够恢复这些数据。数据发现也是控制措施的一部分。

### 防止意外公开访问

在 Cloud Storage 上强制执行禁止公开访问和统一存储桶级访问权限。按敏感程度对存储桶分类，限制对对象和密钥的访问，为高价值数据启用日志记录，并在风险或合规模型有要求时使用客户管理的加密密钥。

### 不要将密钥放入映像和源代码

将凭据存储在 Secret Manager 中，并仅向特定的工作负载身份授予特定密钥版本的访问权限。有计划地轮换密钥，避免将其复制到 Git 或容器映像中，也不要把普通的 Kubernetes Secrets 视为完整的保护边界。

### 测试恢复，而不仅仅是创建备份

定义恢复点目标（RPO）和恢复时间目标（RTO），在生产故障域之外保留副本，并防止工作负载身份访问备份和加密密钥。按计划恢复到隔离环境中，验证数据，并记录所用时间和所有手动步骤。

## GKE 安全强化

GKE 负责保护托管的控制平面，但集群配置、命名空间、准入策略和工作负载仍需由您自行管理。

### 以命名空间作为隔离约定

将团队和环境划分到不同的命名空间或集群中，在其中绑定范围精确的 Kubernetes RBAC 角色，并应用资源配额和 NetworkPolicies。避免为应用交付授予集群范围的写入权限；当工作负载需要独立身份时，为每个工作负载分配专属服务账号。

### 仅准入您信任的映像和配置

强制执行 Restricted 级别的 Pod Security 标准或等效的 Policy Controller 规则。按不可变摘要部署映像，扫描漏洞，在需要确认来源时使用 Binary Authorization，并拒绝意外的主机访问、权限提升和 cluster-admin 绑定。

### 移除不必要的容器权限

以非 root 用户身份运行，丢弃 Linux capabilities，尽可能使用只读根文件系统，并应用 RuntimeDefault seccomp 配置文件。如无必要，不要挂载服务账号令牌；避免使用特权容器和主机命名空间，将节点服务账号的权限保持在最低限度，并使用 Shielded Nodes 和 Container-Optimized OS。

## 检测与恢复

控制措施总会失效。要依靠证据和经过演练的行动，而不是相信没有人犯错。

### 收集您需要的证据

将 Cloud Audit Logs 以及 GKE 系统日志和工作负载日志集中存储到一个目标位置，并设置符合调查需求的保留期限。为敏感数据有选择地启用数据访问审核日志，限制日志访问权限，并记录对 IAM、防火墙、存储和集群配置的管理更改。

### 针对具有安全意义的更改发出告警

针对存储公开暴露、宽泛的防火墙或 IAM 更改、意外的服务账号密钥、准入拒绝、控制平面暴露、反复的身份验证失败、日志记录被停用、备份失败以及即将过期的证书发出告警。将每条告警转给相应负责人，并附上确认或排除该告警的步骤。

### 演练响应

针对凭据泄露、数据公开、工作负载被入侵以及区域或项目丢失编写简短的运行手册，内容应包括谁有权批准遏制措施、如何撤销访问权限、如何保全证据以及如何恢复服务。与将要使用这些运行手册的人员一起测试它们。

## 按优先级排列的 30 天、60 天和 90 天清单

如果您的基准尚不完善，请合理安排工作顺序：先减少暴露面，再让后续审查可以重复进行。

### 第 1 至 30 天：封堵明显的路径

清点项目及其负责人，移除未使用和长期有效的凭据，确认审核日志记录已启用，阻止公开存储桶，审查权限最宽泛的防火墙规则和 IAM 授权，找出生产备份的缺口，并修复所有无人负责的公共端点。为每项发现指定负责人和截止日期。

### 第 31 至 60 天：让基准可重复

将网络、身份和工作负载配置迁移到经过审查的基础设施即代码和 GitOps 交付中。采用 Workload Identity、私有节点、受限的 Pod Security、可信映像检查、集中式日志，以及针对最重要更改的告警。

### 第 61 至 90 天：验证并持续保持

执行恢复测试和事件桌面演练，审查特权访问和例外的到期情况，重新扫描映像和依赖项，验证负责人能否收到告警，并衡量仍存在的缺口。在证据过时之前，将这些检查纳入定期审查周期。

请将本清单作为起点。Snow Tree 可以通过托管平台运营或专项咨询服务来落实这一基准。

[托管平台](https://www.snow-tree.com/zh-Hans/managed-platform/) [咨询服务](https://www.snow-tree.com/zh-Hans/consulting/)

## 官方参考资料

当平台默认设置或产品功能发生变化时，请以 Google 最新的指南作为技术上的权威依据。

- [Google Cloud：强化 GKE 集群的最佳实践](https://docs.cloud.google.com/kubernetes-engine/docs/how-to/hardening-your-cluster)
- [Google Cloud：GKE 安全最佳实践](https://docs.cloud.google.com/docs/security/gke-security-bps)

托管平台

## 让 Snow Tree 为您构建、托管和运营软件。

[启动项目](mailto:support+snow-tree-platform-1-issue-@gitlab.snow-tree.com?subject=Snow%20Tree%20project)
