Google Cloud ハンズオン教科書|2026-08 版
第 2 章 試験ガイド 3.1

IAM とリソース階層 — 権限設計の基礎

誰が・何に対して・何をできるか。最小権限をアーキテクトの視点で設計する

この章で学ぶこと

試験ガイド対応: セクション 3.1(セキュリティを考慮した設計 — IAM・リソース階層・最小権限)

Google Cloud のセキュリティ設計は「誰が(who)・どのリソースに対して(which)・何をできるか(what)」を決める IAM と、その判定の土台になるリソース階層から始まります。PCA 試験ではセクション 3.1 の中核であるだけでなく、ネットワークやデータの問題にも「最小権限で」という条件が繰り返し登場します。この章で権限設計の語彙を固めておくと、以降の全章が読みやすくなります。

リソース階層 — ポリシーは上から下へ流れる

Google Cloud のリソースは 4 階層のツリーを構成します。最上位の組織(organization)、任意の中間層であるフォルダ(folder)、リソースを入れる基本単位のプロジェクト(project)、そして VM やバケットなどのサービスリソースです。ルート以外の各リソースは必ずちょうど 1 つの親を持ちます。

第 1 章で作った学習用プロジェクト(第 1 章参照)のような個人アカウントのプロジェクトには組織がなく、プロジェクト自体が階層の頂点になります。後からドメインに組織を作成すれば、その配下へ移行できます。

プロジェクトの識別子例特徴
プロジェクト IDpca-handson作成時に自分で決める。作成後は変更不可。gcloud や API で使う
プロジェクト番号123456789012自動採番・読み取り専用。サービスアカウントのメールなどに現れる
プロジェクト名(表示名)My Handson表示用。あとから変更できる

この階層が重要なのは、IAM の許可ポリシーが上から下へ継承されるからです。あるリソースで実際に効く「有効なポリシー」は、そのリソース自身に付与されたポリシーと、全祖先(プロジェクト・フォルダ・組織)から継承したポリシーの和集合です。つまり組織でロールを付与すれば全プロジェクトに効き、逆に「親で与えた権限を子で打ち消す」ことは許可ポリシーではできません(拒否には後述の拒否ポリシーという別の仕組みを使います)。

組織 example.com フォルダ dev フォルダ prod プロジェクト app-dev プロジェクト app-prod VM バケット 上位のロールは下位の全リソースに継承 アクセス評価 バケットの有効なポリシー 組織: 監査ロール + フォルダ dev: なし + プロジェクト: 閲覧者 = 3 つの和集合で評価
図 2-1 リソース階層と許可ポリシーの継承。あるリソースへのアクセスは、そのリソース自身と全祖先のポリシーを合算(和集合)して評価される。親で付与した権限を子で打ち消すことはできない。

「部門ごとにアクセスを分離したい」「環境(dev / prod)ごとに権限を変えたい」という要件は、フォルダで階層を切り、付与するレベルを設計するのが定石です。「全プロジェクト共通の監査閲覧権限」なら組織レベルに 1 回付与、「このアプリの開発者だけ」ならプロジェクトレベルというように、ロールをどの階層に付与するかを設計します。

IAM の構成要素 — プリンシパル・ロール・許可ポリシー

IAM のアクセス制御は 3 つの要素で表現します。アクセスする主体のプリンシパル(principal)、権限(permission)の集合であるロール(role)、対象のリソースです。権限は service.resource.verb 形式(例: compute.instances.list)で、おおむね REST API のメソッドと 1 対 1 に対応します。重要なのは、権限を直接プリンシパルに付与することはできないという点です。必ずロールにまとめて、ロールをプリンシパルに付与します。

「誰にどのロールを与えたか」を記録するのが許可ポリシー(allow policy。IAM ポリシーとも呼ばれます)です。許可ポリシーはリソースにアタッチされる JSON / YAML のオブジェクトで、ロールとプリンシパル群を結びつけるロールバインディングの集合を持ちます。

プロジェクト pca-handson プリンシパル user:dev@example.com 権限で操作 許可ポリシー(allow policy) アタッチ バインディング 1 ロール roles/browser × プリンシパル group:dev@ex.com バインディング 2 ロール roles/storage.objectViewer × プリンシパル serviceAccount:app@…
図 2-2 許可ポリシーの構造。ポリシーはリソースにアタッチされ、「ロール × プリンシパル群」のバインディングを複数持つ。バインディングには条件(IAM Conditions)も付けられる。

