Token导航 LogoToken导航

MCP Server · 运维云端

Terraform Guardrail

Terraform Guardrail Multi-Cloud Policy (MCP) 是一个企业级IaC治理平台,通过CI/CD强制执行架构意图、合规性和平台标准。

stdio官方级别未说明来源级核验工具 3
Python云端部署Docker

快速开始

作者 / 组织
Huzefaaa2
提供方
Huzefaaa2
运行时
Python

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

5

仓库热度

收录来源

1 个

MCP World

选型结论

Terraform Guardrail 属于运维云端类 MCP Server,公开资料标注 3 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

运维云端

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Terraform护栏多云策略(MCP)(TerraGuard)

v5.0自治治理是最新版本。 Terraform护栏现在从 解释治理决策以操作治理循环:补救计划、PR就绪修复 指导、GitHub PR自动化、计划治理循环、趋势仪表板和健康信号 基于评估、证据和豁免而构建。

Terraform护栏多云策略(MCP)(TerraGuard)在Terraform外部运行并转向平台 将标准转化为可执行的CI/CD护栏。它为平台团队提供了策略生命周期管理, 开发人员快速反馈,审计员可追溯的证据,而不会减缓交付。

将其用作CLI、REST API、web UI、MCP服务器或CI门。从内置的TG001-TG023规则开始 编目、添加企业元数据和审批,然后在整个系统中推出通过/警告/阻止决策 GitHub、GitLab、Azure DevOps和AWS CodePipeline。

企业案例研究:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Enterprise-Case-Studies

v1-v5全平台直播应用:https://terraform-guardrail-platform.streamlit.app/

  • 发行说明:https://github.com/Huzefaaa2/terraform-guardrail/releases/tag/v5.0.0
  • 企业维基:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Release-v2.0.0
  • v3生态系统发布:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Release-v3.0.0
  • v4智能版本:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Release-v4.0.0
  • v5自治治理版本:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Release-v5.0.0
  • 贡献:https://github.com/Huzefaaa2/terraform-guardrail/blob/main/CONTRIBUTING.md
  • v1基金会实时应用程序:https://terraform-guardrail.streamlit.app/
  • v2企业版实时应用程序:https://terraform-guardrail-enterprise.streamlit.app/
  • v3-v5治理实时应用程序:https://terraform-guardrail-governance.streamlit.app/
  • v1-v5全平台直播应用:https://terraform-guardrail-platform.streamlit.app/
  • 企业案例研究:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Enterprise-Case-Studies
  • 作者:胡泽发·侯赛因https://www.linkedin.com/in/huzefaaa

使用v1和v2应用程序进行重点演示。使用v3-v5治理应用程序进行连接 企业之旅:政策包、智能评估、补救、PR自动化、计划 治理、证据时间表和健康报告。使用v1-v5全平台应用程序 希望在一个GUI中显示完整的产品故事。新的案例研究维基部分解释了七个 企业采用案例,包括安装步骤和功能演练。

Terraform护栏多云策略(MCP)(TerraGuard)

使基础设施治理可执行

我们正在解决的问题

尽管使用了Terraform和安全扫描程序,企业仍然面临:

  • 各团队执行不一致
  • 政策实施过晚
  • 不可扩展的手动审查
  • 对“标准”的不同解读
  • 由偏差而非意图引起的审计结果

👉 问题不在于缺乏工具--\ 👉 问题在于缺乏治理分配机制。

什么是Terraform护栏多云策略(MCP)

Terraform Guardrail多云策略(MCP)是Terraform的企业级IaC治理和护栏平台 它直接在CI/CD中强制执行架构意图、合规性和平台标准。

它

  • 建立不可谈判的安全底线
  • 通过CI/CD一致地分配护栏
  • 实现渐进式执行(咨询→ Warn → 严格)
  • 使治理版本化、可审计和可重复

治理变成了代码,而不是文档。

适合的地方(生态系统视图)

层角色
Terraform护栏多云策略(MCP)治理和执行编排
Checkov/tfsec/Terrascan深度静态安全与合规性扫描
OPA/Sentinel高级和运行时策略执行
CI/CD(GitLab/GitHub)执行与控制点

Terraform护栏不会取代现有的工具——它连接并操作它们。

它是如何工作的(一行)

每一个地形变化在到达云层之前都会穿过同样的护栏。

