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 流水线模板**,用于在 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
优势:
- 更快的流水线启动时间
- 无需运行时安装工具
- 一致且可重现的执行环境
- 提高的可靠性
## 截图
**流水线执行**

**流水线执行摘要**

**流水线安全报告**

标签:Azure, Azure DevOps, DevSecOps, EC2, ECS, IaC, Pipeline, Terraform, 上游代理, 代码安全, 企业级, 安全左移, 安全扫描, 开源框架, 持续交付, 持续集成, 时序注入, 模板, 漏洞枚举, 策略即代码, 聊天机器人安全, 质量门禁