ChendrayanV/Azure-IaC-Guardrail

GitHub: ChendrayanV/Azure-IaC-Guardrail

一款 VS Code 扩展,为 Azure Terraform 提供部署前的安全合规静态扫描、计划解析审查、架构拓扑分析和成本估算,并支持审计证据导出。

Stars: 0 | Forks: 0

Azure IaC Guardrail

Azure IaC Guardrail

在部署前审查 Azure Terraform 的安全性、合规性、架构和变更影响。

在 Visual Studio Code 内提供本地静态分析、已解析的计划保障、架构审查、 受管辖的例外情况以及审计证据。

Release status: Public Preview Extension CI Release Unit tests: 106 passing Control coverage: 25 services and 139 controls VS Code 1.100 or later MIT license

安装 · 快速开始 · 功能 · 用户指南 · 贡献

## 从 Terraform 到证据 ![Azure IaC Guardrail 审查工作流](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3f6fa740e3234534.png) 该工作流保持在本地且可审查:打开 Terraform 根目录,选择 适当的扫描,检查发现的问题和修复建议,然后为 Pull Request 或部署审批导出证据。 ## 为什么选择 Guardrail | 编写 | 审查 | 治理 | 证据 | |---|---|---|---| | 在编辑时检测有风险的 Terraform。 | 检查已解析的计划、依赖关系、暴露面和影响范围。 | 应用共享的控制、标签、区域、排除项和有时限的例外情况。 | 导出 PDF、JSON 和 Markdown 产出物,用于工程和保障工作流。 | ## 安装 ### 从发布的 VSIX 安装 1. 从已批准的发布版本下载 `azure-iac-guardrail-.vsix`。 2. 在 VS Code 中,打开 **Extensions** 并选择 **Views and More Actions (...) > Install from VSIX...**。 3. 选择下载的安装包,并在出现提示时重新加载 VS Code。 同样可以在终端中执行以下命令来完成安装: ``` code --install-extension .\azure-iac-guardrail-.vsix ``` 对于受控的推广发布,请通过您的软件管理平台或私有扩展库分发已批准的 VSIX。当配置好公共发布者后,将添加 Marketplace 安装说明。 **要求** - Visual Studio Code `1.100.0` 或更高版本。 - 仅对于基于计划的工作流需要 Terraform。 - 仅当所选的 Terraform 工作流需要时,才需要 Azure/提供程序身份验证。 有关升级、卸载和故障排除,请参见[安装和快速开始](docs/wiki/Installation-and-Quick-Start.md)。 ## 快速开始 1. 打开包含 Terraform 根模块的文件夹。 2. 按 `Ctrl+Shift+P`。 3. 运行 **Azure IaC Guardrail: Azure Pre-configuration** 并选择 Terraform 根目录、批准的区域、必需的标签以及任何受管辖的例外情况。 4. 运行 **Azure IaC Guardrail: Scan Terraform Files** 以获取即时的离线 反馈。 5. 当您需要已解析的值、模块实例、关系和变更影响时,请运行 **Azure IaC Guardrail: Create and Scan Local Terraform Plan**。 6. 在 **Azure IaC Guardrail Results** 中审查发现的问题,仅应用已审查的 修复,并导出所需的证据。 有关完整的操作指南,请参见 [USER_GUIDE.md](USER_GUIDE.md)。 静态反馈从编辑器开始。Terraform 计划会添加权威的 已解析值和关系。然后,审查者在批准部署前会使用相同的发现、 架构上下文和导出的证据。 ## 产品视图 ![Azure IaC Guardrail 结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f986ff4abe234540.png) 说明性的产品视图。该扩展会评估 Terraform;此处显示的资源 名称和发现结果是具有代表性的示例数据。 ## 功能 | 功能 | 目的 | 指南 | |---|---|---| | Terraform 静态扫描 | 使用支持的变量、tfvars、locals 和模块进行离线检查 | [静态扫描](docs/wiki/Static-Scanning.md) | | 计划扫描 | 评估已解析的资源、关系和仅计划的控制 | [计划扫描和审查](docs/wiki/Plan-Scanning-and-Review.md) | | 编辑器诊断 | 问题、悬停详情、自动补全、来源和可审查的快速修复 | [编辑器体验](docs/wiki/Editor-Experience.md) | | 工作区治理 | 配置根目录、区域、标签、成本假设、排除项和例外情况 | [工作区治理](docs/wiki/Workspace-Governance.md) | | 计划架构 | 搜索和过滤计划拓扑、风险、操作和暴露面;导出 SVG | [计划扫描和审查](docs/wiki/Plan-Scanning-and-Review.md) | | 计划比较和影响范围 | 比较计划并汇总相关的变更影响 | [计划扫描和审查](docs/wiki/Plan-Scanning-and-Review.md) | | 资源成本 (Resource Cost) | 根据声明的配置和假设估算支持的零售成本 | [资源成本](docs/wiki/Resource-Cost.md) | | Cloud Canvas | 设计 Azure 架构并生成可审查的 Terraform | [Cloud Canvas](docs/wiki/Cloud-Canvas.md) | | 证据导出 | 生成 PDF 报告以及机器可读的 JSON 和 Markdown | [证据和报告](docs/wiki/Evidence-and-Reporting.md) | Resource Cost 和 Cloud Canvas 是 **预览版 (Preview)** 功能。其输出需要 人工审查,并且不能作为 Azure 账单或部署批准的依据。 ## 扫描模式 | 命令 | 适用场景 | 是否需要 Terraform | |---|---|---:| | **Scan Terraform Files** | 您需要快速、离线的编写反馈 | 否 | | **Initialize Modules and Scan Terraform Files** | 远程模块源尚未下载 | 是 | | **Scan Existing Terraform Plan** | CI/CD 或其他受信任的工作流生成了计划 | 对于二进制计划需要 | | **Create and Scan Local Terraform Plan** | 您需要已解析的值、实例和关系 | 是 | 默认情况下,生成的本地计划是临时的。Terraform 状态、计划、 tfvars、backend 配置、凭据、subscription ID 和 tenant ID 严禁提交。 ## 控制和标准 内置的服务和控制定义位于: ``` catalog/services/.json ``` 每个服务文件拥有自己的 Cloud Canvas 元数据、Terraform 映射、 参数、控制、保障、修复和参考。生成的 `azure-complete-catalog-vscode.json` 会被扫描和 Cloud Canvas 所使用; 请勿直接编辑它。 要添加或更改标准控制: 1. 添加服务时请复制 `catalog/service-template.json.example`,或者打开 现有的服务文件。 2. 定义唯一的控制 ID、确切的 Terraform 资源类型和属性、 支持的运算符、预期值、严重程度、修复和权威参考。 3. 为合规、不合规和未解析的行为添加测试。如果控制需要,请添加计划 和相关资源的测试用例。 4. 运行: npm run catalog:validate npm run catalog:test npm run check npm run lint npm test npm run compile 5. 提交服务文件和重新生成的 `azure-complete-catalog-vscode.json`。 在提交 Pull Request 之前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [控制和标准贡献指南](docs/wiki/Contributing.md)。 ## 开发 ``` npm install npm run check npm run lint npm test npm run compile ``` 按 `F5` 启动扩展开发宿主 (Extension Development Host)。维护的 Terraform 示例位于 `test/fixtures/` 下,包括 `storage-spa`、 `three-tier-webapp`、`remote-module-static-scan` 和 `intellisense-ux-demo`。 ## 发布 针对 `main` 分支的 Pull Request 和推送会运行标识符检查、类型检查、 linting、单元测试、编译和 VSIX 打包。语义化版本标签 (`vX.Y.Z`)将构建带有校验和的候选发布版本,并通过 受保护的 Marketplace 环境进行发布。 发布先决条件和回滚指南记录在 [发布管理](docs/wiki/Release-Management.md) 和 [docs/RELEASING.md](docs/RELEASING.md) 中。 ## 安全和支持 - 通过 [GitHub Security Advisories](https://github.com/ChendrayanV/Azure-IaC-Guardrail/security/advisories/new) 私下报告漏洞。 - 使用 [GitHub Issues](https://github.com/ChendrayanV/Azure-IaC-Guardrail/issues) 反馈不包含敏感数据的缺陷和功能请求。 - 在共享日志 或证据之前,请查阅 [SECURITY.md](SECURITY.md) 和 [安全和隐私](docs/wiki/Security-and-Privacy.md)。 ## 许可证 在 [MIT 许可证](LICENSE) 下发布。
标签:Azure, ECS, Terraform, 云安全监控, 暗色界面, 架构审查, 自动化攻击, 静态分析