实施时间:

  • 合并请求/拉取请求阶段
  • GitLab组级CI实施
  • 无回购谈判

企业采用模式

阶段模式业务成果
第1阶段咨询可见性,零中断
第2阶段警告无阻碍的问责制
第3阶段严格产品强制合规

✔ 没有“大爆炸”的推出\ ✔ 团队将自主性置于安全之上

企业为什么要采用地形护栏

没有它:

  • 治理依赖于人员和流程
  • 控制随时间漂移
  • 审计补救措施很昂贵

有了它:

  • 治理是自动和一致的
  • 安全转移到CI
  • 默认情况下生成审计证据
  • 平台团队可扩展而不会成为瓶颈

底线(高管离职)

Terraform护栏多云策略(MCP)转向基础设施治理\ 从指导方针到保证。

它实现了速度和安全性,而无需以一个换取另一个。

设计原则

不可协商的安全地板,上面可以自由组合。护栏就住在Terraform外面 平台团队可以强制执行基线不变量,而产品团队则保持敏捷性。

用户视角(高级)

flowchart LR
    USER[Platform + Product Teams] --> CHANNELS[CLI / UI / REST API / CI]
    CHANNELS --> GUARDRAIL[TerraGuard Control Plane]
    GUARDRAIL --> POLICIES[Baseline + Context Policies]
    GUARDRAIL --> REPORTS[Guidance + Evidence]
    GUARDRAIL --> TERRAFORM[Safer Terraform Applies]

    classDef actor fill:#e3f2fd,stroke:#1565c0,stroke-width:1px,color:#0d47a1;
    classDef channel fill:#f3e5f5,stroke:#6a1b9a,stroke-width:1px,color:#4a148c;
    classDef core fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px,color:#1b5e20;
    classDef output fill:#fff3e0,stroke:#ef6c00,stroke-width:1px,color:#e65100;

    class USER actor;
    class CHANNELS channel;
    class GUARDRAIL,POLICIES core;
    class REPORTS,TERRAFORM output;

开发人员使用护栏的方式

flowchart TB
    DEV[Developer] --> CLI[CLI]
    DEV --> UI[Web UI]
    DEV --> API[REST API]
    DEV --> MCP["Multi-Cloud Policy (MCP)"]
    DEV --> GHA[GitHub Action]
    DEV --> GL[GitLab CI]
    DEV --> ADO[Azure DevOps]

    CLI --> GUARDRAIL[TerraGuard]
    UI --> GUARDRAIL
    API --> GUARDRAIL
    MCP --> GUARDRAIL
    GHA --> GUARDRAIL
    GL --> GUARDRAIL
    ADO --> GUARDRAIL

    classDef actor fill:#e3f2fd,stroke:#1565c0,stroke-width:1px,color:#0d47a1;
    classDef channel fill:#ede7f6,stroke:#5e35b1,stroke-width:1px,color:#311b92;
    classDef core fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px,color:#1b5e20;

    class DEV actor;
    class CLI,UI,API,MCP,GHA,GL,ADO channel;
    class GUARDRAIL core;

当前能力

  • 带摘要和CSV导出的多文件扫描
  • 秘密卫生检查 .tf, .tfvars,以及 .tfstate
  • 通过Terraform CLI集成进行模式感知验证
  • 通过Terraform注册表查找提供程序元数据
  • 用于扫描、元数据和代码段生成的多云策略(MCP)工具
  • 用于即时报告的流线型和web UI
  • 用于CI/CD采用的停靠REST API
  • Docker Compose开发堆栈(API+UI+策略注册表,可选分析)
  • 护栏包的OPA捆绑就绪策略注册表
  • 通过带有可选签名验证的OPA包进行策略评估
  • 最小策略注册表API(版本+审核历史记录)

支持的提供商

  • 亚马逊云服务
  • Azure
  • 谷歌云平台
  • Kubernetes
  • 舵
  • OCI
  • 金库
  • 阿利克劳德
  • vSphere

☁️ AWS支持

Terraform护栏提供 对AWS环境的一流支持 并且被设计为 通过强制执行来补充AWS本机治理服务 预先部署的、具有国际航空安全意识的护栏.

与部署后或在帐户边界操作的AWS本机控件不同, Terraform Guardrail执行架构、安全和合规政策 在Terraform之前 应用,直接位于CI/CD管道内。