プリンシパルはバインディングの中でプレフィックス付きで指定します。人間のユーザー(Google アカウント・Google グループ・workforce identity)と、ワークロード(サービスアカウント・workload identity)の 2 系統があります。

プレフィックス意味例
user:個人の Google アカウントuser:taro@example.com
group:Google グループ(推奨単位)group:dev-team@example.com
serviceAccount:サービスアカウントserviceAccount:app@pj.iam.gserviceaccount.com
domain:ドメイン全体domain:example.com

gcloud では、ポリシー全体の読み取りに get-iam-policy、1 バインディングの追加 / 削除に add-iam-policy-binding / remove-iam-policy-binding を使います。複数の変更をまとめて行うときは「読み取り → ローカルで編集 → set-iam-policy で書き戻し」の read-modify-write が推奨手順です。許可ポリシーの変更は通常 2 分、最長で 7 分以上かかって反映されます(2026-08 時点)。

許可ポリシーを補完する仕組みも押さえておきましょう。拒否ポリシー(deny policy)はロールが付与されていても特定の権限の使用を拒否し、IAM Conditions はバインディングに属性ベースの条件(リソースタグや時間帯など)を付けます。Privileged Access Manager を使うと、承認フロー付きの一時的な権限付与(Just-in-Time アクセス)を実現できます。

基本ロール・事前定義ロール・カスタムロール

ロールには 3 種類あります。試験でも実務でも「どれを選ぶか」の判断基準が問われます。

種類例特徴使いどころ
基本ロールroles/owner / roles/editor / roles/viewer(レガシー)、roles/admin / roles/writer / roles/reader(Preview)全サービス横断で数千の権限を含む本番では代替がない場合を除き使わない。検証環境まで
事前定義ロールroles/storage.objectViewerroles/SERVICE.IDENTIFIER 形式。Google が権限を自動更新第一候補。サービス単位の最小権限
カスタムロールprojects/PJ/roles/myAuditor権限を自分で列挙。組織かプロジェクトでのみ作成可(フォルダ不可)。各 300 個まで事前定義では過剰 / 不足なとき。メンテは自分持ち

基本ロール(basic role)のうち Owner / Editor / Viewer はレガシー基本ロール(IAM 以前からある旧称 primitive role)で、条件付きバインディングも使えません。2026-08 時点では新しい基本ロール Admin(roles/admin)/ Writer(roles/writer)/ Reader(roles/reader)が Preview として追加されていますが、コンソールからは付与できず gcloud / API 経由のみです。いずれにせよ公式ドキュメントは「本番環境では代替がない場合を除き基本ロールを付与しない」と明言しています。数千の権限を一括で渡すことは最小権限の原則に真っ向から反するからです。

カスタムロールは権限を 1 つずつ列挙して作る自前のロールです。作成できるのは組織レベルとプロジェクトレベルだけで、フォルダレベルでは作成できません。また Google は事前定義ロールと違ってカスタムロールの権限を自動更新しないため、新機能で必要になった権限は自分で追加し続ける必要があります。削除したカスタムロールの ID が再利用可能になるまで最長 44 日かかる点にも注意してください(2026-08 時点)。

ロールを選ぶ 検討 事前定義ロールで 最小権限を満たせる? はい 事前定義ロールを付与 Google が権限を自動更新 いいえ カスタムロールを作成 必要な権限だけを束ねる 作成場所 組織 or プロジェクトで作成 フォルダでは作成不可 1 組織 / 1 プロジェクトに 300 個まで 除外 基本ロールは 本番で使わない (Owner/Editor/Viewer)
図 2-3 ロール選択のデシジョンツリー。第一候補は常に事前定義ロール。カスタムロールは「事前定義では最小権限にできない」ときの手段で、作成場所は組織かプロジェクトに限られる。
試験の視点: ロール付与は「個人ではなくグループに」「基本ロールではなく事前定義ロールを」「広いスコープではなく必要な階層に」が三原則です。選択肢に roles/editor や「Owner を付与」が現れたら、より狭い事前定義ロールの選択肢がないかを必ず確認しましょう。

サービスアカウント — 鍵を作らないのが原則

