AbdelazezMohamedAzez/multi-cloud-iac-security-scanning

GitHub: AbdelazezMohamedAzez/multi-cloud-iac-security-scanning

基于 Checkov 和 GitHub Actions 的多云 Terraform IaC 安全扫描项目,在部署前自动检测 AWS 和 GCP 的不安全云配置。

Stars: 0 | Forks: 0

# 多云 IaC 安全扫描 这是一个动手实践的 DevSecOps 项目,旨在使用 Checkov 和 GitHub Actions 扫描 AWS 和 GCP 的 Terraform 基础设施代码。 ## 项目目标 本仓库演示了如何在部署前对基础设施即代码进行扫描,以便在 CI/CD 生命周期的早期检测不安全的云配置。 本项目侧重于: - AWS Terraform 安全扫描 - GCP Terraform 安全扫描 - 基于 Checkov 的 IaC 安全门禁 - GitHub Actions 自动化 - 多云安全报告 - 发现与修复文档 ## 本项目包含的内容 - AWS Terraform 基线 - GCP Terraform 基线 - Checkov IaC 扫描 - GitHub Actions CI 工作流 - Terraform 格式验证 - 多云安全报告 - 安全文档 - 对 Checkov 扫描发现的问题和例外的详细记录 ## 技术栈 | 领域 | 工具 | |---|---| | 基础设施即代码 | Terraform | | AWS IaC | AWS Provider | | GCP IaC | Google Provider | | IaC 安全 | Checkov | | CI/CD | GitHub Actions | | 文档 | Markdown | ## 仓库结构 ``` infra/ ├── aws/ │ ├── versions.tf │ ├── variables.tf │ ├── main.tf │ └── outputs.tf │ └── gcp/ ├── versions.tf ├── variables.tf ├── main.tf └── outputs.tf docs/ └── week-8-iac-security.md .github/ └── workflows/ └── iac-security.yml ``` ## 安全范围 本项目暂不部署真实的云资源。 当前的工作流不需要 AWS 或 GCP 凭证。 目标是在部署前对 Terraform 代码进行静态扫描,并在合并前拦截高风险的基础设施即代码变更。 ## AWS 安全基线 AWS Terraform 示例包含: - S3 存储桶公共访问拦截 - S3 版本控制 - S3 KMS 加密 - S3 访问日志记录 - S3 生命周期配置 - S3 事件通知 - S3 跨区域复制 - 副本 S3 存储桶 - 存储桶所有权控制 - KMS 密钥轮换 - KMS 密钥策略定义 - 通用资源标签 ## GCP 安全基线 GCP Terraform 示例包含: - GCS 统一存储桶级访问 - GCS 公共访问预防 - GCS 版本控制 - GCS KMS 加密 - GCS 访问日志记录 - 专用审计日志存储桶 - 使用 Terraform 生命周期规则实现 KMS 密钥删除保护 - 专用服务账号占位符 - Artifact Registry 仓库占位符 - Artifact Registry 客户管理的加密密钥 - 通用资源标签 ## CI/CD 流水线 GitHub Actions 工作流执行以下操作: 1. Terraform 格式检查 2. 针对 AWS Terraform 的 Checkov 扫描 3. 针对 GCP Terraform 的 Checkov 扫描 4. Checkov 报告上传 5. Checkov 安全门禁执行 当 Checkov 检测到未解决的 IaC 安全问题时,流水线将运行失败。 ## 报告 生成的报告将作为 GitHub Actions artifacts 上传: ``` checkov-AWS-report checkov-GCP-report ``` 这些报告为以下方面提供证据: - IaC 安全审查 - 云配置错误分类 - 作品集文档 - 面试演示 - 安全门禁验证 ## Checkov 扫描结果 当前工作流状态: ``` Terraform Format Check: Passed Checkov AWS Scan: Passed Checkov GCP Scan: Passed ``` 该项目已根据实际的 Checkov 扫描结果进行了更新,包括: - AWS S3 跨区域复制 - AWS S3 事件通知 - AWS S3 生命周期配置 - AWS KMS 密钥策略定义 - GCP KMS 删除保护 - GCP 存储桶访问日志记录 - 使用客户管理密钥的 GCP Artifact Registry 加密 针对最终的 GCP 审计日志接收器存储桶,存在一个已记录的例外情况,以避免出现递归日志记录链。 ## 文档 第 8 周的 IaC 安全报告可在此处获取: ``` docs/week-8-iac-security.md ``` ## 当前状态 - 已添加 AWS Terraform 基线 - 已添加 GCP Terraform 基线 - 已添加 Checkov 工作流 - 已添加 Terraform 格式检查 - 已添加 IaC 安全报告 - Checkov AWS 扫描通过 - Checkov GCP 扫描通过 - 报告已作为 GitHub Actions artifacts 上传 - 无需云凭证 ## 相关项目 本仓库是更广泛的 DevSecOps 作品集的一部分。 主应用安全流水线: - [安全 DevSecOps 启动模板](https://github.com/AbdelazezMohamedAzez/secure-devsecops-starter) ## 后续改进 - 添加 Terraform modules - 添加 Terraform plan 扫描 - 添加自定义 Checkov 策略 - 添加 OPA/Conftest 策略即代码示例 - 将此项目连接到安全的云部署工作流
标签:DevSecOps, ECS, IaC安全扫描, Terraform, 上游代理, 漏洞利用检测, 错误基检测, 防御加固, 静态代码分析