landerox/cloud-landerox-infra

GitHub: landerox/cloud-landerox-infra

基于Terraform的GCP基础设施安全基线模板,集成多环境CI/CD、纵深防御策略和即用型模块配方,帮助团队快速构建可复现的安全云基础设施。

Stars: 1 | Forks: 0

# cloud-landerox-infra [![Terraform](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3269f05763141155.svg)](https://github.com/landerox/cloud-landerox-infra/actions/workflows/terraform.yml) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0b1166c5f9141155.svg)](https://github.com/landerox/cloud-landerox-infra/actions/workflows/ci.yml) [![Drift Detection](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8be5254b6c141156.svg)](https://github.com/landerox/cloud-landerox-infra/actions/workflows/drift-detection.yml) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/landerox/cloud-landerox-infra/badge)](https://scorecard.dev/viewer/?uri=github.com/landerox/cloud-landerox-infra) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Terraform Version](https://img.shields.io/badge/terraform-v1.14.9-623ce4.svg?logo=terraform)](https://www.terraform.io/) ## 基础设施状态与环境 我们的基础设施围绕双环境模型进行设计,以平衡稳定性与实验性。 ### 环境 - **`prd` (生产环境):** 我们的主要环境,始终处于活跃状态。 - **`dev` (开发环境):** 按需启用的沙箱环境。在配置所需的 `GCP_DEV_*` 变量和密钥之前,它将保持休眠状态。对其设计感到好奇?请查看 [ADR-0006](docs/adr/0006-two-environment-foundation.md)。 ### 模块可用性 两个环境共享相同的基础配置。以下是可用模块及其默认状态的快速概览: | 模块 | 默认状态 | 备注 | | :--- | :--- | :--- | | **State Bucket** | Always On | 通过 Terraform 使用 `prevent_destroy` 进行安全管理,以保护您的状态。 | | **IAM** | Enabled | 核心身份和访问管理。 | | **Storage** | Enabled | 基础存储原语。 | | **BigQuery** | Disabled | 可供增量激活。 | | **Secrets** | Disabled | 可供增量激活。 | | **Scheduler** | Disabled | 可供增量激活。 | | **Cloud Run** | Disabled | 可供增量激活。 | | **Artifact Registry** | Disabled | 可供增量激活。 | | **Observability** | Disabled | Cloud Monitoring 警报、仪表板、通知渠道——详见 [ADR-0009](docs/adr/0009-declarative-observability.md)。 | ## 持续集成与交付 我们的 CI/CD 流水线通过 GitHub Actions 完全自动化,以确保代码质量并防止基础设施配置漂移: - **验证与检查 (`ci.yml`):** 在每次推送时运行格式化、代码检查 (TFLint, actionlint)、密钥扫描 (Checkov, gitleaks, detect-secrets)、文档检查,以及 **策略变更测试**(针对 `main_test.rego` 运行 `conftest verify`——断言拒绝规则在构造的错误输入上仍会触发)。 - **Terraform 操作 (`terraform.yml`):** 在 PR 和推送时自动为每个环境生成 Terraform plan 矩阵。包含模块 **冒烟 + 安全测试**(使用 `mock_provider` 的 `terraform test`)和 **Conftest 策略**(无原始角色、无公共 IAM、在 buckets 上强制执行 PAP、启用 UBLA)。每个 plan 都通过 GitHub OIDC + Sigstore (`actions/attest-build-provenance`) 进行签名;apply 任务在消耗构建产物之前会验证证明,从而消除 PR 审查与手动调度之间的 TOCTOU 窗口。应用该 plan 需要手动调度工作流以及环境审批。 - **漂移检测 (`drift-detection.yml`):** 每周运行(也可手动触发)并跨环境检测,以发现并警告任何在 Terraform 之外进行的手动更改。 - **OpenSSF Scorecard (`scorecard.yml`):** 每周运行,并在推送到 `main` 分支以及发生分支保护事件时触发。将结果发布到 scorecard.dev(上方的徽章)并将 SARIF 上传到 GitHub Security 标签页。 ## 浏览文档 无论您是刚刚入门还是寻求深入的架构见解,我们的文档都能满足您的需求: - **[入门指南](docs/development.md#getting-started):** 开启您旅程的最佳起点。 - **[教程 — 从零到在 `prd` 中创建第一个 Bucket](docs/tutorial-first-bucket.md):** 针对首次设置的引导式演练。在运行 `just bootstrap` 之前请先阅读一次。 - **[架构](docs/architecture.md):** 关于各部分如何协同工作的高层次概述。 - **[图表](docs/diagrams/):** 环境模型、CI/CD 流程以及 IAM/WIF 链的 Mermaid 图表。 - **[CI/CD](docs/cicd.md):** 有关我们自动化工作流的详细信息。 - **[治理](docs/governance.md):** 用于管理基础设施的策略和指南。 - **[实践方案](docs/recipes/):** 适用于每个模块的即用型 HCL 代码片段。只需复制、粘贴并根据需要调整! - **[架构决策记录](docs/adr/):** 深入了解我们那些非显而易见的工程决策背后的*原因*。 - **[Terraform 参考](terraform/README.md):** 自动生成的模块输入与输出。 - **[贡献者 / AI 代理指南](AGENTS.md):** 关于项目约定和 AI 代理规则的唯一事实来源。 ## 入门指南 ### 1. 引导您的环境 首先,请确保您安装了正确版本的 Terraform。我们建议使用 [mise](https://mise.jdx.dev) 来无缝管理您的工具链: ``` # 从 repository 根目录,根据 .mise.toml 安装所需工具 mise install # 验证你的 Terraform 版本是否与项目中 pinned 的版本相匹配 terraform version ``` 接下来,导航到 `terraform/` 目录以设置您的初始配置: ``` cd terraform cp terraform.tfvars.example terraform.tfvars ``` 打开 `terraform.tfvars` 并填写您特定的必填字段: - `project_id` - `state_bucket` - `repository_id` - `workload_identity_pool_id` - `workload_identity_pool_provider_id` 配置完成后,运行 bootstrap 脚本以配置您的基础资源: ``` just bootstrap ``` ### 2. 日常工作流 在日常开发中,`just` 让您能够轻松地与您的基础设施进行交互。在 `terraform/` 目录下,您可以运行: ``` just doctor # Verify your local tooling setup and pinned Terraform version just check # Full local gate: fmt + validate + lint + lint-shell + docs + tests + policy-test + pre-commit just precommit # Run the pre-commit hooks alone (mirror CI) just policy-test # Run the Conftest mutation tests for the Rego policies just plan # See what changes Terraform will apply ``` ## 许可证 本项目基于 [LICENSE](LICENSE) 文件中的条款进行许可。
标签:Conftest, DevSecOps, EC2, ECS, GCP, GitHub Actions, IaC, IAM, MIT协议, OPA, OpenSSF, Terraform, Workload Identity Federation, 上游代理, 云基础设施, 云架构, 多环境部署, 安全基线, 开源, 教学环境, 模块化设计, 状态管理, 策略即代码, 纵深防御, 聊天机器人安全, 自动化修复, 自动化运维, 自动笔记, 身份与访问管理, 配置漂移检测, 靶场