サービスアカウント(service account, SA)は、人ではなくアプリケーションや VM などのワークロードが使う特別なアカウントです。メールアドレス形式の ID(SA_NAME@PROJECT_ID.iam.gserviceaccount.com)を持ち、アイデンティティとリソースの二面性があります。つまり「SA にロールを付与してリソースへアクセスさせる」ことも、「SA というリソース自体に『誰がこの SA を使えるか』のポリシーを付ける」こともできます。

種類作成者説明
ユーザー管理 SA自分ワークロード用に自分で作成・管理する。本章の主役
デフォルト SA一部サービスの有効化時に自動作成Compute Engine 等が自動作成。管理責任はユーザー側にある
サービスエージェントGoogleGoogle Cloud のサービス自身があなたのリソースを操作するための SA

SA の認証でもっとも避けたいのがサービスアカウントキー(ダウンロード型の秘密鍵)です。キーは漏えいすればそのまま成りすましに使える強力な資格情報で、公式ドキュメントも「他の選択肢があるならキーを使わない」と明記しています。認証手段は次の優先順位で選びます。

  1. 開発中: 自分のユーザー資格情報で Application Default Credentials(ADC)を使う
  2. Google Cloud 上のワークロード: リソースに SA をアタッチする(Compute Engine への直接アタッチ、GKE の Workload Identity)
  3. 外部(オンプレ・他クラウド・CI/CD)のワークロード: Workload Identity Federation で鍵なし連携
  4. 最終手段: どうしても代替がない場合のみ SA キーを作成し、厳重に管理する

impersonation — 人が SA の権限を一時的に借りる

認証済みのプリンシパルが SA として振る舞うことを impersonation(借用)と呼びます。SA に対して roles/iam.serviceAccountTokenCreator(権限 iam.serviceAccounts.getAccessToken を含む)を持つプリンシパルは、その SA の短命トークン(数時間以内で失効、自動更新なし)を取得して API を呼べます。キーと違って、ほとんどの監査ログには借用した本人と SA の両方の ID が残るため、「誰がやったか」を追跡できます。gcloud では --impersonate-service-account フラグ一発で使えます(コンソールは常にユーザー資格情報で動作し、impersonation はできません)。

混同しやすい roles/iam.serviceAccountUser は「SA をリソースにアタッチする(iam.serviceAccounts.actAs)」ためのロールです。VM に SA を載せてデプロイする人には serviceAccountUser、SA の権限を CLI で借りたい人には serviceAccountTokenCreator、と使い分けます。どちらも「SA が持つ全権限への入口」になるため、付与は慎重に行います。

Workload Identity Federation — 外部ワークロードの鍵なし認証

オンプレや AWS・Azure、GitHub Actions などの外部ワークロードが Google Cloud にアクセスするとき、従来は SA キーを配布していました。Workload Identity Federation(WIF)はこれを置き換える仕組みで、外部 IdP(AWS、Azure、GitHub、GitLab、Kubernetes、OIDC / SAML 2.0 対応 IdP、X.509 証明書など)のトークンを Google の Security Token Service(STS)が OAuth 2.0 token exchange 仕様で検証し、短命の連携トークンに交換します。Workload Identity プール(環境ごとに作るのが推奨)とプロバイダ(属性マッピングと検証条件の定義)を設定し、連携 ID は principal://(個体)や principalSet://(グループ・属性単位)でバインディングに指定します。

外部ワークロード GitHub Actions / AWS / オンプレ ① IdP トークンを提示 Security Token Service Workload Identity プール プロバイダが属性マッピングを検証 トークンを交換して発行 ② 連携トークンの まま直接アクセス ② 連携トークン サービスアカウント借用 roles/iam.serviceAccountTokenCreator を連携 ID に付与 ③ SA の短命トークン Google Cloud リソース Cloud Storage, BigQuery 等
図 2-4 Workload Identity Federation のトークン交換。SA キーを配布せず、外部 IdP への信頼に基づいて短命トークンを発行する。連携 ID に直接ロールを付与する経路(左)と、SA を借用する経路(右)の 2 方式がある。
試験の視点: 「オンプレ / 他クラウド / CI パイプラインから Google Cloud に安全にアクセスしたい」という設問の答えはほぼ Workload Identity Federation です。「SA キーをエクスポートして配置する」という選択肢は、キー管理の要件が明示されていない限りまず誤答と考えて消去できます。