支持的AWS CI/CD集成

  • GitHub操作 (主要AWS CI集成)
  • GitLab 的 (广泛应用于受监管的AWS企业)
  • AWS CodePipeline+CodeBuild (通过buildspec集成)

AWS特定功能

  • 针对AWS的Terraform预应用护栏执法
  • 具有账户和环境意识的政策评估
  • OU对齐的护栏(旨在补充AWS组织)
  • 在控制塔对齐的环境中执行左移
  • 审计证据生成(SOC2、ISO、PCI)

Terraform Guardrail使平台团队能够定义 组织范围内的AWS标准 和 确保在基础设施之前,跨账户、管道和团队一致地执行这些标准 到达AWS。

特征矩阵

区域CLIWeb UI/Streamlit
配置扫描(.tf, .tfvars, .hcl)是是
状态泄漏扫描(.tfstate)是是
架构感知验证是是
CSV导出否是
提供程序元数据是是
代码段生成是否
多文件扫描是(目录)是(最多上传10个)
人类可读报告是是
策略包注册表是否
政策评估(OPA捆绑包)是否

建筑(高级)

flowchart TB
    subgraph Interfaces
        CLI([CLI])
        MCP(["Multi-Cloud Policy (MCP) Server"])
        WEB([Web UI])
        API([REST API])
        STL([Streamlit App])
    end

    subgraph Core
        SCAN((Compliance Engine))
        GEN[[Snippet Generator]]
        POLICY{Policy Layering}
    end

    subgraph Integrations
        TF[/Terraform CLI/]
        REG[(Terraform Registry)]
    end

    CLI --> SCAN
    WEB --> SCAN
    API --> SCAN
    STL --> SCAN
    MCP --> SCAN
    MCP --> GEN
    SCAN --> POLICY --> TF
    GEN --> REG

    classDef interface fill:#e3f2fd,stroke:#1e88e5,stroke-width:1px,color:#0d47a1;
    classDef core fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px,color:#1b5e20;
    classDef integration fill:#fff3e0,stroke:#ef6c00,stroke-width:1px,color:#e65100;

    class CLI,MCP,WEB,API,STL interface;
    class SCAN,GEN,POLICY core;
    class TF,REG integration;

架构(详细流程)

flowchart TB
    INPUTS[Inputs: .tf, .tfvars, .tfstate] --> PARSE[Parse & Normalize]
    PARSE --> SCHEMA[Provider Schema + Metadata]
    SCHEMA --> RULES[Apply Guardrail Rules]
    RULES --> REPORT[Findings + Summary]
    REPORT --> OUTPUTS["CLI JSON / UI / Multi-Cloud Policy (MCP) / REST"]

注意:Mermaid图在GitHub和Wiki上呈现。PyPI将显示原始块。

路线图(主要发布)

传说: ✅ 已送达 • 🚧 计划的

可交付成果v1.0基础v2.0企业v3.0生态系统v4.0智能文档
停靠式多云策略(MCP)+REST API✅ 已交付(0.2.x)文档
CLI首次安装✅ 已交付(0.2.x)文档
Docker编写本地堆栈(API+UI+注册表)✅ 已交付(0.2.x)文档
GitHub行动预申请/PR检查✅ 已交付(0.2.x)文档
中央护栏登记簿✅ 已交付(1.0.x)文档
策略版本控制+审计跟踪✅ 已交付(1.0.x)文档
注册表服务映像(GHCR)✅ 已交付(1.0.x)文档
自制软件包(macOS)✅ 已交付(1.0.x)文档
通过PyPI安装Windows✅ 已交付(0.2.x)文档
Linux安装脚本(curlbash)✅ 已交付(1.0.x)文档
GitLab CI模板✅ 已交付(1.0.x)文档
Azure DevOps/工作流扩展✅ 已交付(1.0.x)文档
策略分层模型(基础→ env → 应用程序)✅ 已交付(1.0.x)文档
自定义规则(选项A/B+本地捆绑包)✅ 已交付(1.0.x)文档
AWS CodePipeline+CodeBuild集成✅ 已交付(2.0.0)文档
策略编写UI✅ 已交付(2.0.0)文档
策略元数据+丰富的失败消息✅ 已交付(2.0.0)文档
应用前防漂移规则✅ 已交付(2.0.0)文档
全组织基线✅ 已交付(2.0.0)文档
集团级执行✅ 已交付(2.0.0)文档
证据导出(SOC2/ISO/PCI)✅ 已交付(2.0.0)文档
贡献者治理+公共路线图✅ 已交付(v3.0开发版)文档
跨工具的参考实现✅ 已交付(v3.0开发版)文档
跨提供者不变强制✅ 已交付(v3.0开发版)文档
护栏——服务API✅ 已交付(v3.0开发版)文档
企业策略包✅ 已交付(v3.0开发版)文档
上下文感知评估✅ 已交付(v4.0开发)文档
建议修复+建议✅ 已交付(v4.0开发)文档
可解释性报告+CI注释输出✅ 已交付(v4.0开发)文档
企业SARIF/JUnit网桥✅ 已交付(v4.0开发)文档
政策豁免和例外✅ 已交付(v4.0开发)文档

