matteo-slaviero/azure-devops-terraform-checkov-trivy

GitHub: matteo-slaviero/azure-devops-terraform-checkov-trivy

一个面向 Azure DevOps 的可复用 Terraform 流水线模板,内置 Checkov IaC 安全检查与 Trivy 漏洞扫描,帮助团队在基础设施部署过程中实现自动化安全门禁与合规治理。

Stars: 0 | Forks: 0

# Azure DevOps Terraform 安全流水线 使用 **Terraform · Checkov · Trivy · Azure DevOps** 构建的企业级 DevSecOps 流水线,用于 Terraform 基础设施即代码的验证、安全扫描和漏洞评估。 ![Azure DevOps](https://img.shields.io/badge/Azure_DevOps-0078D7?style=flat-square&logo=azuredevops&logoColor=white) ![Terraform](https://img.shields.io/badge/Terraform-623CE4?style=flat-square&logo=terraform&logoColor=white) ![IaC](https://img.shields.io/badge/Infrastructure-As_Code-0052CC?style=flat-square) ![Checkov](https://img.shields.io/badge/Checkov-IaC_Security-success?style=flat-square) ![Trivy](https://img.shields.io/badge/Trivy-Vulnerability_Scanning-blueviolet?style=flat-square) ![DevSecOps](https://img.shields.io/badge/DevSecOps-Enabled-critical?style=flat-square) ## 概述 本仓库提供了一个**可重用的 Azure DevOps 流水线模板**,用于在 Azure 上部署基于 Terraform 的基础设施,并**内置了安全与治理机制**。 它集成了 **Terraform**、**Checkov** 和 **Trivy**,以强制执行**策略即代码**控制,并在整个部署生命周期中执行**持续安全扫描**。 ## 目标 - 基础设施即代码自动化 - 持续安全验证 - 漏洞扫描 - 策略即代码实施 - 企业级 CI/CD 流水线设计 - 云治理对齐 ## 主要特性 **安全优先的方法**\ 内置的安全与合规检查无缝集成到 CI/CD 工作流中,实现了 **DevSecOps** 实践并强化了**安全左移**。 **基于计划的验证**\ 通过分析 Terraform 执行计划 (*tfplan*) 来验证实际的基础设施变更,而不是仅仅依赖源代码的静态分析。 **多环境配置**\ 单一且可重用的模板确保了部署一致性,并减少了在 dev、test 和 prod 环境之间的配置漂移。 **自动化质量门禁**\ 集成的*停止并修复*机制会在不符合安全或合规标准时自动暂停流水线,从而防止高风险的部署。 ## 配置与使用 ### Terraform 后端 (`provider.tf`) 通过定义用于管理 Terraform 状态的 Azure 存储账户引用来配置 Terraform 后端: ``` backend "azurerm" { resource_group_name = "" storage_account_name = "" container_name = "" } ``` ### Azure DevOps 环境 在 Azure DevOps 中,为每个目标环境(dev、test 和 prod)创建一个 *Azure DevOps 环境*。可选择为每个环境配置适当的*审批与检查*。 ### Azure DevOps 服务连接 在 Azure DevOps 中,使用*工作负载身份联合*创建一个 *Azure Resource Manager 服务连接*。然后,授予生成的服务主体对用于 Terraform 状态管理的 Azure 存储账户的 *Storage Blob Data Contributor* 角色。 更新每个特定于环境的流水线 YAML 文件(`dev-pipeline.yml`、`test-pipeline.yml` 和 `prod-pipeline.yml`),以引用所创建的 Azure 服务连接: ``` azureServiceConnection: "" ``` ### Azure 流水线 在 Azure DevOps 中,使用提供的 `dev-pipeline.yml`、`test-pipeline.yml` 和 `prod-pipeline.yml` 文件为每个目标环境创建一个 *Azure DevOps 流水线*。 ## Checkov 与 Trivy 自定义 可以通过使用以下内容对 Checkov 和 Trivy 进行自定义,以调整安全与治理控制: - 自定义策略 - 规则排除 这种灵活性使得其能够与组织的安全标准和合规要求保持一致。 有关实现的详细信息,请参阅 Checkov 和 Trivy 的官方文档。以下是一些有用的链接: * [Checkov - 抑制和跳过策略](https://www.checkov.io/2.Basics/Suppressing%20and%20Skipping%20Policies.html) * [Checkov - 自定义策略概述](https://www.checkov.io/3.Custom%20Policies/Custom%20Policies%20Overview.html) * [Trivy - 自定义检查](https://trivy.dev/docs/latest/scanner/misconfiguration/custom/) * [Trivy - 使用 .trivyignore 进行过滤](https://trivy.dev/docs/latest/configuration/filtering/#trivyignore) ## 性能优化 可以通过使用预装了以下工具的 *Azure Container Apps job* 运行器来提升流水线性能: - Terraform - Checkov - Trivy 优势: - 更快的流水线启动时间 - 无需运行时安装工具 - 一致且可重现的执行环境 - 提高的可靠性 ## 截图 **流水线执行** ![流水线执行结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e822ce1f6f171108.png) **流水线执行摘要** ![流水线安全报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fb9d35705a171114.png) **流水线安全报告** ![流水线安全报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5f3cd38c84171122.png)
标签:Azure, Azure DevOps, DevSecOps, EC2, ECS, IaC, Pipeline, Terraform, 上游代理, 代码安全, 企业级, 安全左移, 安全扫描, 开源框架, 持续交付, 持续集成, 时序注入, 模板, 漏洞枚举, 策略即代码, 聊天机器人安全, 质量门禁