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 パターン

カテゴリ: エンジニアリング ドメイン: Infrastructure as Code

概要

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重大リファクタリングが必須です

コメント