与其他工具的比较

Terraform Guardrail多云策略(MCP)(TerraGuard)对IaC治理采取了与传统方法截然不同的方法 扫描或梳理工具。Guardrail作为多云策略(MCP)服务器交付,具有 CLI和web UI。它在Terraform之外运行,公开提供者元数据、扫描配置和状态 用于敏感值,并生成人类可读的报告。它的规则引擎专注于秘密 卫生和只写论点,让平台团队发布不可谈判的护栏,同时 产品团队组成上下文约束。

相比之下,现有的工具,如Checkov、TFLint和OPA/Conftest,主要作为静态代码运行 CI管道中嵌入的分析仪。他们扫描Terraform文件或计划以查找配置错误,但确实如此 不提供集中式控制平面或跨提供商上下文。下表总结了 主要区别:

类别护栏多云策略(MCP)CheckovTFLintOPA/Conftest
主要目的外部IaC治理控制平面静态多IaC安全扫描器Terraform linter通用策略引擎(Rego)
IaC支持Terraform+多云提供商(AWS、Azure、GCP、Kubernetes、Helm、OCI、Vault、vSphere、Alicloud)Terraform、CloudFormation、Kubernetes、Helm、ARM、无服务器Terraform(HCL)通过Rego策略的任何域
政策模型中央护栏登记处;平台不变量+产品约束;版本化和可审计内置规则(Python/Rego)+自定义策略特定于提供商的规则插件;实验性Rego插件仅限Rego规则
执行阶段预申请;防止不良状态和漂移;使用提供者模式模板和计划的预应用扫描对错误和最佳实践偏差进行预应用linting预应用检查(通过Conftest)-结果取决于集成
治理与审计组织级护栏注册表、所有权边界、审计跟踪无策略生命周期管理无策略注册表无治理功能
开发人员经验CLI/Server/Web UI;人类可读的报告和修复建议具有JSON/SARIF/JUnit输出和图形洞察的CLI具有JSON/SERIF/JUnit输出的CLI;可配置警告CLI库;陡峭的学习曲线

为什么护栏与扫描仪相辅相成

Checkov提供了一个庞大的策略库和基于图的资源分析来捕捉错误配置 早期,TFLint提供了可插拔的、支持提供者的linting规则来检测无效类型,现已弃用 语法和最佳实践会漂移。这些工具对于Terraform代码的静态分析仍然很有价值。 护栏多云策略(MCP)通过充当高阶控制平面来构建它们:它使用提供者元数据 验证模式使用情况,在Terraform改变状态之前防止秘密泄漏和漂移,以及 将平台拥有的安全层与产品级约束分开。在实践中,团队经常跑步 TFLint或Checkov在其CI中捕获编码错误,而Guardrail作为最后一行 防御,以加强组织护栏并提供情境指导。

Terraform护栏与AWS原生治理工具

功能地形护栏AWS原生工具
Terraform预应用强制执行✅ 是❌ 没有
CI/CD策略门✅ 是❌ 没有
IaC意识护栏✅ 是❌ 没有
AWS组织意识✅ 组织/集团/回购基线⚠️ 仅限帐户级别
控制塔集成🚧 陪伴模式⚠️ 仅限平台
防漂移(预部署)✅ 是❌ 仅部署后
策略版本控制和审计跟踪✅ 是❌ 有限
多云奇偶校验✅ 是❌ 仅AWS
审计证据导出✅ JSON/CSV/PDF⚠️ 支离破碎

摘要

