Cloud Service
Resource Manager
組織・フォルダ・プロジェクトの階層でリソースをまとめて管理し、IAM や組織ポリシーの継承基盤になる Google Cloud の土台。AWS Organizations に相当。
- 1.組織→フォルダ→プロジェクトの階層でリソースを束ねる管理基盤。
- 2.上位の IAM や組織ポリシーが下位へ継承され、一括統制できる。
- 3.プロジェクトが課金・API・IAM の境界。利用自体は無料。
解決する課題
プロジェクトが増えても、全社共通のルールと権限を破綻させずに統制できます。
- プロジェクトが数百に増え、権限や設定を一つずつ管理したくない → 上位階層でまとめて付与し継承させたい
- 部門・環境(本番/検証)ごとに境界を分けて整理したい
- 全社で「外部公開を禁止」などのガードレールを一括で効かせたい
- 退職・削除したプロジェクトを安全に復旧/恒久削除したい
- 課金・請求の単位を組織構造に合わせて管理したい
主要概念と用語
- 組織(Organization): リソース階層の最上位ノード。Google Workspace または Cloud Identity のドメインに 1 対 1 で対応し、全社のルート境界になる。AWS Organizations の管理アカウント+組織ルートに近い
- フォルダ(Folder): 組織配下でプロジェクトをグループ化する中間ノード。部門・チーム・環境ごとの分割に使う。ネスト(入れ子)が可能。AWS の **OU(組織単位)**に相当
- プロジェクト(Project): リソースを実際に入れる基本コンテナで、API 有効化・課金・IAM・割り当ての境界。AWS のアカウントに近い役割を担う
- リソース階層(Resource Hierarchy): 組織 → フォルダ → プロジェクト → リソースという親子構造。IAM ロールと組織ポリシーはこの階層に沿って上位から下位へ継承される
- プロジェクト識別子: 一意で不変のプロジェクト ID、グローバルに不変の数値プロジェクト番号、変更可能な表示名の 3 種がある
- 組織ポリシー(Organization Policy): 階層のノードにアタッチして挙動を制約するガードレール。Resource Manager が管理面を提供する
- タグ(Tags): キーとバリューの組をリソースに付与し、条件付き IAM や組織ポリシーの判定に使えるメタデータ
- ライエン(Liens): プロジェクトの誤削除を防ぐためのロック
仕様・制限・クォータ
- グローバルサービス(リージョンに依存せず、階層は全リージョン共通で参照される)
- プロジェクト ID はグローバルに一意かつ不変。一度作ると ID 自体は変更できず、削除後も一定期間は再利用を予約される
- フォルダはネスト可能だが、階層の深さ・1 ノード配下の数などに上限がある。プロジェクト数も組織あたりの割り当てで管理され、引き上げは申請が必要
- 組織がなくてもプロジェクトは作れるが、フォルダ・組織ポリシー・継承による一括統制は組織があって初めてフル活用できる
- プロジェクト削除は即時恒久削除ではなく、一定の保留期間つきソフト削除で、その間は復元できる
- API 名は
cloudresourcemanager.googleapis.com。操作には対応する IAM ロール(例:roles/resourcemanager.projectCreator、roles/resourcemanager.folderAdminなど)が必要
内部の仕組み
Resource Manager は各リソースの親(parent)参照を保持し、組織・フォルダ・プロジェクトのツリーを構成します。IAM の許可ポリシーや組織ポリシーを評価する際、各サービスはこのツリーを下位から上位へさかのぼって有効な設定を合成します。
- リソースに対する操作要求が来る
- そのリソース → プロジェクト → フォルダ → 組織と親をたどって継承された IAM バインディングと組織ポリシーを集約
- 合成結果に基づき許可・拒否やガードレールの制約を適用
上位ノードで付与した IAM ロールや組織ポリシーは、下位で無効化できないのが原則です。フォルダで与えた権限を配下のプロジェクト側で外すことはできず、想定外の広い権限が継承されていないか、階層の上の方を必ず確認してください。組織ポリシーは継承を上書きする設定も選べますが、IAM の許可は加算(継承された付与は効き続ける)です。
設計パターン / ベストプラクティス
- 最初に組織を用意する: Cloud Identity / Workspace で組織ノードを作り、フォルダ・組織ポリシー・継承を使える土台を整える
- フォルダで意味のある境界を切る: 部門・チーム・環境(本番/ステージング/検証)でフォルダを分け、共通ルールは上位に、個別設定は下位に置く
- 環境ごとにプロジェクトを分離: 本番と非本番を別プロジェクトにし、課金・割り当て・障害の影響範囲(blast radius)を分離する
- 権限はグループ+上位階層で: 個人ではなくグループに、できるだけ高い適切なノードでロールを付与し、入退社や組織変更に強くする
- 組織ポリシーでガードレール: 「外部 IP の禁止」「特定リージョン以外でのリソース作成禁止」などを上位で一括適用する
- ライエンで本番プロジェクトを保護し、誤削除を防ぐ
運用・監視
- Cloud Asset Inventory で階層全体のリソースと IAM ポリシーを横断的に棚卸し・エクスポートする
- Cloud Audit Logs(管理アクティビティ)でプロジェクト・フォルダの作成/移動/削除など、階層変更の操作履歴を監査する
- プロジェクトの移動(reparent)で部門再編に追随できるが、IAM・組織ポリシーの継承が変わるため、移動後の有効権限を確認する
- 削除したプロジェクトは保留期間内なら復元(undelete)可能。恒久削除前提の運用と取り違えない
- アクセスできない/想定外に許可される場合は、継承込みの有効ポリシーを階層の上から順に点検する
コスト
Resource Manager 自体(組織・フォルダ・プロジェクトの作成や階層管理、API 呼び出し)は無料です。課金されるのは各プロジェクト内で使う Compute・Storage などのリソースであり、課金は組織構造ではなくプロジェクトに紐づく請求先アカウントで集計されます。
| 項目 | 課金 | 備考 |
|---|---|---|
| 組織・フォルダ・プロジェクトの管理 | 無料 | 階層の作成・移動・削除に料金はかからない |
| プロジェクト内のリソース | 有料 | Compute や Storage など各サービスの利用に応じて課金 |
| 請求先アカウント | 集計の単位 | プロジェクトを請求先に紐づけてコストを配賦・分離 |
セキュリティ
- 最小権限を階層で設計: 強力な
roles/resourcemanager.organizationAdminなどの組織管理ロールは少人数に限定する - プロジェクト作成・削除の権限を絞る: 誰でもプロジェクトを乱立できないよう、作成ロールを統制する
- 組織ポリシーで強制ガードレール: IAM だけでは縛れない構成上の禁止事項(外部公開・特定サービス無効化など)を上位で固定する
- タグと条件付き IAM を組み合わせ、環境や属性に応じてアクセスを絞り込む
- 誤削除・誤移動を防ぐため、ライエンと監査ログによる変更追跡を併用する
全プロジェクトを組織のルート直下にフラットに並べ、権限を各プロジェクトへ個別付与するのは管理破綻のもとです。フォルダで境界を切らないと、共通ルールの一括適用も棚卸しも困難になります。フォルダで階層化し、上位でまとめて統制する設計を最初に固めてください。
Well-Architected の観点
- 運用の優秀性: フォルダで論理境界を整理し、組織ポリシーで設定を標準化することで、規模が増えても一貫した運用ができる
- セキュリティ: IAM と組織ポリシーを階層継承で一括適用し、最小権限とガードレールを全社に行き渡らせる。プロジェクト分離で影響範囲も限定できる
- 信頼性: 本番・非本番をプロジェクトで分け、ライエンとソフト削除で誤操作からの回復性を高める
- コスト最適化: 請求先アカウントとプロジェクト構造でコストを配賦・可視化し、部門別の管理を容易にする
試験で問われるポイント
- 階層は組織 → フォルダ → プロジェクト → リソースの順。IAM ロールと組織ポリシーは上位から下位へ継承される
- プロジェクトが課金・API・IAM・割り当ての境界。AWS のアカウントに対応する基本コンテナ
- フォルダは AWS の OU、組織は AWS Organizations に相当する、という対応関係
- プロジェクト ID はグローバルに一意かつ不変。表示名は変えられるが ID は変えられない
- 組織は Cloud Identity / Workspace のドメインと 1 対 1。フォルダや組織ポリシーは組織があって初めて使える
- 上位の付与は下位で外せない(継承の加算性)。広すぎる権限は上位を疑う
- ガードレール(外部公開禁止など)は IAM ではなく組織ポリシーで実現する
関連サービス・比較
| 観点 | Resource Manager(GCP) | AWS Organizations |
|---|---|---|
| 最上位 | 組織(Organization) | 組織(Org)/ 管理アカウント |
| 中間グループ | フォルダ(ネスト可) | OU(組織単位、ネスト可) |
| 基本コンテナ | プロジェクト | アカウント |
| 権限の継承 | IAM ロールが階層継承 | SCP は許可の上限を継承で制限 |
| ガードレール | 組織ポリシー | サービスコントロールポリシー(SCP) |
| 請求の単位 | 請求先アカウント+プロジェクト | 一括請求(Consolidated Billing) |
| 構成の棚卸し | Cloud Asset Inventory と連携 | AWS Config / Resource Explorer |
ハンズオン / CLI例
# 組織直下にフォルダを作成(ORG_ID は組織ノードの数値 ID)
gcloud resource-manager folders create \
--display-name="production" \
--organization=ORG_ID
# 作成したフォルダの ID を確認
gcloud resource-manager folders list --organization=ORG_ID
# そのフォルダ配下にプロジェクトを作成(プロジェクト ID は不変・グローバル一意)
gcloud projects create my-prod-app-001 \
--name="My Prod App" \
--folder=FOLDER_ID
# 既存プロジェクトを別フォルダへ移動(継承される権限が変わる点に注意)
gcloud beta projects move my-prod-app-001 --folder=ANOTHER_FOLDER_ID
# フォルダ単位でロールを付与(配下プロジェクトに継承される)
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
--member="group:platform-team@example.com" \
--role="roles/viewer"
# 組織配下の階層(フォルダ・プロジェクト)を一覧で把握
gcloud projects list --filter="parent.id=FOLDER_ID"
Google Cloud Service
Resource Managerを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: Google Cloud / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
上位の IAM や組織ポリシーが下位へ継承され、一括統制できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- —
- 設計柱
- security / operational
判断チェックリスト
- 自社の用途が「管理・ガバナンス / security」に近いか確認する。
- 強みである「組織→フォルダ→プロジェクトの階層でリソースを束ねる管理基盤。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。