Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraform での Google Cloud IAM 管理 について考える

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Terraform での Google Cloud IAM 管理 について考える

クラウドネイティブ分科会 Meetup #22
0ベースから学ぶ、クラウドネイティブの春!での登壇内容
https://jaguer-cloud-native.connpass.com/event/387350/

Avatar for Sota Takaki

Sota Takaki

April 14, 2026

More Decks by Sota Takaki

Other Decks in Programming

Transcript

  1. Terraform での Google Cloud IAM 管理 について考える 株式会社スリーシェイク Sreake事業部 髙木

    創太 Copyright © 3-shake, Inc. All Rights Reserved. 1 クラウドネイティブ分科会 Meetup #22 0ベースから学ぶ、クラウドネイティブの春! 2026-04-14
  2. • 名前 ◦ 髙木 創太 • 所属 ◦ 株式会社スリーシェイク SRE

    • 一言 ◦ 最近 Zenn で記事を書き始め、フォロワーさんのいな い名刺がわりの X アカウントで活動記録を残し始めま した。 ▪ X: https://x.com/stkk_12 ▪ Zenn: https://zenn.dev/stkk ◦ 全てこのアフロでプロフィール画像を統一していま す。よろしくお願いします。 Copyright © 3-shake, Inc. All Rights Reserved. 2 自己紹介
  3. Terraform にて Google Cloud の IAM を管理するリソースは、 以下の3つ存在します。 • iam_policy

    • iam_binding • iam_member それぞれについてみていきます。 Copyright © 3-shake, Inc. All Rights Reserved. IAM 管理に使える 3 つのリソース 5
  4. ポリシー全体を管理 ポリシー全体を 1 つのリソースで完全に上書き • 管理スコープ: 全体 • コード外の変更: 全て除外

    メリット • IAM の全体像を宣言できる デメリット • ポリシー全体を上書き → 他設定を破壊するリスク • Google 内部のシステムバインディングも消える危険 • 複数チームでの分割管理が困難 Copyright © 3-shake, Inc. All Rights Reserved. iam_policy 6
  5. ロール単位で管理 ロール単位でメンバー一覧を上書き • 管理スコープ: ロール単位 • コード外の変更: 該当ロールのみ上書き メリット •

    ロール単位でメンバー一覧が集約されて見やすい • コードに書かれたメンバーだけが存在することを保証 デメリット • 同一ロールを複数 state で管理すると競合 • Terraform 外で付与したメンバーが次の apply で除外 Copyright © 3-shake, Inc. All Rights Reserved. iam_binding 7
  6. 個別で管理 メンバーを 1 件ずつ個別に追加 • 管理スコープ: 個別 • コード外の変更: 影響しない

    メリット • Additive なので他設定と競合しない • 複数 state や複数チームで安全に分担できる デメリット • コード外のメンバーが存在しても検知できない Copyright © 3-shake, Inc. All Rights Reserved. iam_member 8
  7. • 統制力: iam_policy > iam_binding > iam_member • 安全性: iam_member

    > iam_binding > iam_policy Copyright © 3-shake, Inc. All Rights Reserved. 3 つのリソースの比較 9 リソースタイプ 管理スコープ コード外の変更に対する挙動 iam_policy ポリシー全体 コードにないバインディングは すべて除外 iam_binding ロール単位 該当ロールのメンバーリスト を上書き iam_member 個別の紐付け 他の紐付けに影響しない
  8. project レベル IAM resource レベル IAM Copyright © 3-shake, Inc.

    All Rights Reserved. 方針の全体像 16 方針 リソース 基本 iam_member 例外 iam_binding 原則不使用 iam_policy 方針 リソース 基本 iam_binding 例外 iam_member 原則不使用 iam_policy 影響範囲が大きい→安全な iam_member を基本に 影響範囲が限定的 → 厳密な iam_binding を基本に
  9. • IAM 管理に使える 3 つのリソースを整理 ◦ iam_policy ◦ iam_binding ◦

    iam_member • IAM 管理について考える ◦ project レベル ◦ resource レベル 要件・チームの状況・Terraform 構成によって最適解は変わるので、 各リソースの特徴をしっかり把握し、適切な管理方法を見つけていきましょう! Copyright © 3-shake, Inc. All Rights Reserved. まとめ 18
  10. Copyright © 3-shake, Inc. All Rights Reserved. ご清聴ありがとうございました! 19 本発表の詳細は

    zenn にて投稿していますので、ご興味あればぜひご覧ください ...! https://zenn.dev/stkk/articles/02a4cc7815ae06