AWS原生治理工具 部署后和以基础设施为中心.\ Terraform护栏提供 预部署、架构感知、IaC原生护栏 那 补充AWS治理,而不是取代它。

快速入门

python -m venv .venv
source .venv/bin/activate
pip install -e "[dev]"

# CLI scan
terraform-guardrail scan examples

# snippet generation
terraform-guardrail generate aws aws_s3_bucket --name demo

# list policy bundles
terraform-guardrail policy list

# registry API
terraform-guardrail registry-api

# Multi-Cloud Policy (MCP) server (stdio)
terraform-guardrail mcp

# Web UI
terraform-guardrail web

从PyPI安装

pip install terraform-guardrail

PyPI:https://pypi.org/project/terraform-guardrail/(最新版本:5.0.0)

例子

这 examples/ 文件夹提供实用的CI模拟:

  • examples/fixtures/ 包括好的和坏的地形输入(.tf, .tfvars, .hcl, .tfstate).
  • examples/gitlab-ci/ 包含GitLab模板示例和示例输出。
  • examples/github-actions/ 包含GitHub Actions工作流和示例输出。
  • examples/aws-codepipeline/ 包含CodeBuild构建规范和示例企业证据输出。

每个示例文件夹都包含一个 README.md 具有步骤和预期的输出格式(JSON、SARIF、JSON等), JUnit、CSV)。

安装程序选项

包装工件在发布标签上生成。发布时启用Homebrew发布 配置了秘密。Windows用户使用Python从PyPI安装。

自制(macOS)

brew install Huzefaaa2/tap/terraform-guardrail

Windows(PyPI)

py -m pip install terraform-guardrail

Linux(curl | bash)

curl -sSL https://github.com/Huzefaaa2/terraform-guardrail/releases/latest/download/install.sh | bash

包装细节: docs/packaging.md.

CLI示例

完整CLI命令参考: commands.md.

# scan a directory
terraform-guardrail scan ./examples --format json

# scan state files too
terraform-guardrail scan ./examples --state ./examples/sample.tfstate

# enable schema-aware validation (requires terraform CLI + initialized workspace)
terraform-guardrail scan ./examples --schema

# evaluate OPA policy bundle (requires opa CLI)
terraform-guardrail scan ./examples --policy-bundle baseline

# fail CI on medium+ findings
terraform-guardrail scan ./examples --fail-on medium

合规规则(内置)

在wiki上查看完整列表:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Compliance-Rules

规则ID描述严重性
TG001敏感变量缺失 ephemeral = true中等
TG002配置或tfvars中的硬编码秘密高
TG003状态中存储的敏感外观值高
TG004HCL解析错误低
TG005在提供程序架构中找不到属性中等
TG006检测到公共S3存储桶ACL高
TG007公共S3访问阻止已禁用高
TG008安全组入口向全世界开放高
TG009IAM策略通配符权限高
TG010在计算上启用公共IP关联中等
TG011S3存储桶缺少默认加密中等
TG012RDS存储未加密中等
TG013负载均衡器侦听器使用HTTP中等
TG014实例缺少子网/VPC边界低
TG015RDS实例可公开访问高
TG016缺少必需的资源标签低
TG017资源区域/位置不在允许列表中中等
TG018实例类型或SKU不在允许列表中中等
TG019启用Azure存储帐户公共网络访问中等
TG020EBS卷未加密中等

自定义规则(选项A/选项B)

选项A——环境旋钮(无代码):

export GUARDRAIL_REQUIRED_TAGS="owner,environment,cost_center"
export GUARDRAIL_ALLOWED_REGIONS="eastus,westus2"
export GUARDRAIL_ALLOWED_INSTANCE_TYPES="t3.medium,t3.large"
terraform-guardrail scan ./infra

选项B——OPA政策包(推荐):

terraform-guardrail policy init --destination ./my-bundle --bundle-name guardrail
opa build --bundle ./my-bundle --output my-bundle.tar.gz
terraform-guardrail policy validate ./my-bundle.tar.gz
terraform-guardrail scan ./infra --policy-bundle-path ./my-bundle.tar.gz

完整指南:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Custom-Rules

Web 用户界面

访问 http://127.0.0.1:8000 并上传Terraform文件或文件夹以运行智能 企业评价。web UI显示匹配的风险状况、基于上下文的严重程度 调整,并在标准调查结果的基础上提出修复建议。

