【Terraform】defaultワークスペースを使わせない方法
Terraformでは、デフォルトで default というワークスペースが存在しますが、これは環境を意図せず共有してしまうリスクがあるため、チーム運用では使用を避けたいケースが多いです。
📌 問題:default ワークスペースの危険性
Terraformを複数環境(dev/stg/prod)で運用する際、ワークスペースを使って状態ファイルを分離するのが一般的です。
しかし、何も指定しないと default ワークスペースが使用されてしまいます。
| |
この状態で terraform apply を実行してしまうと、意図しないリソース操作が発生する恐れがあります。
✅ 解決策:lifecycle.precondition で明示的にブロック
Terraform v1.2以降では、リソースに対して前提条件(precondition)を設定できます。
これを使って、default ワークスペースでの操作を事前に失敗させることが可能です。
実装例
| |
実行結果(例)
| |
💡 メリット
| 項目 | 内容 |
|---|---|
| 🔐 安全性 | Plan段階で default をブロックできる |
| 🧼 シンプルさ | ダミーの null_resource 1つで完結 |
| ⚙️ 移植性 | どのProviderでも使える汎用的な方法 |
| 🧪 Terraformバージョン | v1.2以降で利用可能(2022年5月リリース) |