Terraform 実行環境とサービス アカウント借用
Terraform 用の権限を人のローカル鍵へ置かず、gcloud のログインとサービス アカウントの権限借用で実行する章。state を GCS に残す理由もつながる。
TL;DR
- Terraform は構成を宣言し、state は実リソースとの対応を保持する。
- サービス アカウント鍵の配布より、ユーザー認証からの impersonation が鍵管理を減らせる。
- state バケット、provider、権限借用を最初に整えると以降の適用が再現可能になる。
01実行者を分ける
人は Google アカウントで認証し、Terraform は専用サービス アカウントとして操作する。

Terraform は構成を宣言し、state は実リソースとの対応を保持する。
02state を共有可能にする
GCS バケットに state を置き、ローカル PC だけに状態を閉じ込めない。

サービス アカウント鍵の配布より、ユーザー認証からの impersonation が鍵管理を減らせる。
03借用して実行する
Token Creator 等の必要な委任を絞り、実行時だけ Terraform 権限を使う。

state バケット、provider、権限借用を最初に整えると以降の適用が再現可能になる。
結論
- Terraform は構成を宣言し、state は実リソースとの対応を保持する。
- サービス アカウント鍵の配布より、ユーザー認証からの impersonation が鍵管理を減らせる。
- state バケット、provider、権限借用を最初に整えると以降の適用が再現可能になる。