【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月リリース) |