Streamlit应用程序

Terraform Guardrail保持专注的应用程序和一个完整的平台应用程序。v1和v2保持专注, v3-v5显示了连接的治理循环,v1-v5完整平台提供了一个单一的执行和 从业者工作空间。

应用程序目的主文件实时URL
v1 Foundation扫描程序、状态泄漏检查、模式感知验证streamlit_app.pyhttps://terraform-guardrail.streamlit.app/
v2企业+情报政策制定、组织基线、漂移门、证据导出、风险简介、建议修复、豁免演示streamlit_app_v2.pyhttps://terraform-guardrail-enterprise.streamlit.app/
v3-v5治理策略包、可解释性、SARIF/JUnit、补救计划、PR模拟运行、计划扫描、证据计划、健康和趋势仪表板streamlit_app_v3_v5.pyhttps://terraform-guardrail-governance.streamlit.app/
v1-v5全平台扫描程序、策略目录、企业评估、策略包、漂移、证据、可解释性、补救、时间表、运行状况和案例研究剧本streamlit_app_full.pyhttps://terraform-guardrail-platform.streamlit.app/

运行v1 Foundation演示:

streamlit run streamlit_app.py

运行v2 Enterprise演示:

streamlit run streamlit_app_v2.py

运行v3-v5治理演示:

streamlit run streamlit_app_v3_v5.py

运行v1-v5完整平台演示:

streamlit run streamlit_app_full.py

Streamlit云部署

  1. 将此仓库推送到GitHub。
  2. 使用主文件路径为v1创建一个Streamlit Cloud应用程序 streamlit_app.py.
  3. 使用主文件路径为v2创建第二个Streamlit Cloud应用程序 streamlit_app_v2.py.
  4. 使用主文件路径为v3-v5创建第三个Streamlit Cloud应用程序 streamlit_app_v3_v5.py.
  5. 使用主文件路径为v1-v5创建第四个Streamlit Cloud应用程序 streamlit_app_full.py.
  6. 部署(Streamlit将从安装 requirements.txt,使用Python runtime.txt,

并应用来自的共享主题 .streamlit/config.toml).

容器部署

运行v1 Foundation应用程序:

docker build -f Dockerfile.streamlit -t terraform-guardrail-streamlit:v1 .
docker run --rm -p 8501:8501 terraform-guardrail-streamlit:v1

运行v2 Enterprise应用程序:

docker build -f Dockerfile.streamlit.v2 -t terraform-guardrail-streamlit:v2 .
docker run --rm -p 8502:8501 terraform-guardrail-streamlit:v2

运行v3-v5治理应用程序:

docker build -f Dockerfile.streamlit.v3_v5 -t terraform-guardrail-streamlit:v3-v5 .
docker run --rm -p 8503:8501 terraform-guardrail-streamlit:v3-v5

运行v1-v5完整平台应用程序:

docker build -f Dockerfile.streamlit.full -t terraform-guardrail-streamlit:full .
docker run --rm -p 8504:8501 terraform-guardrail-streamlit:full

REST API(Docker)

生成并运行API服务器:

docker build -t terraform-guardrail .
docker run --rm -p 8080:8080 terraform-guardrail

API端点:

  • GET /health
  • GET /metrics
  • POST /scan
  • POST /provider-metadata
  • GET /policy-bundles
  • GET /policy-bundles/{bundle_id}
  • POST /generate-snippet

请求示例:

curl -X POST http://localhost:8080/scan \\
  -H "Content-Type: application/json" \\
  -d '{"path":"./examples","use_schema":false}'

容器图像

拉取已发布的容器映像(基于发布标签构建):

docker pull ghcr.io/huzefaaa2/terraform-guardrail:latest

运行它:

docker run --rm -p 8080:8080 ghcr.io/huzefaaa2/terraform-guardrail:latest

注册表API映像:

docker pull ghcr.io/huzefaaa2/terraform-guardrail-registry:latest
docker run --rm -p 8090:8090 ghcr.io/huzefaaa2/terraform-guardrail-registry:latest

Docker编写堆栈(本地开发)

调出API+Streamlit UI+策略注册表:

docker compose up --build

启用可选分析(Prometheus+Grafana):

docker compose --profile analytics up --build

