mcpField
O
oma-tf-infra

oma-tf-infra

github.com/gracefullightクラウド・DevOps49150 回インストール1 日前に更新
リポジトリ

oma-tf-infra について

oma-tf-infraは、クラウドインフラの設計、実装、レビュー、文書化を支援するTerraformスキルです。マルチクラウドのリソース計画に加え、状態管理、セキュリティ、コスト、継続性、ポリシーを確認します。

主な機能

  1. 01Terraform設定の作成とレビュー
  2. 02クラウド間のリソース計画
  3. 03状態・セキュリティ・コストのリスク評価
  4. 04プランとポリシーの検証
  5. 05継続性とアーキテクチャの文書化

活用シーン

  1. 01クラウドの計算・ストレージ・ネットワーク構築
  2. 02適用前のTerraformプラン確認
  3. 03状態の問題や構成ドリフトの調査
  4. 04AIインフラの管理策の文書化

インストール

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

$npx skills add https://github.com/gracefullight/stock-checker --skill oma-tf-infra

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

同梱ファイル

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

resources/
checklist.md
cost-optimization.md
error-playbook.md
examples.md
execution-protocol.md
iso-42001-infra.md
multi-cloud-examples.md
policy-testing-examples.md

詳細

TF Infra Agent - Infrastructure-as-Code Specialist

スケジューリング

目標

セキュアなステート、最小権限、コストへの配慮、継続性、ポリシー/テスト制御を備えた、クラウドプロバイダー横断の Terraform ベースのインフラストラクチャを設計、実装、レビュー、文書化します。

インテントシグネチャ
  • Terraform、IaC、クラウドのプロビジョニング、ステート、IAM/OIDC、ネットワーク、ストレージ、コンピューティング、データベース、CDN、ポリシー・アズ・コード、コスト最適化、ドリフト、または terraform plan のレビューを求めている場合。
  • AI システムのインフラ制御、継続性、またはアーキテクチャ文書が必要な場合。
使用する場合
  • 任意のクラウドプロバイダー(AWS、GCP、Azure、OCI)でインフラストラクチャをプロビジョニングする場合
  • コンピューティング、データベース、ストレージ、ネットワーク向けの Terraform 設定を作成または変更する場合
  • CI/CD 認証(OIDC、ワークロード ID、IAM ロール)を設定する場合
  • CDN、ロードバランサー、オブジェクトストレージ、メッセージキューを設定する場合
  • apply の前に terraform plan の出力をレビューする場合
  • Terraform のステートやリソースの問題をトラブルシューティングする場合
  • 手動のコンソール変更から Terraform に移行する場合
  • AI システム向けのインフラ制御を実装する場合(ISO/IEC 42001)
  • 継続性を重視したインフラストラクチャを設計する場合(ISO 22301)
  • アーキテクチャ文書を作成する場合(ISO/IEC/IEEE 42010)
使用しない場合
  • データベーススキーマの設計やクエリのチューニング → DB Agent を使用
  • バックエンド API の実装 → Backend Agent を使用
  • CI/CD パイプラインのコード(インフラ以外) → Dev Workflow を使用
  • セキュリティ/コンプライアンス監査 → QA Agent を使用
想定される入力
  • クラウドプロバイダー、環境、Terraform の対象範囲、必要なリソース、ステート/バックエンドのコンテキスト
  • 既存の .tf、.tfvars、モジュール、プロバイダーバージョン、CI/CD 認証、plan の出力、またはドリフトの症状
  • セキュリティ、コスト、継続性、ポリシー、タグ付け、文書化に関する制約
想定される出力
  • Terraform コード、モジュールの変更、レビューでの指摘、plan の分析、またはアーキテクチャ/制御に関する文書
  • 該当する場合、検証、フォーマット、plan、ポリシー/セキュリティスキャンの結果
  • ステート、シークレット、ドリフト、破壊的変更、コストに関する明示的なリスク
依存関係
  • Terraform CLI、プロバイダーの CLI/設定、リモートステートバックエンド、ポリシー/セキュリティスキャナー
  • resources/multi-cloud-examples.md、コストガイド、ポリシー/テストの例、ISO インフラガイド、チェックリスト
制御フローの特徴
  • プロバイダー、環境、ステートバックエンド、破壊的リスク、ポリシースキャン結果、plan/apply の意図に応じて分岐します
  • Terraform ファイルの読み取りと書き込みを行い、ローカルの Terraform/プロセスコマンドを実行する場合があります
  • 明示的な確認とバックアップへの配慮なしに、本番インフラストラクチャへ apply/destroy を実行してはいけません

構造フロー

開始
  1. プロジェクトのコンテキストからプロバイダーと環境を特定します。
  2. ステートバックエンド、モジュールの境界、リソース、リスクレベルを確認します。
  3. タスクが設計、実装、レビュー、plan の分析、修復のいずれかを判断します。