組織ポリシーと職掌分散(SoD)

IAM が「誰が操作できるか」を決めるのに対し、組織ポリシー(Organization Policy Service)は「どんな構成が許されるか」をリソース階層全体に強制するガードレールです。組織ポリシーは制約(constraint)の集合として設定し、たとえ Owner 相当の権限を持つ人でも、制約に反する構成は作れません。代表的な制約には次のようなものがあります。

制約にはブール型(強制する / しない)とリスト型(許可 / 拒否する値の列挙)があり、上位で設定したポリシーは下位に継承されます。下位では継承をそのまま受けるか、自分のポリシーで置き換えるかを選べます。設定には roles/orgpolicy.policyAdmin が必要で、本適用の前に影響だけを監査ログで観測するドライランも使えます。組織ポリシーは組織リソースが前提の機能なので、組織なしの学習プロジェクトでは「読んで理解する」に留めましょう(第 13 章で代表的な制約を深掘りします)。

IAM — 誰ができるか プリンシパル単位で付与 group:dev-team@… ロールを付与 リソースを操作できる storage.objects.get など 「誰に許可するか」の制御 許可が無ければ何もできない 組織ポリシー — 何を許すか 制約(constraint)で制限 例: SA キー作成の禁止 階層全体に適用 構成そのものを禁止 誰であっても作成不可 「何が可能か」のガードレール IAM で許可されていても遮断
図 2-5 IAM と組織ポリシーの守備範囲。IAM は「誰が」の許可、組織ポリシーは「何が可能か」の制限。両者は重ねて使う多層防御であり、どちらか一方の代替にはならない。

職掌分散(Separation of Duties, SoD)は「1 人の人間・1 つのアイデンティティに、悪用可能な権限の組み合わせを集中させない」という設計原則です。IAM ではこれを次のように実装します。

ハンズオン 2-1|許可ポリシーを読み、サービスアカウントに最小権限を付与する

プロジェクトの許可ポリシーを読み解き、サービスアカウントを作成して最小の閲覧ロールを付与します。所要 15 分程度。費用: 無料(IAM・Resource Manager の操作だけで、課金対象のリソースは作りません)。Cloud Shell での実行を想定しています(ローカルの gcloud でも同じです)。

  1. 作業対象のプロジェクトを確認し、現在の許可ポリシーを表示する
gcloud config get-value project
gcloud projects get-iam-policy PROJECT_ID

PROJECT_ID は 1 行目で表示された自分のプロジェクト ID に置き換えます。出力はおおよそ次の形です。プロジェクト作成者には基本ロールの roles/owner が付いていることが確認できます。

bindings:
- members:
  - user:you@example.com
  role: roles/owner
etag: BwYnXk...
version: 1
  1. ワークロード役のサービスアカウントを作成する(名前は 6〜30 文字の小文字英数字とハイフン)。作成直後は使えるようになるまで 60 秒以上かかる場合があります
gcloud iam service-accounts create pca-audit \
  --display-name="PCA handson audit"
  1. この SA に、プロジェクトの階層情報とポリシーだけを読める事前定義ロール roles/browser を付与し、バインディングが増えたことを確認する
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:pca-audit@PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/browser"

gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --filter="bindings.members:pca-audit" \
  --format="table(bindings.role)"

最後のコマンドで roles/browser が 1 行表示されれば成功です。Editor のような広いロールではなく「今必要な最小のロール」を選ぶ、という流れを体で覚えてください。

後片付け: 続けてハンズオン 2-2・2-3 に進む場合はこの SA を使うので、削除は 2-3 の最後にまとめて行います。ここで終える場合は次を実行します。

gcloud projects remove-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:pca-audit@PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/browser"
gcloud iam service-accounts delete \
  pca-audit@PROJECT_ID.iam.gserviceaccount.com --quiet
ハンズオン 2-2|鍵を作らずサービスアカウントを impersonation で使う

SA キーを一切作らずに、2-1 の SA の権限を自分の CLI から借用します。所要 10 分程度。費用: 無料。

  1. SA「に対して」自分を Token Creator にする(SA がリソースでもあることを体感するポイントです。YOUR_EMAIL は自分の Google アカウント)
