mcpField
T
terraform-best-practices

terraform-best-practices

github.com/terramate-ioクラウド・DevOps35401 回インストール38 週間前に更新
リポジトリ

terraform-best-practices について

TerraformとInfrastructure as Codeに取り組むチーム向けの実践ガイドです。優先度付きのルールで、セキュリティ、状態管理、モジュール、テストを扱います。

主な機能

  1. 0110カテゴリの実践ルール
  2. 02影響度順に並んだルール
  3. 03誤りと正しいコード例
  4. 04セキュリティ、状態、テストの解説

活用シーン

  1. 01Terraformモジュールと設定の作成
  2. 02インフラコードのセキュリティレビュー
  3. 03TerraformまたはOpenTofuコードのリファクタリング
  4. 04チームのワークフローとガバナンスの整備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/terramate-io/agent-skills --skill terraform-best-practices

インストール後、Claude Code で/terraform-best-practicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
rules/
language-data-sources.md
language-dynamic-blocks.md
language-linting.md
language-locals.md
language-no-heredoc-json.md
module-composition.md
module-naming.md
module-registry.md
module-single-responsibility.md
module-versioning.md
org-access-control.md
org-audit-logging.md
org-change-workflow.md
org-version-control.md
org-workspaces.md
output-descriptions.md
output-no-secrets.md
perf-debug.md
perf-parallelism.md
provider-version-constraints.md
resource-count-vs-foreach.md
resource-immutable.md
resource-lifecycle.md
resource-naming.md
resource-tagging.md
security-credentials.md
security-iam-least-privilege.md
security-no-hardcoded-secrets.md
state-import.md

詳細

Terraform のベストプラクティス

Terramate が管理する、Terraform と Infrastructure as Code の包括的な最適化ガイドです。10 のカテゴリにわたる 37 のルールが含まれており、自動リファクタリングとコード生成を支援するため、影響度の高い順に優先順位が付けられています。

適用するタイミング

次の場合に、これらのガイドラインを参照してください。

  • 新しい Terraform モジュールや設定を作成するとき
  • インフラストラクチャのパターン(AWS、GCP、Azure など)を実装するとき
  • セキュリティや信頼性に関する問題についてコードをレビューするとき
  • 既存の Terraform/OpenTofu コードをリファクタリングするとき
  • State 管理とパフォーマンスを最適化するとき
  • チームのワークフローとガバナンスを設定するとき

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1組織とワークフローCRITICALorg-
2State 管理CRITICALstate-
3セキュリティのベストプラクティスCRITICALsecurity-
4モジュール設計HIGHmodule-
5リソースの整理MEDIUM-HIGHresource-
6変数と出力のパターンMEDIUMvariable-、output-
7言語のベストプラクティスMEDIUMlanguage-
8プロバイダーの設定MEDIUMprovider-
9パフォーマンスの最適化LOW-MEDIUMperf-
10テストと検証LOWtest-

クイックリファレンス

1. 組織とワークフロー(CRITICAL) - 5 つのルール
  • org-version-control - すべての Terraform コードをバージョン管理する
  • org-workspaces - 設定ごとに環境別の Workspace を 1 つずつ用意する
  • org-access-control - 誰がどのインフラストラクチャを変更できるかを管理する
  • org-change-workflow - インフラストラクチャの変更に正式なプロセスを設ける
  • org-audit-logging - すべてのインフラストラクチャ変更を追跡する
2. State 管理(CRITICAL) - 3 つのルール
  • state-remote-backend - 常にリモート State バックエンドを使用する
  • state-locking - 破損を防ぐため、State ロックを有効にする
  • state-import - 既存のインフラストラクチャを Terraform にインポートする
3. セキュリティのベストプラクティス(CRITICAL) - 3 つのルール
  • security-no-hardcoded-secrets - コードにシークレットをハードコードしない
  • security-credentials - 適切な認証情報管理(OIDC、Vault、IAM ロール)を使用する
  • security-iam-least-privilege - 最小権限の原則に従う
4. モジュール設計(HIGH) - 5 つのルール
  • module-single-responsibility - 論理コンポーネントごとにモジュールを 1 つ用意する
  • module-naming - 一貫した命名規則(terraform--)を使用する
  • module-versioning - すべてのモジュール参照にバージョンを指定する
  • module-composition - 積み木のようにモジュールを組み合わせる
  • module-registry - 既存のコミュニティ/共有モジュールを使用する
5. リソースの整理(MEDIUM-HIGH) - 5 つのルール
  • resource-naming - 一貫した命名規則を使用する
  • resource-tagging - コスト追跡のため、すべてのリソースにタグを付ける
  • resource-lifecycle - ライフサイクルブロック(prevent_destroy、ignore_changes)を使用する
  • resource-count-vs-foreach - count より for_each を優先する
  • resource-immutable - イミュータブルなインフラストラクチャのパターンを優先する
6. 変数と出力のパターン(MEDIUM) - 6 つのルール
  • variable-types - 具体的な型、肯定形の命名、nullable を使用する
  • variable-validation - 早期にエラーを検出するため、検証ルールを追加する
  • variable-sensitive - シークレットを sensitive としてマークし、デフォルト値を設定しない
  • variable-descriptions - すべての変数に説明を記述する
  • output-descriptions - すべての出力に説明を記述する
  • output-no-secrets - シークレットを直接出力しない
7. 言語のベストプラクティス(MEDIUM) - 5 つのルール
  • language-no-heredoc-json - HEREDOC ではなく jsonencode/yamlencode を使用する
  • language-locals - 複雑な式に名前を付けるため locals を使用する
  • language-linting - terraform fmt と tflint を実行する
  • language-data-sources - 値をハードコードせず、データソースを使用する
  • language-dynamic-blocks - DRY なコードにするため、dynamic ブロックを使用する
8. プロバイダーの設定(MEDIUM) - 1 つのルール
  • provider-version-constraints - プロバイダーのバージョンを固定する
9. パフォーマンスの最適化(LOW-MEDIUM) - 2 つのルール
  • perf-parallelism - 大規模なデプロイでは並列処理を調整する
  • perf-debug - トラブルシューティングのため、デバッグログを有効にする
10. テストと検証(LOW) - 2 つのルール
  • test-strategies - テストピラミッド(検証、リント、計画、統合)
  • test-policy-as-code - ポリシーチェックの実装(OPA、Checkov、tfsec)

使い方

詳しい説明とコード例については、個々のルールファイルをお読みください。

rules/state-remote-backend.md
rules/security-no-hardcoded-secrets.md
rules/module-versioning.md

各ルールファイルには、次の内容が含まれています。

  • 重要な理由の簡単な説明
  • 説明付きの誤ったコード例
  • 説明付きの正しいコード例
  • 追加の背景情報と参考資料

完全版のドキュメント

すべてのルールを展開した完全なガイドは、AGENTS.md をご覧ください。

コメント