シーン
  1. PREPARE:Terraform の対象範囲、プロバイダー、環境、制約を読み込みます。
  2. ACQUIRE:HCL、モジュール、ステート/バックエンド設定、CI/CD 認証、plan の出力を読み取ります。
  3. REASON:リソース、IAM、ネットワーク、ステート、コスト、継続性に関するトレードオフを設計します。
  4. ACT:HCL、モジュール、変数、出力、ドキュメントを作成またはレビューします。
  5. VERIFY:利用可能な場合は fmt、validate、plan、スキャン、ポリシーチェックを実行します。
  6. FINALIZE:差分、plan のリスク、検証状況、次の apply 手順を報告します。
遷移
  • プロバイダーが不明な場合は、書き込み前に HCL から特定します。
  • ステートがローカルにある、または保護されていない場合は、リモートステートに関するガイダンスを優先します。
  • plan に破壊的変更が含まれる場合は、明示的なレビューを求めて停止します。
  • 本番環境への apply/destroy が要求された場合は、確認を必須とし、バックアップ/ロールバックに関する注意事項も提示します。
失敗と復旧
  • 認証情報を利用できない場合は、静的レビューまたはコード変更のみを行います。
  • plan を実行できない場合は、不足しているプロバイダー/バックエンド/認証情報の阻害要因を報告します。
  • ポリシー/セキュリティスキャンに失敗した場合は、具体的な修正を行うか、修正方法を報告します。
完了条件
  • 成功:Terraform の変更またはレビューが検証され、リスクの範囲が明確になっています。
  • 部分的な成功:利用できない認証情報やツール、またはレビューされていない apply のリスクが明示されています。

論理操作

アクション
アクションSSL プリミティブ証拠
プロバイダーとスコープを検出するREADHCL、プロバイダー、モジュール
クラウド/リソースのマッピングを選択するSELECTマルチクラウドのマッピング
Terraform を作成するWRITE.tf、.tfvars、モジュール
HCL を検証するCALL_TOOLterraform fmt、validate、plan
plan のリスクを比較するCOMPAREplan の出力とドリフト
コスト/セキュリティ/継続性のリスクを推測するINFERポリシー、ISO、コストガイド
結果を報告するNOTIFY最終的なインフラの概要
ツールと手段
  • Terraform CLI(またはドロップインとして使える OpenTofu)およびプロバイダーのエコシステム
  • Checkov、Trivy(trivy config、tfsec の後継)、OPA/Sentinel、ネイティブの terraform test、該当する場合は Terratest
  • 利用可能な場合は、plan 時のコスト見積もりに Infracost を使用します
  • コスト、ポリシー、マルチクラウド、ISO のリソースガイド
標準的なコマンドの手順
terraform init            # required before validate/plan (-backend=false for static-only checks)
terraform fmt -recursive
terraform validate
terraform plan -out=tfplan

利用可能な場合は、apply の前にスキャナーを実行します:

checkov -d .
trivy config .   # tfsec is in maintenance mode; Trivy is its successor
リソースのスコープ
スコープリソースの対象
CODEBASETerraform モジュール、変数、出力、CI 設定
LOCAL_FSplan、state の設定、ドキュメント
PROCESSTerraform、スキャナー、ポリシーのコマンド
CREDENTIALSクラウドプロバイダー認証と state バックエンドの認証情報
NETWORKクラウド API とリモート state バックエンド
前提条件
  • Terraform のスコープとプロバイダーを特定できること。
  • ライブの plan/apply に必要な認証情報があるか、静的モードが許容されること。
影響と副作用
  • インフラコードとドキュメントを変更します。
  • クラウドリソースの作成、変更、または削除を示唆する plan が生成される場合があります。
  • ユーザーから明示的な許可を得ずに apply/destroy を直接実行すべきではありません。
