mcpField
T
terraform-patterns

terraform-patterns

github.com/borghei云与 DevOps1.0k63 次安装6 天前更新
代码仓库

关于 terraform-patterns

terraform-patterns 是用于检查 Terraform 模块与配置的技能,涵盖模块质量分析和安全扫描,并支持严重性阈值及 CI 所需的 JSON 输出。

主要功能

  1. 01模块复杂度评分
  2. 02依赖与变量分析
  3. 03安全错误配置扫描
  4. 04JSON 报告与严重性门槛

适用场景

  1. 01重构前评估模块结构
  2. 02查找开放端口或公开存储
  3. 03检查加密、IAM 与日志设置
  4. 04根据扫描结果设置 PR 门禁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borghei/claude-skills --skill terraform-patterns

安装后在 Claude Code 中输入/terraform-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
main.tf
references/
terraform-patterns.md
scripts/
tf_module_analyzer.py
tf_security_scanner.py

详细介绍

Terraform 模式

**类别:**工程 **领域:**基础设施即代码

概述

Terraform 模式技能可自动分析 Terraform 配置中的模块复杂度、安全配置错误和基础设施最佳实践。在问题进入生产环境之前,它会发现开放端口、公开存储桶、缺少加密以及权限过宽的 IAM 策略。

先确认

分析或扫描之前,请确认以下输入。如果有任何一项未知或含糊不清,请提问——不要自行假设:

  • 目标路径 — 要分析的模块或环境目录(--path;分析对象)
  • 任务 — 模块复杂度/质量分析,还是安全配置错误扫描(决定使用 tf_module_analyzer 还是 tf_security_scanner)
  • 最低严重性/门槛 — 发现问题的严重性门槛,以及是否会阻止 PR(--min-severity;会改变报告和 CI 的通过/失败结果)

停止规则:只询问最可能影响输出的 2-3 项。如果用户说“先起草即可”,则继续操作,并在产出内容顶部列出你的假设。

快速开始

# Analyze Terraform module structure and complexity
python scripts/tf_module_analyzer.py --path ./modules/vpc

# Scan for security misconfigurations
python scripts/tf_security_scanner.py --path ./environments/production

# JSON output for CI pipelines
python scripts/tf_security_scanner.py --path . --format json

# Recursive analysis of all modules
python scripts/tf_module_analyzer.py --path . --recursive

工具概览

tf_module_analyzer.py

分析 Terraform 模块的复杂度、结构、依赖关系和文档质量。

功能说明
复杂度评分根据资源数量、变量数量和嵌套层级为模块评分
依赖关系映射映射模块依赖关系和数据源用法
变量分析检查是否缺少类型、默认值和说明
输出完整性验证输出文档和覆盖范围
命名约定检查资源和变量的命名模式
tf_security_scanner.py

扫描 Terraform 配置中的安全配置错误和合规违规。

功能说明
开放端口检测安全组中的 0.0.0.0/0 CIDR
公开访问标记公开的 S3 存储桶、数据库和实例
加密缺失检查静态和传输中的数据是否缺少加密
IAM 权限过宽识别通配符操作和范围过宽的策略
日志缺失验证 CloudTrail、流日志和访问日志

工作流

安全审查工作流
  1. 扫描 - 使用 tf_security_scanner.py 扫描所有环境
  2. 分类处理 - 优先处理严重问题(公开数据、开放访问)
  3. 修复 - 根据每项发现应用建议的修复方案
  4. 验证 - 重新扫描,确认问题已解决
  5. 设门禁 - 将扫描器添加到 PR 检查中,持续执行安全要求
模块质量工作流
  1. 分析 - 对每个模块运行 tf_module_analyzer.py
  2. 评分 - 查看复杂度评分,找出超过阈值的模块
  3. 重构 - 拆分复杂度评分高于 70/100 的模块
  4. 编写文档 - 补充缺失的变量和输出说明
  5. 标准化 - 统一命名和文件组织方式
CI 集成
# Security gate
python scripts/tf_security_scanner.py --path . --format json --min-severity high
if [ $? -ne 0 ]; then
  echo "Security scan failed - blocking merge"
  exit 1
fi

# Module quality check
python scripts/tf_module_analyzer.py --path . --recursive --format json

参考文档

常见模式速查

模块结构
modules/vpc/
  main.tf           # Primary resources
  variables.tf      # Input variables with descriptions
  outputs.tf        # Module outputs
  versions.tf       # Required providers and versions
  locals.tf         # Local values and computed expressions
安全检查清单
资源检查项规则
安全组不允许 0.0.0.0/0 入站限制为已知 CIDR
S3 存储桶不允许公开 ACL改用存储桶策略
RDS不允许公开访问设置 publicly_accessible = false
EBS/S3/RDS启用加密添加加密配置
IAM不允许通配符操作使用最小权限策略
CloudTrail在所有区域启用is_multi_region_trail = true
VPC启用流日志创建流日志资源
复杂度评分
评分评级操作
0-30低无需操作
31-60中考虑拆分
61-80高应进行重构
81-100严重必须重构

评论

支持 Markdown