GoogleCloudPlatform/gcp-hardening-toolkit

GitHub: GoogleCloudPlatform/gcp-hardening-toolkit

GCP Hardening Toolkit 是一套面向棕地环境的自动化安全加固引擎,解决已有基础设施的安全债务与合规加速问题。

Stars: 28 | Forks: 7

# GCP Hardening Toolkit (GHT) ![Terraform](https://img.shields.io/badge/Terraform-%3E%3D1.3-935ADA) ![Python](https://img.shields.io/badge/Python-3.x-3776AB) ![Bash](https://img.shields.io/badge/Bash-Shell-4EAA25) ![License](https://img.shields.io/badge/License-Apache%202.0-blue) ![Release](https://img.shields.io/badge/Release-Rolling-4B5563) GCP Hardening Toolkit (GHT) 是一个自动化分类和修复引擎,旨在安全地管理复杂、活跃(棕地)Google Cloud 环境中的安全债务。 虽然标准的基础工具包提供了从零开始构建的蓝图,但 GHT 是为现有基础设施的现实而设计的。它将有状态的基础设施即代码(IaC)与主动分类自动化相结合,使安全团队能够快速审计环境、识别漏洞并部署增量合规护栏,而不会中断活跃的 DevOps 流水线。 ## 仓库结构 该仓库采用 **Library + Blueprints** 架构,解耦以实现灵活组合。 ``` gcp-hardening-toolkit/ ├── agent/ # agentic solution for automated hardening │ ├── custom-role-creation/ # custom IAM role definitions (least privilege) │ └── state-exporter/ │ └── ... ├── blueprints/ # deployable solutions (stateful) │ ├── gcp-foundation-org-iam/ │ └── ... ├── modules/ # reusable components (stateless) │ ├── gcp-iam-groups/ │ └── gcp-custom-constraints/ # org policy constraints └── docs/ # detailed documentation ``` ### 设计原则 - **关注点分离** - **模块(Modules)**:封装逻辑和资源(实现)。 - **蓝图(Blueprints)**:处理编排和状态(组合)。 - **适应性** - **参考架构**:蓝图可直接用于生产,但具有可塑性。 - **可定制性**:鼓励用户修改蓝图以适应其特定需求。 - **直接性** - **最小封装**:模块通常是 Terraform 资源的薄层。 - **价值增量**:仅在提供明确价值时添加抽象(例如强制策略约束)。 ## 功能(支柱) 该工具包围绕五个核心支柱组织: 1. **基础(`gcp-foundation`)**: 快速部署核心控制(IAM 工程标准、组织策略、安全合规性启用),以促进安全研究和测试。 2. **合规(`gcp-compliance`)**: 通过在一次运行中部署全面的安全措施,实现极速、无摩擦的合规性(例如 HIPAA)。 3. **约束(`gcp-constraint`)**: 通过强制实施高级加固约束(例如阻止服务账户创建),保护环境免受横向移动威胁。 4. **检测(`gcp-detection`)**: 通过自定义威胁检测管道和高级日志路由扩展原生可观测性,实现即时异常识别。 5. **分类(`gcp-triage`)**: 自动化安全警报的调查和决策,减少告警疲劳。 ## GHT 与云基础工具包(CFT)的区别 我们经常收到这个问题,因此让我们将 GCP Hardening Toolkit (GHT) 与 Cloud Foundation Toolkit (CFT) 的区别说得 **一清二楚**。 虽然 GHT 包含几个基础示例,但这些示例旨在保持精简并利用 CFT 来部署标准基础设施。GHT 是一个开源工具,具有完全不同的愿景和用途。 ### 核心区别:棕地环境与绿地环境 * **CFT** 是 **绿地(greenfield)** 部署的黄金标准。它提供了从零开始构建的优秀蓝图。 * **GHT** 专为 **棕地(brownfield)** 环境而设计。它适用于已经部署、杂乱且有大量安全改进空间的基础设施。GHT 不仅仅进行评估,还会主动进行修复。 ### GHT 解决的问题 当团队进行云安全态势审查(CSPR)时,他们能清楚了解自身的安全态势。但知道存在的问题并不意味着知道如何在不破坏生产环境的情况下解决它们。 通常,安全团队必须手动审查环境、与利益相关者协商,并在不影响 DevOps 的情况下实施限制性策略。这会导致巨大的操作摩擦。 ### GHT 的优势:分类与有状态修复 GHT 是处理安全债务并加速合规路径的引擎。 * **针对性护栏与广泛强制**:CFT 提供用于广泛强制组织策略的模块。GHT 提供分类工具,用于在运行中的环境中逐步应用这些护栏。 * **有状态 IaC 与分类自动化**:与假设从零开始的标准基础工具不同,GHT 使用有状态 IaC 结合专门的分类脚本。这允许在不破坏现有配置的情况下部署安全。 * **自动化执行**:在棕地环境中部署基础工具通常是一个手动、繁琐的过程。GHT 通过获取当前状态、现有基础设施 **和标准 CFT 模块** 作为其接地输入,自动完成这一过程以桥接到加固状态。 对于绿地环境,GHT 的用途主要限于创建合规护栏——这是至关重要的第二层安全。但对于棕地环境,GHT 的自动化分类和非破坏性修复是其定义实用性的核心功能。 ### 总结对比 | 功能 | 云基础工具包 (CFT) | GCP Hardening Toolkit (GHT) | | :--- | :--- | :--- | | **主要用例** | **绿地:** 从零开始构建新基础设施。 | **棕地:** 分类和加固现有环境。 | | **核心资产** | 静态 Terraform 蓝图与模块。 | 有状态 IaC、分类脚本与可部署护栏。 | | **环境状态** | 假设“干净”标准状态。 | 基于 **当前状态**(尊重现有技术债务)。 | | **护栏策略** | 广泛、自上而下的基准强制。 | 基于分类的增量、针对性强制。 | | **合规重点** | 策略监控与审计(例如 Scorecard)。 | 主动修复与债务减少。 | | **DevOps 摩擦** | 若强制应用于杂乱的基础设施则较高。 | 较低,旨在不中断操作的情况下修复问题。 | ### 何时查看 CFT 如果符合以下情况,您应该查看 [云基础工具包](https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit): * 您正在启动一个新的 Google Cloud 组织。 * 您需要通用的基础蓝图(VPC、项目、文件夹)。 * 您希望根据基准策略审核当前状态。 ### 何时使用 GHT 如果符合以下情况,请使用此开源工具包: * 您正在进行 CSPR 并需要主动修复现有环境。 * 您需要通过管理安全债务来加速任何框架的合规路径。 * 您希望搜索低垂的安全果实并实施增量护栏,而不会中断当前操作。 ## 加固代理 GCP 加固代理是一个专门的安全助手,旨在对 Google Cloud 环境进行分类并生成加固蓝图。它作为一个交互式 CLI 代理运行,自动化现有基础设施的审计以识别漏洞并部署增量合规护栏——所有决策均基于环境的实时状态。 ### 安装 要将加固代理作为 Gemini CLI 扩展安装,请运行: ``` gemini extensions install https://github.com/GoogleCloudPlatform/gcp-hardening-toolkit ``` 有关代理的架构、设置和核心能力的更多信息,请参阅 [加固代理 README](agent/README.md)。 ## 用法 ### 工作流程 1. **选择蓝图**:从 `blueprints/` 中选择与目标匹配的解决方案。 2. **自定义**:蓝图自带 `examples` 或默认 `variables`。 3. **部署**:进行身份验证并在蓝图目录中运行 Terraform。 ``` cd blueprints/gcp-foundation-org-iam terraform init terraform apply ``` ### 辅助脚本 - **Bash 脚本**:用于一次性设置任务(例如启用 SCC 服务、检查 VPC-SC 违规)。 - **Python 脚本**:在 Cloud Functions 中用于高级逻辑(例如自动化项目创建强制)。 ## 发布周期与版本管理 我们采用 **滚动发布** 模型(无语义版本控制)。每次对 `main` 的提交都是稳定的。 ### 哈希固定(供应链安全) 我们强烈建议在生产环境中将模块固定到特定提交哈希。这可以防止意外更新并抵御潜在的供应链破坏。 ``` module "gcp_hardening" { source = "github.com/GoogleCloudPlatform/gcp-hardening-toolkit//modules/gcp-org-policies?ref=" } ``` ## 贡献 欢迎贡献!请参考我们的 [贡献指南](docs/contributing.md) 获取详细信息。 ## 反馈 您的反馈有助于我们优先改进功能并优化工具包。请通过我们的简短调查分享您的体验。 [参与 1 分钟调查](https://forms.gle/LmgxXbJBoqu91dyA9)
标签:DevOps安全, EC2, ECS, GCP安全, Google Cloud安全, IaC, Python, Terraform, 云安全加固, 可复用组件, 合规, 安全任务组, 安全债务管理, 应用安全, 快速响应, 持续合规, 无后门, 最小权限, 棕地环境, 模块化, 漏洞修复, 状态感知, 组织策略约束, 网络安全培训, 网络调试, 自动化, 自定义IAM角色, 蓝图为生产, 逆向工具, 速率限制