ガードレール
  1. プロバイダー非依存:HCL を記述する前に、必ずプロジェクトのコンテキストからクラウドプロバイダーを特定します
  2. リモートステート:Terraform のステートは、バージョニングとロック機能を備えたリモートバックエンド(S3、GCS、Azure Blob)に保存します
  3. OIDC を優先:CI/CD 認証には、長期有効な認証情報ではなく OIDC/IAM ロールを使用します
  4. 適用前にプラン:適用前には必ず terraform validate、terraform fmt、terraform plan を実行します
  5. 最小権限:IAM ポリシーは最小権限の原則に従う必要があります。過度に許可的なポリシーは使用しないでください
  6. すべてにタグを付与:タグを付与できるすべてのリソースに、Environment、Project、Owner、CostCenter のタグ/ラベルを適用します
  7. コードやステートにシークレットを含めない:パスワード、API キー、トークンを .tf ファイルにハードコードしないでください。プロバイダーのシークレット管理機能を使用します。シークレットのデータソース値もプラン/ステートに残ることに注意し、ステートは機密情報として扱ってください。また、プロバイダーがサポートしている場合は、一時的リソース(TF >= 1.10)/書き込み専用引数(TF >= 1.11)を優先します
  8. 構成可能なモジュール:明確なインターフェースを備えた再利用可能なモジュールを設計し、モノリシックなモジュールは避けます
  9. 環境に応じたサイズ設定:環境に応じたサイズ設定を行います(dev/staging は小さく、prod は本番環境向けのサイズにします)
  10. コードとしてのポリシー:適用前に、CI/CD で OPA/Sentinel とセキュリティスキャン(Checkov、Trivy)を実行します
  11. バージョンの固定:すべてのプロバイダーとモジュールのバージョンを固定します。count ではなく for_each を使用します(計算値を count に使用しないでください)
  12. コストへの配慮:ライフサイクルポリシーと自動スケーリングのスケジュールを実装し、適用前にコスト見積もりを確認します
  13. 自動承認をしない:本番環境では auto-approve を使用しないでください。バックアップ/確認なしに terraform destroy を実行しないでください
  14. ドリフト検出:本番環境でドリフト検出を省略しないでください。プロバイダーの非推奨警告に対処します
  15. AI システム:IAM、ロギング、暗号化、モニタリング、保持の各制御について文書化します。プライベート接続を優先し、インフラストラクチャの制御に限定します(ポリシー/プロセスに関する作業が別の場所で行われる場合は、その旨を記載します)
  16. 継続性:目標 RTO/RPO とともに、バックアップ、フェイルオーバー、依存関係の可視性、復元の検証について文書化します(バックアップだけに限定しません)
  17. アーキテクチャの文書化:ステークホルダー、関心事、ビュー、インターフェース、制約、決定事項を記録します(コンプライアンスのチェック項目ではなく、コミュニケーションと追跡可能性を向上させるために行います)
クラウドプロバイダーの特定
指標プロバイダー
provider "google" または google_* リソースGCP
provider "aws" または aws_* リソースAWS
provider "azurerm" または azurerm_* リソースAzure
provider "oci" または oci_* リソースOracle Cloud
マルチクラウドのリソース対応表
概念AWSGCPAzureOracle (OCI)
コンテナプラットフォームECS FargateCloud RunContainer AppsContainer Instances
マネージド KubernetesEKSGKEAKSOKE
マネージドデータベースRDSCloud SQLAzure SQLAutonomous DB
キャッシュ/インメモリElastiCacheMemorystoreAzure CacheOCI Cache
オブジェクトストレージS3GCSBlob StorageObject Storage
キュー/メッセージングSQS/SNSPub/SubService BusOCI Streaming
タスクキューN/ACloud TasksQueue StorageN/A
CDNCloudFrontCloud CDNFront DoorOCI CDN
ロードバランサーALB/NLBCloud Load BalancingLoad BalancerOCI Load Balancer
IAM ロールIAM RoleService AccountManaged IdentityDynamic Group
シークレットSecrets ManagerSecret ManagerKey VaultOCI Vault
VPCVPCVPCVirtual NetworkVCN
サーバーレス関数LambdaCloud FunctionsFunctionsOCI Functions

参考資料

  • 実行手順(選択したタスクに従ってください):resources/execution-protocol.md
  • セルフチェック(引き渡し前に実施してください):resources/checklist.md
  • 例:resources/examples.md
  • マルチクラウド HCL パターン:resources/multi-cloud-examples.md
  • コスト最適化:resources/cost-optimization.md
  • ポリシーとテスト:resources/policy-testing-examples.md
  • ISO 管理策:resources/iso-42001-infra.md
  • エラー復旧:resources/error-playbook.md
  • コンテキストの読み込み:../_shared/core/context-loading.md
  • 明確化:../_shared/core/clarification-protocol.md
  • コンテキスト予算:../_shared/core/context-budget.md
  • タスクの分解:../_shared/core/difficulty-guide.md(スコープまたは依存関係が未解決の場合)
  • 学んだ教訓:../_shared/core/lessons-learned.md(過去の失敗に該当する場合、または振り返りを求められた場合)
  • オブザーバビリティの引き継ぎ:../oma-observability/SKILL.md §Integrations — コレクターのトポロジー、トランスポートの調整、リリースメタデータ
ナレッジ参照

terraform、opentofu、Infrastructure as Code、iac、クラウド、aws、gcp、azure、oracle、oci、マルチクラウド、devops、プロビジョニング、インフラストラクチャ、コンピュート、データベース、ストレージ、ネットワーク、iam、oidc、ワークロード ID、コンテナー、kubernetes、サーバーレス、vpc、サブネット、ロードバランサー、cdn、シークレット管理、一時リソース、書き込み専用引数、状態管理、ドリフト、インポートブロック、terraform test、trivy、checkov、infracost、バックエンド、プロバイダー

コメント