服务URL:

  • APIhttp://localhost:8080
  • 流线型用户界面:http://localhost:8501
  • 策略注册表(静态):http://localhost:8081
  • 策略注册表API:http://localhost:8090
  • Prometheus(分析配置文件):http://localhost:9090
  • Grafana(分析简介):http://localhost:3000(管理员/护栏)

更多详情: docs/docker-compose-guide.md.

政策注册(OPA捆绑包)

本地策略注册表公开了护栏包的OPA包。使用CLI获取捆绑包:

terraform-guardrail policy list
terraform-guardrail policy fetch baseline --destination ./policies
terraform-guardrail policy fetch baseline-signed --destination ./policies

策略评估仅在以下情况下运行 --policy-bundle 提供。如果捆绑包包括验证 设置(公钥+作用域),OPA CLI在评估之前验证捆绑包签名。

注册表API(撰写): GET /bundles, GET /bundles/{id}/versions, GET /audit.

签名包示例:

  • 捆绑: baseline-signed
  • 公钥: http://localhost:8081/keys/guardrail.pub
flowchart LR
    subgraph ComposeStack[Docker Compose Stack]
        UI([Streamlit UI])
        API([REST API])
        REG[(Policy Registry)]
        REGAPI([Registry API])
        PROM[[Prometheus]]
        GRAF[[Grafana]]
    end
    UI --> API
    API -.-> REG
    REGAPI -.-> REG
    API --> PROM
    PROM --> GRAF

    classDef core fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px,color:#1b5e20;
    classDef optional fill:#fff3e0,stroke:#ef6c00,stroke-width:1px,color:#e65100;
    class UI,API,REG,REGAPI core;
    class PROM,GRAF optional;

策略分层(基础→ Env → App)

按可预测的顺序铺设分层护栏:

terraform-guardrail scan infra \
  --policy-base baseline \
  --policy-env prod \
  --policy-app payments

环境变量(备选):

  • GUARDRAIL_POLICY_BASE
  • GUARDRAIL_POLICY_ENV
  • GUARDRAIL_POLICY_APP

GitHub操作(预申请/PR检查)

使用内置操作扫描拉取请求中的Terraform更改:

name: Guardrail

on:
  pull_request:
    paths:
      - "**/*.tf"
      - "**/*.tfvars"
      - "**/*.hcl"
      - "**/*.tfstate"

jobs:
  guardrail:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - name: Start local policy registry
        run: |
          python -m http.server 8081 --directory ops/policy-registry &
      - uses: ./.github/actions/guardrail
        with:
          path: .
          fail_on: medium
          install_source: repo
          policy_bundle: baseline-signed
          policy_registry: http://localhost:8081

当 policy_bundle 设置后,该操作将自动安装OPA并验证签名(如果 已配置)。

GitLab CI模板

将共享模板包含在您的 .gitlab-ci.yml:

include:
  - project: "Huzefaaa2/terraform-guardrail"
    ref: "v2.0.0"
    file: "/.gitlab/terraform-guardrail.yml"

根据需要覆盖变量:

variables:
  TERRAFORM_GUARDRAIL_SCAN_PATH: "infra"
  TERRAFORM_GUARDRAIL_FAIL_ON: "high"
  TERRAFORM_GUARDRAIL_FORMAT: "pretty"
  TERRAFORM_GUARDRAIL_JSON_REPORT: "guardrail-report.json"
  TERRAFORM_GUARDRAIL_WRITE_REPORT: "true"
  TERRAFORM_GUARDRAIL_SARIF_REPORT: "guardrail-report.sarif"
  TERRAFORM_GUARDRAIL_JUNIT_REPORT: "guardrail-report.junit.xml"
  TERRAFORM_GUARDRAIL_WRITE_SARIF: "true"
  TERRAFORM_GUARDRAIL_WRITE_JUNIT: "true"

可选策略包评估:

guardrail_scan:
  before_script:
    - python -m http.server 8081 --directory ops/policy-registry &
  variables:
    TERRAFORM_GUARDRAIL_POLICY_BUNDLE: "baseline-signed"
    TERRAFORM_GUARDRAIL_POLICY_REGISTRY: "http://localhost:8081"

默认情况下,该模板会发出JSON、SARIF和JUnit报告工件。用以下命令禁用其中任何一个 TERRAFORM_GUARDRAIL_WRITE_REPORT, TERRAFORM_GUARDRAIL_WRITE_SARIF,或 TERRAFORM_GUARDRAIL_WRITE_JUNIT.

