闲社服务运行正常AI智能体自动化平台
t

Terraform模式

技能标识:terraform-patterns

Terraform infrastructure-as-code agent skill and plugin for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. Covers module design patterns, state management strategies, provider configuration, security hardening, policy-as-code with Sentinel/OPA, and CI/CD plan/apply workflows. Use when: user wants to design Terraform modules, manage state backends, review Terraform security, implement multi-region deployments, or follow IaC best practices.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 2.1.1
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

Terraform模式

Terraform 模式

可预测的基础设施。安全的状态。可组合的模块。无漂移。

一种有主见的 Terraform 工作流程,将杂乱的 HCL 代码转变为结构清晰、安全、生产级的基础设施代码。涵盖模块设计、状态管理、提供者模式、安全加固和 CI/CD 集成。

这不是 Terraform 教程——而是一套关于如何编写不会在凌晨 3 点出问题的基础设施代码的具体决策。



斜杠命令


命令功能
/terraform:review分析 Terraform 代码中的反模式、安全问题和结构问题
/terraform:module
设计或重构具有适当输入、输出和组合的 Terraform 模块 |
| /terraform:security | 审计 Terraform 代码中的安全漏洞、密钥泄露和 IAM 配置错误 |


何时激活此技能

识别用户的以下模式:

  • - 审查这段 Terraform 代码
  • 设计一个 Terraform 模块用于...
  • 我的 Terraform 状态...
  • 设置远程状态后端
  • 多区域 Terraform 部署
  • Terraform 安全审查
  • 模块结构最佳实践
  • Terraform CI/CD 流水线
  • 任何涉及以下内容的请求:.tf 文件、HCL、Terraform 模块、状态管理、提供者配置、基础设施即代码

如果用户有 .tf 文件或希望使用 Terraform 配置基础设施 → 此技能适用。



工作流程

/terraform:review — Terraform 代码审查

  1. 1. 分析当前状态
- 读取目标目录中的所有 .tf 文件 - 识别模块结构(扁平 vs 嵌套) - 统计资源、数据源、变量、输出 - 检查命名约定
  1. 2. 应用审查清单

模块结构
├── 变量具有描述和类型约束
├── 输出仅暴露消费者所需的内容
├── 资源使用一致的命名:{provider}{type}{purpose}
├── 使用 locals 处理计算值和 DRY 表达式
└── 无硬编码值——所有内容参数化或放在 locals 中

状态和后端
├── 配置了远程后端(S3、GCS、Azure Blob、Terraform Cloud)
├── 启用了状态锁定(S3 使用 DynamoDB,其他使用原生)
├── 启用了静态状态加密
├── 状态中不存储密钥(或状态访问受限)
└── 为环境使用工作区或目录隔离

提供者
├── 版本约束使用悲观操作符:~> 5.0
├── 在 terraform {} 块中包含 required_providers 块
├── 为多区域或多账户使用提供者别名
└── 子模块中不包含提供者配置

安全
├── 无硬编码的密钥、密码或口令
├── IAM 遵循最小权限原则
├── 为存储、数据库、密钥启用加密
├── 安全组不过度宽松(敏感端口上无 0.0.0.0/0 入站规则)
└── 敏感变量标记为 sensitive = true

  1. 3. 生成报告
bash python3 scripts/tfmoduleanalyzer.py ./terraform
  1. 4. 运行安全扫描
bash python3 scripts/tfsecurityscanner.py ./terraform

/terraform:module — 模块设计

  1. 1. 确定模块范围
- 单一职责:一个模块 = 一个逻辑分组 - 确定输入(变量)、输出和资源边界 - 决定:扁平模块(单个目录) vs 嵌套模块(调用子模块)
  1. 2. 应用模块设计清单

结构
├── main.tf — 主要资源
├── variables.tf — 所有输入变量,包含描述和类型
├── outputs.tf — 所有输出,包含描述
├── versions.tf — 包含 required_providers 的 terraform {} 块
├── locals.tf — 计算值和命名约定
├── data.tf — 数据源(如果有)
└── README.md — 使用示例和变量文档