gcloud iam service-accounts add-iam-policy-binding \
  pca-audit@PROJECT_ID.iam.gserviceaccount.com \
  --member="user:YOUR_EMAIL" \
  --role="roles/iam.serviceAccountTokenCreator"
  1. 反映を待って(通常 2 分程度)、SA として API を呼ぶ。roles/browser は resourcemanager.projects.get を含むので成功するはずです
gcloud projects describe PROJECT_ID \
  --impersonate-service-account=pca-audit@PROJECT_ID.iam.gserviceaccount.com

期待される出力(抜粋)。冒頭の WARNING が「今は SA として実行している」ことを示します。

WARNING: This command is using service account impersonation. All API calls will be
executed as [pca-audit@PROJECT_ID.iam.gserviceaccount.com]
lifecycleState: ACTIVE
projectId: PROJECT_ID
  1. 次に SA が持っていない権限をわざと試し、最小権限が効いていることを確かめる
gcloud iam service-accounts list \
  --impersonate-service-account=pca-audit@PROJECT_ID.iam.gserviceaccount.com

iam.serviceAccounts.list は roles/browser に含まれないため、PERMISSION_DENIED エラーになれば成功(期待どおりの失敗)です。なお、監査ログが記録される操作では「あなた + SA」の両方の ID が残ります。

後片付け: 2-3 に進む場合はそのままで OK。ここで終える場合は Token Creator の付与を外し、2-1 の後片付けを実行します。

gcloud iam service-accounts remove-iam-policy-binding \
  pca-audit@PROJECT_ID.iam.gserviceaccount.com \
  --member="user:YOUR_EMAIL" \
  --role="roles/iam.serviceAccountTokenCreator"
ハンズオン 2-3|カスタムロールを作り、Policy Troubleshooter で権限を診断する

権限を 2 つだけ持つカスタムロールを作り、Policy Troubleshooter で「なぜアクセスできる / できないのか」を機械的に診断します。所要 15 分程度。費用: 無料。

  1. 閲覧専用のカスタムロールをプロジェクトレベルで作成し、定義を確認する
gcloud iam roles create pcaAuditor --project=PROJECT_ID \
  --title="PCA Auditor" \
  --description="プロジェクト情報と IAM ポリシーの閲覧のみ" \
  --permissions="resourcemanager.projects.get,resourcemanager.projects.getIamPolicy" \
  --stage=GA

gcloud iam roles describe pcaAuditor --project=PROJECT_ID
  1. Policy Troubleshooter で「2-1 の SA は resourcemanager.projects.get を使えるか?」を診断する。リソースは完全リソース名で指定します
gcloud policy-intelligence troubleshoot-policy iam \
  //cloudresourcemanager.googleapis.com/projects/PROJECT_ID \
  --principal-email=pca-audit@PROJECT_ID.iam.gserviceaccount.com \
  --permission=resourcemanager.projects.get

出力には総合判定 overallAccessState(CAN_ACCESS / CANNOT_ACCESS、ポリシーの閲覧権限が足りない場合は UNKNOWN_INFO)と、根拠になったバインディングの評価(ここでは roles/browser)が表示されます。--permission=iam.serviceAccounts.list に変えて再実行すると、どのバインディングにも該当しないことが分かります。「権限が無いはずなのにある / あるはずなのに無い」を調べる定番ツールなので、動きを覚えておきましょう。

ここでは診断のみで、カスタムロールは付与しませんでした。実務で付与する場合は --role="projects/PROJECT_ID/roles/pcaAuditor" の形式で指定します。

後片付け: この章で作ったものをすべて削除します(カスタムロールの ID は削除後、再利用できるまで最長 44 日かかります)。

gcloud projects remove-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:pca-audit@PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/browser"
gcloud iam service-accounts delete \
  pca-audit@PROJECT_ID.iam.gserviceaccount.com --quiet
gcloud iam roles delete pcaAuditor --project=PROJECT_ID

# 確認: 何も表示されなければ削除完了
gcloud projects get-iam-policy PROJECT_ID | grep pca-audit

つまずきポイント

