Google Cloud 基礎コース / Chapter 04

Terraform 実行環境とサービス アカウント借用

Terraform 用の権限を人のローカル鍵へ置かず、gcloud のログインとサービス アカウントの権限借用で実行する章。state を GCS に残す理由もつながる。

TL;DR

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

01実行者を分ける

人は Google アカウントで認証し、Terraform は専用サービス アカウントとして操作する。

実行者を分けるの構成図
図の矢印は、人は Google アカウントで認証し、Terraform は専用サービス アカウントとして操作するという接続または判断を示す。

Terraform は構成を宣言し、state は実リソースとの対応を保持する。

02state を共有可能にする

GCS バケットに state を置き、ローカル PC だけに状態を閉じ込めない。

state を共有可能にするの構成図
図の矢印は、GCS バケットに state を置き、ローカル PC だけに状態を閉じ込めないという接続または判断を示す。

サービス アカウント鍵の配布より、ユーザー認証からの impersonation が鍵管理を減らせる。

03借用して実行する

Token Creator 等の必要な委任を絞り、実行時だけ Terraform 権限を使う。

借用して実行するの構成図
図の矢印は、Token Creator 等の必要な委任を絞り、実行時だけ Terraform 権限を使うという接続または判断を示す。

state バケット、provider、権限借用を最初に整えると以降の適用が再現可能になる。

結論

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