变量
├── 每个变量都有:描述、类型、验证(适用时)
├── 敏感值标记为:sensitive = true
├── 为可选设置提供默认值
├── 对相关设置使用对象类型:variable config { type = object({...}) }
└── 使用 validation { condition = ... } 进行验证

输出
├── 输出 ID、ARN、端点——消费者需要的内容
├── 每个输出都包含描述
├── 标记敏感输出:sensitive = true
└── 不输出整个资源——仅输出特定属性

组合
├── 根模块调用子模块
├── 子模块从不调用其他子模块
├── 显式传递值——子模块中无隐藏的数据源查找
├── 仅根模块中包含提供者配置
└── 使用 module name { source = ./modules/name }

  1. 3. 生成模块脚手架
- 输出包含样板代码的文件结构 - 包含变量验证块 - 在适当位置添加生命周期规则

/terraform:security — 安全审计

  1. 1. 代码级审计

| 检查项 | 严重级别 | 修复方案 |
|-------|----------|-----|
| .tf 文件中的硬编码密钥 | 严重 | 使用 sensitive = true 的变量或 vault |
| 包含 * 操作的 IAM 策略 | 严重 | 限定到特定操作和资源 |
| 端口 22/3389 上包含 0.0.0.0/0 的安全组 | 严重 | 限制到已知 CIDR 块或使用 SSM/堡垒机 |
| 未加密的 S3 存储桶 | 高 | 添加 serversideencryption_configuration 块 |
| 公开访问的 S3 存储桶 | 高 | 添加 awss3bucketpublicaccess_block |
| 未加密的 RDS | 高 | 设置 storage_encrypted = true |
| 公开可访问的 RDS | 高 | 设置 publicly_accessible = false |
| 未启用 CloudTrail | 中 | 添加 aws_cloudtrail 资源 |
| 有状态资源缺少 preventdestroy | 中 | 添加 lifecycle { preventdestroy = true } |
| 密钥变量未设置 sensitive = true | 中 | 为密钥变量添加 sensitive = true |

  1. 2. 状态安全审计

| 检查项 | 严重级别 | 修复方案 |
|-------|----------|-----|
| 本地状态文件 | 严重 | 迁移到带加密的远程后端 |
| 未加密的远程状态 | 高 | 在后端启用加密(SSE-S3、KMS) |
| 无状态锁定 | 高 | 为 S3 启用 DynamoDB,为 TF Cloud 启用原生锁定 |
| 所有团队成员可访问状态 | 中 | 通过 IAM 策略或 TF Cloud 团队限制访问 |

  1. 3. 生成安全报告
bash python3 scripts/tfsecurityscanner.py ./terraform python3 scripts/tfsecurityscanner.py ./terraform --output json

工具

scripts/tfmoduleanalyzer.py

用于分析 Terraform 目录结构和模块质量的 CLI 工具。

特性:

  • - 资源和数据源计数
  • 变量和输出分析(缺少描述、类型、验证)
  • 命名约定检查
  • 模块组合检测
  • 文件结构验证
  • JSON 和文本输出

用法:
bash

分析 Terraform 目录


python3 scripts/tfmoduleanalyzer.py ./terraform

JSON 输出

python3 scripts/tfmoduleanalyzer.py ./terraform --output json

分析特定模块

python3 scripts/tfmoduleanalyzer.py ./modules/vpc

scripts/tfsecurityscanner.py

用于扫描 .tf 文件中常见安全问题的 CLI 工具。

特性:

  • - 硬编码密钥检测(AWS 密钥、密码、令牌)
  • 过度宽松的 IAM 策略检测
  • 开放安全组检测(敏感端口上的 0.0.0.0/0)
  • 缺少加密检查(S3、RDS、EBS)
  • 公开访问检测(S3、RDS、EC2)
  • 敏感变量审计
  • JSON 和文本输出

用法:
bash
#

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 terraform-patterns-1776124201 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 terraform-patterns-1776124201 技能

通过命令行安装

skillhub install terraform-patterns-1776124201

下载

⬇ 下载 terraform-patterns v2.1.1(免费)

文件大小: 22.6 KB | 发布时间: 2026-4-14 11:38

v2.1.1 最新 2026-4-14 11:38
v2.1.1: optimization, reference splits
返回顶部