ロールを付与したのに PERMISSION_DENIED になる: 許可ポリシーの変更は即時反映ではありません。直接付与で通常 2 分・最長 7 分以上、グループ経由の変更は数時間かかることもあります(2026-08 時点)。慌てて Editor などの広いロールを重ね掛けせず、数分待って再試行してから権限不足を疑いましょう。
「子で絞ったつもり」が効かない: 継承は和集合なので、組織やフォルダで付与した Editor は、プロジェクト側で Viewer を付与しても打ち消せません。権限を狭めたいときは「付与している場所」を探して外すのが正攻法です。ハンズオン 2-3 の Policy Troubleshooter が「どの階層のどのバインディングで許可されているか」を特定してくれます。
デフォルト SA への過剰権限: Compute Engine などが自動作成するデフォルト SA には、歴史的に Editor ロールが自動付与される挙動があります。組織ポリシー制約 iam.automaticIamGrantsForDefaultServiceAccounts でこの自動付与を止め(2024-05-03 以降に作成された組織では既定で強制されています)、ワークロードごとに専用 SA + 明示的な最小ロールを使うのがベストプラクティスです。
SA キーの JSON をリポジトリにコミットしてしまう: 最悪クラスの漏えい事故です。そもそも鍵を作らない運用(アタッチ・impersonation・WIF)を徹底し、組織では iam.disableServiceAccountKeyCreation で元から禁止します。漏らしてしまった鍵は「履歴から消す」ではなく、即座に無効化・削除して SA の権限も見直してください。

理解度チェック

Q1. フォルダに付与したロールを、配下の特定プロジェクトだけ無効にできるか?

許可ポリシーだけではできません。有効なポリシーは自リソースと全祖先の和集合で、子が親の付与を打ち消す仕組みはないためです。どうしても特定の権限使用を止めたい場合は拒否ポリシー(deny policy)を使うか、そもそも付与する階層を見直します。

Q2. 基本ロールを本番環境で使うべきでない理由は?

基本ロール(レガシーの Owner / Editor / Viewer、Preview の Admin / Writer / Reader)は全サービス横断で数千の権限を含み、最小権限の原則に反するためです。公式ドキュメントも「本番では代替がない場合を除き付与しない」と明記しています。第一候補は事前定義ロール、それで合わなければカスタムロールです。

Q3. roles/iam.serviceAccountUser と roles/iam.serviceAccountTokenCreator の違いは?

serviceAccountUser は SA をリソースにアタッチする(iam.serviceAccounts.actAs)ためのロール、serviceAccountTokenCreator は SA の短命トークンを取得して impersonation する(iam.serviceAccounts.getAccessToken)ためのロールです。どちらも SA の全権限への入口になるため付与先を絞ります。

Q4.(試験形式)オンプレミスのバッチサーバーから毎晩 BigQuery にデータをロードしたい。セキュリティ チームは長期有効な資格情報の配布を禁止している。どうするべきか?
A. SA キーを作成してサーバーに配置し、毎年ローテーションする B. Workload Identity Federation で外部 IdP と連携する C. 開発者のユーザー資格情報をサーバーに保存する D. BigQuery データセットを allAuthenticatedUsers に公開する

B。WIF なら外部 IdP のトークンを STS で短命トークンに交換でき、長期資格情報を配布せずに済みます。A は長期有効なキーの配布そのもので要件違反、C はユーザー資格情報の共有であり監査も破綻します。D は認証さえ通れば誰でも読める状態にする論外の構成です。

Q5.(試験形式)組織内の全プロジェクトで、今後サービスアカウントキーを作成できないよう強制したい。最も適切な方法は?
A. 全プロジェクトの管理者にキー作成禁止を周知する B. 各 SA から keys 系権限を含むロールを外して回る C. 組織ポリシー制約 iam.disableServiceAccountKeyCreation を組織レベルで適用する D. Cloud Audit Logs でキー作成を監視してアラートする

C。組織ポリシーは「誰であっても」その構成を作れなくする強制のガードレールで、組織レベルに置けば全プロジェクトへ継承されます。A は強制力がなく、B は新規プロジェクト・新規ロール付与に追従できません。D は検知はできても防止にはなりません(ドライラン運用との併用は有効です)。

まとめと次章へ

権限の土台ができたので、第 3 章では VPC ネットワーキングに進みます。ファイアウォールルールのターゲットにサービスアカウントを使うなど、この章の知識はすぐに再登場します。IaC で IAM を宣言的に管理する方法は第 16 章で扱います。

参考リンク(一次情報):