Azure DevOps管道

在中使用管道模板 /.azure/terraform-guardrail.yml.

trigger:
  - main

pool:
  vmImage: "ubuntu-latest"

steps:
  - template: .azure/terraform-guardrail.yml
    parameters:
      path: "infra"
      failOn: "high"
      policyBundle: "baseline-signed"
      policyRegistry: "http://localhost:8081"

该模板发布JSON、SARIF和JUnit报告。禁用发布 publishReports: false.

Azure DevOps市场扩展

该回购还包括一个Marketplace扩展脚手架 azure-devops-extension/ 带着一个 Terraform Guardrail Scan 任务。使用构建它 tfx 并从您的ADO发布者帐户发布。

发布后管道使用示例:

steps:
  - task: TerraformGuardrail@1
    inputs:
      path: "infra"
      failOn: "high"
      policyBundle: "baseline-signed"
      policyRegistry: "http://localhost:8081"
      jsonReport: "guardrail-report.json"
      sarifReport: "guardrail-report.sarif"
      junitReport: "guardrail-report.junit.xml"

自动化: Azure DevOps Extension 当出现以下情况时,工作流会在标签推送时发布 设置了秘密:

  • ADO_PUBLISHER
  • ADO_EXT_PAT

发布链接

  • PyPI:https://pypi.org/project/terraform-guardrail/
  • GitHub发布:https://github.com/Huzefaaa2/terraform-guardrail/releases
  • 容器图像:https://github.com/Huzefaaa2/terraform-guardrail/pkgs/container/terraform-guardrail
  • 最新版本:v5.0.0
  • 发布历史: RELEASE.md
  • 企业特性:https://github.com/Huzefaaa2/terraform-guardrail/wiki/Enterprise-Features

许可

Terraform护栏在 商业来源许可证(BSL)1.1.

这意味着

✅ 免费用于:

  • 企业内部平台
  • CI/CD管道
  • 评估、学习和实验
  • 开源贡献

❌ 未经许可不得:

  • 提供Terraform护栏作为付费产品或SaaS
  • 将其嵌入到商业平台或服务中
  • 直接转售或货币化软件

商业用途

商业用途需要 明确的书面许可 来自作者。

如果您希望:

  • 提供Terraform护栏作为管理服务
  • 将其嵌入商业平台
  • 将其作为付费产品的一部分分发

请联系作者讨论许可选项。

许可常见问题

Q: 我可以在公司内部使用Terraform护栏吗?\ 对。未经许可,允许内部使用和CI/CD验证。

Q: 我可以将其作为付费SaaS或托管服务提供吗?\ 否。付费或货币化使用需要明确的书面许可。

Q: 什么时候成为Apache 2.0?\ 在许可证中定义的变更日期(自首次公开发布之日起4年)。

看 LICENSE 和 COMMERCIAL_USAGE.md 完整条款。

部署指导

看 docs/streamlit_cloud.md 了解Streamlit Cloud的详细演练。

发布检查表

  • 更新版本 pyproject.toml.
  • 更新 RELEASE_NOTES.md 和 CHANGELOG.md.
  • 提交更改并推动 main.
  • 创建并推送标签: git tag -a vX.Y.Z -m "vX.Y.Z" 然后 git push origin vX.Y.Z.
  • 确认GitHub Actions发布工作流已成功完成。

变更日志自动化

此仓库使用 git-cliff 生成 CHANGELOG.md.

git cliff -o CHANGELOG.md

或运行:

make changelog

释放助手

make release-dry VERSION=5.0.0
make version-bump VERSION=5.0.0

多云策略(MCP)工具(当前)

  • scan_terraform:对路径和可选状态文件运行合规性检查。
  • get_provider_metadata:从Terraform注册表获取提供程序元数据。
  • generate_snippet:为公共资源生成Terraform代码段。

许可证

商业来源许可证(BSL)1.1。看 LICENSE.

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

IaC治理Python本地部署合规性检查多云支持CI/CD集成自动化修复

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Terraform Guardrail

MCP World · 本页

3stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Terraform Guardrail 怎么安装?

公开资料给出的安装命令是 python -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Terraform Guardrail 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Terraform Guardrail 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Terraform Guardrail 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Terraform Guardrail 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP