PCA 合格対策

🔐 セキュリティ全領域
Deep Dive

Google Cloud のセキュリティを「Zero Trust × 多層防御 × 最小権限」の三本柱で深掘りします。IAM の内部評価フロー、KMS 鍵階層、VPC SC 境界設計、Workload Identity Federation のトークン交換、Binary Authorization のアテステーション、Security Command Center の 3 ティア比較まで、公式ドキュメントに基づき試験頻出ポイント・リスク・ベストプラクティスを一気通貫で整理しました。

🔐 セキュリティ全領域 📚 公式 17 ドキュメント参照 🎯 PCA 試験対応 🛡️ Zero Trust 思想
📘 基礎 🔧 応用 🎯 試験対応 ⚠️ リスク・注意点
🔑 TL;DR — このページの要約
  • Zero Trust: ネットワーク境界に依存せず、すべてのリクエストを認証・認可・コンテキストで判断。Google の BeyondCorp が出発点。
  • IAM: Principal × Role × Resource の三要素。Allow / Deny / Principal Access Boundary の 3 種ポリシーで多層化。
  • 暗号化: 既定で全データ AES-256-GCM 暗号化。要件で Google-managed → CMEK → Cloud HSM → Cloud EKM の順で選定。
  • VPC SC: API レベルの境界。Dry-Run → 本番化のワークフロー必須。
  • WIF: SA キー JSON 払い出しを不要化する Google の推奨手法。
  • Binary Authorization: 署名されたコンテナイメージのみデプロイ可能にする供給チェーン防御。
  • 監査: Admin Activity / Data Access / System Event / Policy Denied の 4 種。Data Access は既定 OFF(BigQuery 除く)。
  • SCC: Standard / Premium / Enterprise の 3 ティアを要件で選ぶ。Enterprise は Chronicle SIEM 統合。

1️⃣ Zero Trust の原則 — BeyondCorp 思想

Google が 2009 年の Operation Aurora 攻撃を契機に開発した「ネットワーク境界に依存しないセキュリティモデル」。VPN を撤廃し、認証・認可・コンテキストでアクセスを判断します。

Zero Trust の 5 原則

原則 1

Never Trust, Always Verify

「社内ネットワーク」を信頼しない。すべてのリクエストを認証・認可。

原則 2

Least Privilege

最小権限。必要なものを必要な時にだけ付与。

原則 3

Assume Breach

侵害は起きる前提で設計。多層防御と即時検知。

原則 4

Identity-Centric

ID とコンテキスト(デバイス・場所・時刻)で判断。

原則 5

Encrypt Everywhere

転送中・保存中・処理中(Confidential Computing)も暗号化。

原則 6

Continuous Monitoring

SCC / Chronicle / Audit Logs で常時検知。

多層防御(Defense in Depth)— GCP マッピング

🌐 L1 — Edge:Cloud Armor(WAF / DDoS) + Cloud CDN(オリジン保護) + reCAPTCHA Enterprise(Bot 対策)
🛡️ L2 — Network:VPC ファイアウォール + Cloud NAT + Cloud IDS + Private Google Access
🆔 L3 — Identity & Access:IAM(Allow/Deny) + Org Policy + IAP + Context-Aware Access + Chrome Enterprise Premium
🔐 L4 — Data:CMEK / Cloud HSM / Cloud EKM + Sensitive Data Protection(DLP) + VPC Service Controls + Confidential VM
📊 L5 — Detect & Respond:Cloud Audit Logs + Security Command Center + Chronicle Security Operations + Access Transparency
🔑 試験頻出 Zero Trust = BeyondCorp Enterprise(旧称) → Chrome Enterprise Premium(現行称)。VPN 撤廃して IAP / Context-Aware Access で代替するパターンが典型問題。
💡 試験での出題パターン 「リモートワーカーが社内アプリにアクセスする必要があるが、VPN 運用負担を最小化したい」→ IAP + Context-Aware Access が正解。「BeyondCorp」「Identity-Aware」「ゼロトラスト」のキーワードに反応。

2️⃣ リソース階層と継承 — Organization → Folder → Project

4 階層モデル

Google Cloud のすべてのリソースは Organization(頂点) → Folder(任意) → Project → Resource の 4 階層に属します。IAM ポリシーと Org Policy はこの階層を下方向に継承します。

Organization company.com Folder: Prod Folder: Dev Folder: Shared Proj: web-prod Proj: api-prod Proj: web-dev Proj: logging Proj: shared-vpc VM / GCS GKE / SQL Cloud Run Log Sink VPC / Subnet 継承(Inheritance)
図:リソース階層と継承の方向(IAM ロール・Org Policy は親から子へ伝播)

各レイヤーの役割

レイヤー役割典型ロール注意点
Organizationルート。すべての契約・支払いの起点roles/resourcemanager.organizationAdminCloud Identity / Google Workspace 必須
Folder部門・環境・法人単位(任意)roles/resourcemanager.folderAdmin最大ネスト 10 階層
Project課金とリソース所有の基本単位roles/owner / roles/editor削除後 30 日復元可能
ResourceVM・バケット・テーブル等リソース固有ロール個別ポリシーは継承を上書き不可
「アクセス制御と組織ポリシーの接続ポイントが提供され、階層全体に流れ下ります」 Cloud Platform Resource Hierarchy

継承の合成ルール(Effective Policy)

各リソースに到達した有効ポリシー(Effective Policy)は、そのリソース直下のポリシーと祖先から継承されたポリシーの和集合です。子側で親の許可を取り消すことはできません(IAM Allow Policy の制約)。

Organization Policy : 親で許可 ─┐ ├─→ Effective = 和集合(許可は累積) Folder Policy : 子で許可 ─┘ ※ 一度組織で付与された Allow は、フォルダ側で除外できない。 ※ 例外: Deny Policy(v2)と Principal Access Boundary は親の許可を上書きで遮断可能。
⚠️ よくある失敗 組織レベルで roles/editorgroup:developers@example.com に付与すると、全プロジェクトの全リソースが書き換え可能になる。Folder 単位での付与に絞ること。
📋 公式制限 フリープログラム(個人 Google アカウントのみ)は組織・フォルダ機能を利用不可。プロジェクトが階層の頂点となり、組織ポリシーも適用できません。

Organization Policy(組織ポリシー)— ガードレール

IAM が「誰が」を制御するのに対し、Org Policy は「何ができるか」を制御するガードレール。階層に沿って Constraint を適用します。

Constraint 種別動作代表例
List Constraint許可/拒否リスト(is: / under: / in: プレフィックス)constraints/compute.vmExternalIpAccess(外部 IP 制限)
Boolean ConstraintON / OFF の二択constraints/compute.disableSerialPortAccess
Managed Constraints新方式、Policy Intelligence と連携2024 年以降の推奨方式
Custom ConstraintsCEL 式でユーザー定義(Boolean のみ)「特定タグなし VM 作成禁止」など
📌 試験で押さえるべき Org Policy 代表 10 個
Constraint用途
iam.disableServiceAccountKeyCreationSA キー JSON 作成を禁止(WIF 強制)
iam.disableServiceAccountKeyUpload外部キーのアップロードを禁止
iam.allowedPolicyMemberDomainsドメイン制限(外部ユーザー付与禁止)
compute.vmExternalIpAccessVM への外部 IP 付与を禁止
compute.requireOsLoginSSH を OS Login 経由に強制
compute.disableSerialPortAccessシリアルコンソール無効化
compute.skipDefaultNetworkCreationdefault ネットワーク自動作成を抑止
storage.uniformBucketLevelAccessUniform Bucket-Level Access 強制
storage.publicAccessPrevention公開バケット作成を全面禁止
gcp.resourceLocationsリソース作成リージョン制限(データ主権)

アンチパターン

全部のプロジェクトを Organization 直下にぶら下げる「フラット構造」。環境分離・課金集計・ポリシー適用が困難に。

ベストプラクティス

環境(prod/dev/staging)×ビジネスドメイン の 2 軸でフォルダ階層化。Org Policy はトップ近くで網掛け、例外は子で個別緩和。

🎯 試験での出題パターン

Q. 組織全体で外部 IP 付与を原則禁止しつつ、特定の Bastion VM だけ例外的に許可したい

A. Org Policy で constraints/compute.vmExternalIpAccessOrganization レベルで DENY、Bastion がある Project(または Folder)レベルで同 Constraint を上書きして許可リストに該当 VM を追加。子は親の Constraint を上書き可能(List の場合は inheritance を merge / replace で制御)。

3️⃣ IAM 完全解剖 — Principal × Role × Resource

IAM の三要素モデル

要素 1

Principal(誰が)

Google アカウント / Group / Service Account / Workforce or Workload Identity Pool

user: / group: / serviceAccount: / principal: / principalSet:

要素 2

Role(何ができる)

権限の集合。Basic / Predefined / Custom の 3 種。

権限は service.resource.verb 形式(例 compute.instances.create

要素 3

Resource(どこに)

Organization / Folder / Project / 個別リソース(GCS バケット等)

階層を下方向に継承

3 種類のロール — 詳細比較

種類権限の細かさ更新責任Conditions本番推奨
Basic Roles(旧 Primitive)roles/owner / roles/editor / roles/viewer非常に粗い(全 API)Google❌ 利用不可❌ 非推奨
Predefined Rolesroles/storage.objectViewer / roles/bigquery.dataEditorサービス+操作単位Google(自動更新)✅ 可能✅ 推奨
Custom Rolesユーザー定義権限を 1 個ずつ指定ユーザー(手動)✅ 可能△ 必要時
「予定義ロール活用で管理簡素化。本番環境では基本ロール使用回避」 IAM overview

Custom Role の制約

📋 公式制限
  • 組織・プロジェクト毎に最大 300 個まで
  • 作成可能な階層は Organization と Project のみ(Folder 不可)
  • Project レベルロールには Folder/Organization 専用権限を含められない
  • Custom Role の ID は作成後に変更不可
  • 権限の依存関係(例:compute.instances.create には compute.subnetworks.use が必要)はユーザーが管理

IAM ポリシー評価フロー(Allow / Deny / PAB)

API リクエスト ① 認証(Authentication) Principal の識別 ② Deny Policy 評価 Deny にヒット → 即時拒否(最優先) ③ Principal Access Boundary 対象リソース範囲外なら拒否 ④ Allow Policy 評価(階層合成) Resource + 親階層の和集合 + Conditions ✓ 許可(ALLOW) ✗ 拒否(DENY) 許可ヒット 該当ロールなし
図:IAM ポリシー評価の優先順位(Deny 最優先 → PAB → Allow)
🔑 試験頻出 Deny Policy は Allow より常に優先。組織レベルで Deny されている権限は、Project レベルで Owner を持っていても拒否される。情報漏洩リスクの遮断に必須。

IAM Conditions — 属性ベースアクセス制御(ABAC)

CEL(Common Expression Language)でアクセス条件を記述します。「時間」「リソース名」「リクエスト元」などのコンテキストで動的に判断。

🔧 CEL 式の代表 5 パターン
# 1. 営業時間のみ許可(JST 平日 9-18 時)
request.time.getHours("Asia/Tokyo") >= 9 &&
request.time.getHours("Asia/Tokyo") < 18 &&
request.time.getDayOfWeek("Asia/Tokyo") >= 1 &&
request.time.getDayOfWeek("Asia/Tokyo") <= 5

# 2. 特定バケットのオブジェクトのみ
resource.name.startsWith("projects/_/buckets/my-secure-bucket/")

# 3. 特定リソースタイプのみ
resource.type == "compute.googleapis.com/Instance"

# 4. 一時的アクセス(2026-06-30 まで)
request.time < timestamp("2026-06-30T23:59:59Z")

# 5. リソースタグでの判定
resource.matchTag("123456/env", "production")
📋 公式制限
  • Basic Roles(Owner/Editor/Viewer)にはConditions を付与できない
  • allUsers / allAuthenticatedUsers への条件付き付与不可
  • 1 ポリシーに100 個以上の条件付きバインディングは非推奨(パフォーマンス影響)

Deny Policy(v2)

2022 年に GA。Allow ポリシーで広く許可した上で、特定の操作を確実にブロックする「最後の砦」として使います。

Principal Access Boundary(PAB)— 2024 年新機能

「このプリンシパルがアクセスできるリソース集合」を境界として定義。組織横断の侵害でも被害を限定できます。

アンチパターン: Owner ベタ付け

「とりあえず Owner を付与」して動かす。Owner は IAM 自体を書き換え可能なので、攻撃者にとられたら全権限を自己付与できる(特権昇格)。

ベスト: 最小権限ロール + Conditions

Predefined Role を組み合わせ、必要な権限のみ。さらに営業時間や送信元 IP の Conditions で発動条件を絞る。

アンチパターン: 個人アカウントへの直接付与

退職者の権限剥奪が漏れる、引き継ぎ困難、監査困難。

ベスト: Google Groups 経由で付与

IAM は Group に付与。HR システムと連動して入退社で Group メンバーシップを変更すれば、IAM 変更不要。

🎯 試験での出題パターン

Q. 開発者に「BigQuery のテーブル作成と読み書き」だけを許可したい

A. roles/bigquery.dataEditor(テーブル/データ作成・編集)+ roles/bigquery.jobUser(クエリ実行)。Editor / Owner は過剰権限なので不正解。

Q. SA が他の SA をなりすませる権限を全員から剥奪したい

A. Deny Policyiam.serviceAccounts.actAsiam.serviceAccounts.getAccessToken を Organization レベルで allUsers 含めて全員に対し DENY。例外を Conditions で明示。

4️⃣ サービスアカウント運用 — SA Impersonation と WIF

サービスアカウント(SA)の基礎

Google Cloud では「人間ユーザー」と「ワークロード」を厳密に分離。ワークロードが API を呼ぶ際は SA を使います。SA は Principal でもあり Resource でもある二面性を持ちます。

種類特徴
User-managed SAmy-sa@project.iam.gserviceaccount.comユーザーが作成・管理
Default SACompute Engine / App Engine Default SAサービス有効化時に自動作成、Editor 権限デフォルト付与(要削減)
Google-managed SAService Agents(service-PROJECT@gcp-sa-xxx.iamGoogle が管理、CMEK 連携等で使用

SA 認証の 3 方式

方式 1

SA Key JSON(非推奨)

JSON 鍵ファイルを発行してアプリ内に配置。長期有効・漏洩リスク大。

原則使用禁止。Org Policy で作成抑止推奨。

方式 2

SA Impersonation

人間ユーザーが iam.serviceAccountTokenCreator で SA のトークンを取得。短命(1 時間)。

CI/CD や運用業務に適合。

方式 3

Workload Identity Federation

外部 IdP(AWS/Azure/GitHub Actions/K8s 等)と OIDC/SAML 連携。SA Key 不要

Google 推奨方式

SA Impersonation の 2 ロール

ロール権限用途
roles/iam.serviceAccountUserSA を「として動作」させる権限Compute Engine / Cloud Run に SA を割り当てる時
roles/iam.serviceAccountTokenCreatorSA の短命トークンを生成CLI で --impersonate-service-account、CI/CD
roles/iam.workloadIdentityUserWIF プールから SA を Impersonate外部 IdP からのアクセス

Workload Identity Federation の動作フロー

外部 IdP AWS / Azure / GitHub K8s / OIDC / SAML ワークロード (EC2 / Pod / Action) 外部環境で稼働 Security Token Service (sts.googleapis.com) 属性マッピング / 検証 Workload Identity Pool Pool + Provider 定義 Service Account workloadIdentityUser で Impersonate 許可 GCP リソース GCS / BigQuery 等 短命トークンでアクセス ① 認証 JWT 取得 ② JWT を STS に提示 Pool 設定参照 ③ Federated Token → SA Impersonate ④ アクセス ※ SA Key JSON ファイル不要。トークンは短命(最大 1 時間)で漏洩リスク最小。
図:Workload Identity Federation の Token Exchange フロー
「service account keys are powerful credentials, and can present a security risk if they are not managed correctly. ... Workload Identity Federation eliminates the maintenance and security burden associated with service account keys.」 Workload Identity Federation

WIF の典型ユースケース

外部 IdP用途設定要点
AWSEC2 / Lambda から BigQuery / GCS アクセスAWS account ID と Role ARN で属性マッピング
AzureVM / AKS / Functions から GCP アクセスAzure AD アプリケーション ID で識別
GitHub ActionsOIDC で GCP デプロイrepository / ref / workflow で属性絞り込み
GitLab CIOIDC で GCP デプロイプロジェクト・ブランチで属性絞り込み
Kubernetes 外部EKS / AKS / オンプレ K8s から GCPK8s ServiceAccount + OIDC Issuer
オンプレ ADSAML 2.0 経由SAML Provider + 属性マッピング
⚠️ よくある失敗 WIF Pool で属性条件を設定せず広く許可。GitHub Actions の例で attribute.repository == 'my-repo' を漏らすと、他のリポジトリ・他組織からもトークン取得可能になり、サプライチェーン攻撃の入口になる。
💡 ベストプラクティス
  • Org Policy iam.disableServiceAccountKeyCreation で SA Key 作成を組織全体で禁止
  • 各環境(prod/staging/dev)ごとに Workload Identity Pool を分離
  • WIF Provider の attribute-condition で属性検証必須
  • SA 自体に必要最小権限のみ付与(Pool 側だけ絞っても SA が広権限なら危険)

🎯 試験での出題パターン

Q. GitHub Actions から GCP にデプロイしたい。SA Key JSON は使いたくない

A. Workload Identity Federationtoken.actions.githubusercontent.com を OIDC Provider として WIF Pool に登録、roles/iam.workloadIdentityUser を SA に付与。attribute-condition で repository を絞ること。

Q. オンプレからの夜間バッチで Cloud Storage を読みたい

A. オンプレ側に OIDC IdP(Active Directory FS / Keycloak)があれば WIF。なければ過渡的に SA Impersonation + Workload Identity Provider for SAML も検討。最悪 SA Key の場合は定期ローテーションと Secret Manager 経由管理。

5️⃣ 暗号化の選択フロー — Google-managed / CMEK / HSM / EKM

GCP の暗号化原則

Google Cloud ではすべての保存データが既定で AES-256-GCM で暗号化されます。「鍵をどう管理するか」が選択肢の本質。

方式鍵の保管場所FIPS Levelキー所有コスト監査ログ
Google-managed(既定)Google 管理140-2 L1Google無料不可
CMEK(Software)Cloud KMS140-2 L1顧客$0.06/月/鍵可能
Cloud HSMGoogle HSM クラスタ140-2 L3顧客$1〜2.50/月/鍵可能
Cloud EKM外部 KMS(Fortanix/Thales 等)パートナー依存顧客(完全外部)$3/月/鍵可能
CSEK(旧式)顧客提供(リクエストごと)顧客依存顧客無料可能

Cloud KMS の階層構造

Project (location: global / asia-northeast1 / us-central1 ...) Key Ring: prod-keys location: asia-northeast1 Key Ring: dev-keys location: asia-northeast1 Key Ring: hsm-keys location: us-central1 CryptoKey: bq-key purpose: ENCRYPT_DECRYPT CryptoKey: gcs-key rotation: 90 days CryptoKey: cardholder protection: HSM v1 ✓ v2 disabled v3 PRIMARY v1 ✓ v2 PRIMARY v1 HSM PRIMARY CryptoKeyVersion 状態: ENABLED / DISABLED / DESTROY_SCHEDULED / DESTROYED
図:Cloud KMS の階層(Project → KeyRing → CryptoKey → CryptoKeyVersion)

CryptoKeyVersion のライフサイクル

[新規作成] ↓ Enable ENABLED ←→ DISABLED (一時無効化 / 復活可能) ↓ Destroy schedule DESTROY_SCHEDULED (既定 24 時間〜30 日の猶予) ↓ 自動 or 即時 DESTROYED (完全削除、復元不可、暗号化シュレッド成立)
⚠️ よくある失敗 CMEK 鍵を誤って Destroy。猶予期間(既定 24 時間)内に RestoreVersion で復活可能だが、過ぎたらそのデータは永久に復号不可。Org Policy cloudkms.minimumDestroyScheduledDuration で最低猶予を 30 日に強制推奨。

鍵選定の決定ツリー

Q1. 暗号化が必要か? No → 終了(GCP の既定暗号化のみ) Yes ↓ Q2. キー管理を顧客が制御する必要があるか?(規制・監査要件) No → Google-managed Encryption Keys(既定、追加コストなし) Yes ↓ Q3. FIPS 140-2 Level 3 が必要か?(PCI DSS / 一部金融規制) Yes ↓ Q4. 鍵を GCP 外で完全管理する必要があるか? Yes → Cloud EKM(Fortanix / Futurex / Thales) No → Cloud HSM No ↓ Q5. Cloud KMS(Software)で十分か? Yes → CMEK(Software protection) No → 例外的に CSEK(リクエストごとに鍵提供、運用負担大、非推奨)

キーローテーション戦略

項目推奨設定注意点
対称鍵自動ローテーション90 日(PCI DSS 推奨)古い暗号文の復号は古いバージョンが必要 → DESTROY 注意
非対称鍵原則手動(署名検証の互換性のため)外部公開鍵を配布する仕組みが前提
EKM(外部)鍵自動ローテーション非対応外部 KMS 側でローテーション、Cloud KMS は新規バージョン手動登録
キー無効化段階的(先に Disable で影響確認 → Destroy)「無効や利用不可が長く続くと恒久的データ喪失」
「サービスによっては CMEK が無効または利用不可の状態が長く続くと恒久的なデータ喪失を経験することがあります」 CMEK

CMEK 対応の主要サービス(抜粋)

CMEK 対応サービス一覧
  • ストレージ: Cloud Storage / Persistent Disk / Filestore / Backup and DR
  • DB: Cloud SQL / Spanner / Bigtable / Firestore / Memorystore / AlloyDB
  • 分析: BigQuery / Dataflow / Dataproc / Pub/Sub / Dataplex
  • コンピュート: Compute Engine(PD/CD/Image) / GKE(etcd) / Cloud Run / Cloud Functions
  • AI/ML: Vertex AI / AutoML / Document AI
  • その他: Secret Manager / Cloud Logging / Artifact Registry

※ 一部サービスは「キーのロケーションとリソースのロケーション一致」必須。

Cloud HSM の詳細

Cloud EKM の詳細

📋 公式リスク EKM 外部鍵が利用不可になると、暗号化操作が失敗。外部 KMS の可用性が GCP データアクセスの上限を決める。

Confidential Computing(処理中の暗号化)

従来の「保存中 / 転送中」に加え、処理中(メモリ内)のデータも暗号化する技術。CPU 内の TEE(Trusted Execution Environment)で実行。

サービス技術用途
Confidential VMAMD SEV / Intel TDX機密計算が必要な VM
Confidential GKE NodesConfidential VM ベース機密計算 K8s
Confidential Spaceシールド環境+アテステーション複数組織のデータ協調分析(PII 漏洩なし)

アンチパターン: 単一鍵で全暗号化

1 つの CryptoKey で全プロジェクト・全サービスを暗号化。鍵漏洩で全データ復号、職務分離不能。

ベスト: サービス別キーリング分離

環境(prod/dev)×サービス(BQ/GCS/SQL)でキーリング分離。さらにアクセス制御を cloudkms.cryptoKeyEncrypterDecrypter 単位で最小権限化。

🎯 試験での出題パターン

Q. 金融規制で FIPS 140-2 Level 3 と「鍵を完全に外部管理」が必須

A. Cloud EKM。Cloud HSM だと鍵は Google の HSM 内(顧客の物理コントロール外)。EKM は外部パートナー(Fortanix 等)に鍵を保管しつつ GCP サービスで暗号化が可能。

Q. CMEK 鍵を誤って Destroy したが、データ復旧できるか?

A. Destroy Scheduled 状態(既定 24 時間〜最大 30 日)なら RestoreVersion で復活可能。完全 DESTROYED 後は不可。Org Policy cloudkms.minimumDestroyScheduledDuration で猶予を強制延長推奨。

6️⃣ VPC Service Controls 完全解剖

VPC SC の本質

IAM は「ID と権限」の境界、VPC SC は「API レベルのネットワーク境界」。両者を組み合わせた多層防御。VPC SC はデータ漏洩防止(Data Exfiltration Prevention)に特化。

「IAM が認証ベースのアクセス制御を提供する一方で、VPC Service Controls はコンテキストベースのペリメータセキュリティを実現」 VPC Service Controls overview

Service Perimeter の動作

外部 攻撃者 / 外部 curl / wget 許可 IAM 持つ匿名 Service Perimeter prod-data-perimeter BigQuery project-A Cloud Storage project-B Vertex AI project-C VPC: prod-vpc プライベート IP のみ Private Google Access 有効 ✗ デフォルト拒否 ✓ Ingress Rule で明示許可 外部 API 別 Project / Cloud ✓ Egress Rule で個別許可 無設定なら境界外への送信は拒否
図:Service Perimeter — 境界内は自由通信、境界外は明示許可がない限り遮断

Ingress / Egress Rules の構造

Bridge Perimeter(双方向許可)よりもIngress / Egress Rules(細粒度許可)が推奨。以下の属性で許可条件を定義。

属性Ingress RuleEgress Rule
Source / DestinationIdentity / Project / VPC Network / Access LevelResource / External Resource
IdentitySA / User / Group / ANY_IDENTITY同左
Service対象 API(storage.googleapis.com 等)同左
MethodAPI メソッド単位(google.storage.objects.get同左
Resource特定 Project 内のリソース特定 Project への送信

Dry-Run モード — 必須のワークフロー

VPC SC を本番適用する前に必ず Dry-Run で影響を測定。誤適用すると本番が完全停止します。

[1] Dry-Run perimeter を作成 ↓ [2] 1〜2 週間の実トラフィック監視 (Cloud Logging で違反ログを収集) ↓ [3] Allow Ingress/Egress を追加して違反を解消 ↓ [4] Enforced perimeter に昇格 ↓ [5] 継続監視(SCC + Logging)
⚠️ よくある失敗 Dry-Run を飛ばしていきなり Enforced で適用。監視 Agent や Backup ジョブが全停止、本番障害発生。必ず Dry-Run で最低 1 週間検証。

VPC SC 対象サービス

Access Levels(Access Context Manager)

VPC SC で「誰が境界に入れるか」の条件をパラメータ化。

属性
IP Subnetworks社内 CIDR 192.0.2.0/24
RegionsJP / US のみ許可
Required Access Levels条件の AND 結合
Device PolicyOS バージョン、暗号化、企業端末
Membersユーザー・グループ・SA
Negate反転(NOT 条件)
📋 公式制限
  • VPC SC はメタデータの完全な移動制御は対象外(IAM で別途防御)
  • 境界変更は反映に数分かかる場合あり
  • 1 組織あたり最大 Service Perimeter 数の上限あり(クォータ)
  • Cloud Console UI からの操作は VPC SC の保護対象外(gcloud / API が前提)

アンチパターン: 境界なし運用

機密データを持つ Project に IAM のみで運用。SA キー漏洩や OAuth トークン窃取で外部から API アクセスされ、データ全コピーされる。

ベスト: 境界 + Dry-Run → 本番化

機密データ群を Service Perimeter で囲み、Dry-Run で 1〜2 週間検証 → Enforced。Access Levels で送信元を絞り、Egress で別 Project 連携を明示。

🎯 試験での出題パターン

Q. 機密データを持つ BigQuery を漏洩から守りたい。社員が個人 Drive にエクスポートするのも防ぎたい

A. BigQuery プロジェクトを VPC Service Controls の Service Perimeter に入れる。Egress Rule で個人 Drive / Personal Project への送信を許可しない(既定で遮断)。さらに Access Levels で社内 IP のみ許可。

7️⃣ セキュアリモートアクセス — IAP / CAA / Chrome Enterprise Premium

VPN 撤廃と Zero Trust アクセス

従来の VPN ベース「内側は安全」モデルから、「すべて検証」モデルへ。GCP のリモートアクセス手段を整理。

手段対象認証方式適用ケース
IAP HTTPSHTTP(S) アプリ(Web/API)Google アカウント + IAM社内 Web アプリ、HTTPS LB バックエンド
IAP TCP ForwardingVM への SSH / RDP / 任意 TCPGoogle アカウント + IAM運用 SSH、Bastion 撤廃
Context-Aware Accessすべての対応 APIAccess Levels(端末・場所・時間)従業員端末の検証
Chrome Enterprise PremiumSaaS / Web アプリBeyondCorp + DLP + 脅威保護Chrome ブラウザ統合管理
HA VPN / Interconnectネットワーク全体BGP + 共有鍵オンプレ統合(廃止対象ではない)

IAP の動作

HTTPS アプリの前段で Google が認証・認可を実施。アプリ側は「ヘッダーに署名付き ID」を受け取るだけ。

[ユーザー] ──HTTPS──→ [Cloud Load Balancer] ↓ [IAP(Identity-Aware Proxy)] ├─ 認証: Google ID / Workforce IdP ├─ 認可: IAP-secured Web App User ロール └─ Context-Aware Access チェック ↓ 許可されたら [バックエンド: GCE / GKE / Cloud Run / オンプレ] ↑ 署名付きヘッダー X-Goog-IAP-JWT-Assertion で ID 受信

IAP TCP Forwarding(旧 IAP Tunnel)

外部 IP を持たない VM への SSH/RDP を、IAM 認証付きで提供。Bastion ホストを撤廃できる。

# IAM 設定
gcloud projects add-iam-policy-binding $PROJECT \
  --member=user:alice@example.com \
  --role=roles/iap.tunnelResourceAccessor

# SSH 接続(外部 IP 不要)
gcloud compute ssh my-vm --tunnel-through-iap
🔑 試験頻出 「外部 IP を持たない VM への安全な SSH」= IAP TCP Forwarding。Bastion VM / 踏み台サーバの代替として推奨。

Context-Aware Access(CAA)

Access Context Manager の Access Levels と IAM / IAP を組み合わせ、コンテキストでアクセス可否を判断。

⚙️ 評価する属性

  • 送信元 IP / 国 / リージョン
  • デバイス OS / バージョン
  • デバイス暗号化状態 / 画面ロック
  • マネージドデバイス か否か
  • 時刻 / 曜日
  • 認証強度(MFA 種別)

🎯 典型ルール

  • マネージド端末のみ Cloud Console アクセス可
  • 営業時間外は機密プロジェクトアクセス禁止
  • OS バージョン 1 つ前まで許可、それ以下は拒否
  • 海外 IP からは MFA 必須

Chrome Enterprise Premium(旧 BeyondCorp Enterprise)

Chrome ブラウザに DLP・脅威保護・Zero Trust アクセスを統合したエンタープライズ向けプレミアムプラン。

アンチパターン: 全社 VPN 必須

リモートワーカー全員に VPN クライアント、認証情報の使い回し、VPN サーバの DDoS で全社停止リスク。

ベスト: IAP + CAA + Chrome EP

アプリ毎に IAP、端末・場所で CAA、ブラウザ層で Chrome EP。VPN を撤廃して BeyondCorp 化。

🎯 試験での出題パターン

Q. 開発者が VM の管理 SSH を必要とする。Bastion 不要にしたい

A. IAP TCP Forwarding + roles/iap.tunnelResourceAccessor。VM に外部 IP 不要。さらに OS Login 強制で SSH 鍵管理も自動化。

Q. 退職者が個人デバイスで業務 SaaS にアクセスし続けるリスクを下げたい

A. Chrome Enterprise Premium + Context-Aware Access。マネージドデバイス+OS Login されたユーザーのみアクセス許可、退職者は端末資産から除外で即時遮断。

8️⃣ ソフトウェアサプライチェーン — Binary Authorization

SLSA フレームワーク

Supply chain Levels for Software Artifacts。サプライチェーン攻撃(SolarWinds 型)への対策レベル。

Level要件GCP での実現
SLSA 1ビルドプロセスをスクリプト化Cloud Build
SLSA 2バージョン管理 + 認証ビルド + provenance 生成Cloud Build + Artifact Registry
SLSA 3独立したビルドサービス + 改ざん不能 provenanceCloud Build(GA で対応) + Binary Authorization
SLSA 42 人レビュー + 完全ハーミート性 + 再現可能追加運用必要

Binary Authorization の動作

Cloud Build ビルド + ユニットテスト → provenance 生成 脆弱性スキャン Artifact Analysis CVE / dep チェック Attestor 秘密鍵で署名 → Attestation 作成 Artifact Registry image + attestation Binary Authorization Policy 評価 「対応する Attestor の署名がある?」 デプロイ要求 ✓ Deploy 許可 GKE / Cloud Run へ ✗ Deploy 拒否 署名なし / 不一致
図:Binary Authorization のデプロイ時検証フロー

主要概念

概念役割
Attestor署名検証する権限者。公開鍵を保持。
Attestation「このイメージは前段検証を通った」という署名付き証跡(Grafeas Note/Occurrence ベース)
Policy「どの Attestor の署名があればデプロイ可能か」のルール
Continuous Validation (CV)デプロイ後も継続監視、ポリシー違反を周期検査
Default Rule明示ルールに該当しないイメージのデフォルト動作(許可/拒否/Dry-Run)
Cluster-specific Ruleクラスタごとに異なるポリシー(prod 厳格 / dev 緩め)

対応プラットフォーム

💡 ベストプラクティス
  • 本番クラスタは厳格ルール、検証クラスタは Dry-Run で段階導入
  • Attestor 鍵はCloud KMS で管理、Cloud Build SA に署名権限のみ付与
  • 脆弱性スキャン(Artifact Analysis)→ 脆弱性なし → 署名 のパイプライン化
  • break-glass account(緊急デプロイ)の経路を別途用意

Artifact Registry のセキュリティ機能

アンチパターン: Docker Hub からの直接 pull

本番 K8s が docker.io/library/nginx を直接 pull。Docker Hub 障害で全停止、悪意あるイメージ更新で攻撃の入口に。

ベスト: Artifact Registry Remote + Binary Authorization

外部イメージは Artifact Registry の Remote Repository 経由でキャッシュ、脆弱性スキャン後に Attestor 署名、Binary Auth で署名済みのみデプロイ可。

🎯 試験での出題パターン

Q. 本番 GKE に未検証コンテナをデプロイさせない仕組みは?

A. Binary Authorization。Cloud Build → 脆弱性スキャン → Attestor 署名 → Binary Auth Policy で signed なイメージのみデプロイ許可。Continuous Validation で稼働中の Pod も継続検証。

9️⃣ Secure AI — Model Armor / DLP / Confidential VM

AI / LLM 時代の新リスク

生成 AI の普及で新たなリスクが顕在化。Prompt Injection / 機密データ漏洩 / モデル盗用 / ハルシネーションへの対策が必須。

🚨 主要リスク

  • Prompt Injection: 悪意ある入力で意図しない動作
  • Data Leakage: ファインチューン用データに PII 混入
  • Model Theft: API 経由でモデル蒸留
  • Jailbreak: 安全機構の回避
  • Hallucination: 誤情報の生成

🛡️ GCP の対応サービス

  • Model Armor: プロンプト / レスポンスのフィルタ
  • Sensitive Data Protection: PII の検出・脱識別
  • Confidential VM/Space: モデル + データの保護
  • Vertex AI Safety Filters: 内蔵フィルタ
  • VPC SC: モデルデータの流出防止

Sensitive Data Protection(旧 Cloud DLP)詳細

200+ の組み込み InfoTypeでクレジットカード番号・SSN・電話番号・医療 ID など個人情報を検出。カスタム InfoType(辞書・正規表現・文脈)にも対応。

De-identification(脱識別)の主要手法

手法動作用途
Redaction該当値を完全削除ログから完全消去
Masking文字を * 等に置換表示時のマスク
Tokenization不可逆ハッシュ / 一方向トークン分析用に保持しつつ元値隠蔽
Format-Preserving Encryption (FPE)形式を保ち可逆暗号化カード番号→同じ桁数の値で DB 保管、必要時復号
Date Shifting日付を一定範囲シフト医療データの匿名化(相対関係保持)
Generalization粒度を粗く(住所→市まで)k-匿名性確保
Bucketing連続値をビン化(年齢→年代)統計利用

再識別リスク分析

Model Armor(2024 年導入)

Vertex AI / 任意の LLM に対して、プロンプトとレスポンスを「セキュリティフィルタ」

Confidential Space — マルチパーティ分析

複数組織のデータを「お互いに見せず」合算分析する仕組み。TEE + アテステーション。

[組織 A の暗号化データ] [組織 B の暗号化データ] ↓ ↓ [Confidential Space ワークロード] ├─ TEE 環境(メモリ暗号化) ├─ Attestation で正しいコードのみ実行 └─ 結果(集計値)のみ各組織に返却 ↓ [生データは双方とも閲覧不可]
🔑 試験頻出 「処理中のデータも暗号化」= Confidential Computing「複数組織でデータ協調分析だが互いに見せたくない」= Confidential Space

🎯 試験での出題パターン

Q. カスタマーサポートの会話ログを LLM で要約したい。会話に含まれる PII を保護したい

A. Sensitive Data Protection で会話ログから PII を検出 → Tokenization で置換 → LLM に投入。応答に Model Armor を挟んで PII 復活を防止。

🔟 監査とログ — Cloud Audit Logs / Access Transparency

Cloud Audit Logs 4 種

ログ種別記録対象既定無効化保存先課金
Admin Activity設定変更(VM 作成・IAM 変更等)✅ 常時有効❌ 不可_Required Bucket無料(400 日保持)
Data Accessデータ R/W(GCS Object 取得等)❌ 既定無効(BQ 除く)✅ 可_Default Bucket有料
System EventGoogle による設定変更(Autoscale 等)✅ 常時有効❌ 不可_Required Bucket無料(400 日保持)
Policy DeniedVPC SC / Org Policy 違反✅ 生成除外フィルタ可_Default Bucket有料
「Data Access監査ログはサポートチームがアカウントの問題をトラブルシューティングするのに役立つ」 Cloud Audit Logs
📋 公式注意 Data Access Log は既定で BigQuery だけ有効、他サービスは要明示有効化。すべて有効にすると大量のログ=コスト爆発。必要なサービス・リソースのみ有効が原則。

監査ログの保護

Access Transparency / Access Approval

機能役割対象顧客
Access TransparencyGoogle 社員がサポート対応等で顧客データにアクセスした記録Enterprise 以上 / 一部規制業種
Access ApprovalGoogle 社員のアクセスを顧客が事前承認するワークフロー追加契約必要
Key Access Justifications (KAJ)EKM 鍵アクセス時の理由を必須化EKM 利用顧客
🔑 試験頻出 Audit Log = 顧客アクセス記録、Access Transparency = Google 社員アクセス記録。混同しない。HIPAA や金融規制で AT/AA が要求されることが多い。

SIEM / SOAR 統合

ログ保持と長期保管

方式保持期間用途
Log Bucket(既定)30 日(_Default) / 400 日(_Required)運用調査
Log Bucket カスタム保持最大 10 年規制対応
BigQuery Sink無期限SQL クエリ分析
GCS Sink(Coldline/Archive)無期限・低コスト長期保管
Bucket LockWORM 強制規制要件(SEC 17a-4 等)

アンチパターン: Data Access Log 全有効

「とりあえず全部有効」にして膨大なログを Cloud Logging で全保持。月数百〜数千ドルのログ料金、検索パフォーマンス低下。

ベスト: 必要なリソースのみ

機密データを持つ GCS バケット / BigQuery テーブルのみ Data Access Log 有効。長期保管は GCS Coldline へ Sink、必要な分析だけ BigQuery Sink。

🎯 試験での出題パターン

Q. 7 年間の監査ログ保管が規制で必須

A. Log Sink で GCS Coldline / Archive に転送、Bucket Lock(Retention Policy)で WORM 化。または BigQuery Sink で SQL アクセス + GCS にバックアップ。

Q. Google サポートが本番データにアクセスしたか追跡したい

A. Access Transparency。標準 Cloud Audit Logs では Google 社員のアクセスは記録されない。AT を有効化、事前承認まで欲しければ Access Approval

1️⃣1️⃣ コンプライアンス — HIPAA / PCI / GDPR / SOC / FedRAMP

主要規制と GCP 対応マトリクス

規制 主要要件 GCP 対応サービス BAA / 認証
HIPAA(米医療) PHI 保護、監査、暗号化 BAA 対象サービス + CMEK + Audit Logs + VPC SC BAA 締結必要
PCI DSS(決済) カード情報の暗号化・分離・監査 Cloud HSM / Tokenization(DLP) + VPC SC + Audit Logs L1 Service Provider 認定
GDPR(EU 個人情報) データ主権、削除権、移転制限 EU リージョン + Data Residency + DLP + CMEK SCC + DPA 締結
SOC 2(運用統制) セキュリティ・可用性・機密性 SCC + Audit Logs + IAM + Access Transparency 第三者監査
FedRAMP High(米連邦) 米国データ・FIPS L3・限定アクセス Assured Workloads (US Federal) + FedRAMP-authorized サービス JAB 認定
ISMAP(日本政府) 政府情報システムの統一基準 ISMAP-Cloud Service List 掲載サービス JIS Q 27001 ベース

Assured Workloads — コンプライアンス自動適用

規制要件に応じた Folder を作成し、内部のすべてのリソースに自動的に制約を適用。手動設定の漏れを防ぐ。

Data Residency / Data Sovereignty

「データを物理的にこのリージョン外に出さない」という要件。

[制御手段の階層] ┌──────────────────────────────────────────┐ │ Org Policy: gcp.resourceLocations │ ← リソース作成リージョン強制 │ Org Policy: cmek 関連 │ ← CMEK 必須化 │ Assured Workloads │ ← 包括的な制約適用 │ VPC SC: Egress Rule │ ← 越境通信遮断 │ Cloud KMS のロケーション選定 │ ← 鍵もリージョン内 │ Access Transparency / Access Approval │ ← 越境アクセス監視 │ Cloud EKM with Key Access Justifications │ ← 鍵が顧客制御下、理由必須 └──────────────────────────────────────────┘

HIPAA BAA 対象サービス(抜粋)

HIPAA BAA 対象の主要サービス
  • Compute Engine
  • GKE
  • Cloud Run
  • Cloud SQL
  • Spanner
  • BigQuery
  • Bigtable
  • Cloud Storage
  • Pub/Sub
  • Dataflow
  • Vertex AI
  • Cloud KMS / HSM / EKM
  • Sensitive Data Protection
  • Cloud Logging
  • Cloud Monitoring
  • Secret Manager

※ 完全リストは 公式 HIPAA Compliance 参照。

⚠️ よくある失敗 HIPAA BAA に含まれないサービス(一部の Beta / プレビュー機能)で PHI を処理。コンプライアンス違反となり、規制当局からの罰金リスク。

🎯 試験での出題パターン

Q. EU 居住者のデータを EU 内に閉じ込めたい

A. EU リージョン(europe-west*)に限定して構築。Org Policy gcp.resourceLocations で他リージョン作成を禁止。Assured Workloads(EU Sovereign Cloud)で網羅的に制約。CMEK 鍵も EU リージョンの KMS で作成。

1️⃣2️⃣ Security Command Center — 3 ティア比較

SCC の役割

Google Cloud のセキュリティポスチャ管理(CSPM)+ ワークロード保護(CWPP)+ SIEM/SOARを統合した中央コンソール。

3 ティアの機能比較

機能Standard(無料)PremiumEnterprise
Asset Inventory
Security Health Analytics(誤設定検知)△ 限定✅ フル
Event Threat Detection(ログ脅威検知)
Container Threat Detection
Virtual Machine Threat Detection
Web Security Scanner△ Custom のみ✅ Managed
Posture Management
Attack Path Simulation
Vulnerability Reports
Chronicle SIEM 統合
SOAR(自動対応)
マルチクラウド対応(AWS)

主要検知エンジン

🔍 Security Health Analytics

設定不備の自動検出。「公開バケット」「弱い IAM」「ファイアウォール開放」など。CIS Benchmark / PCI DSS 等のフレームワーク準拠も評価。

🚨 Event Threat Detection

Cloud Logging のリアルタイム解析。「マルウェアダウンロード」「Cryptomining」「IAM の異常付与」「漏洩クレデンシャル利用」等を検知。

📦 Container Threat Detection

GKE Node 上の eBPF で suspicious binary 実行・shell プロセス起動を検知。Cryptomining や Reverse Shell。

💻 VM Threat Detection

VM のメモリスキャンで Cryptomining / Rootkit / 既知マルウェアを検知。Agent 不要、Hypervisor レベル。

🌐 Web Security Scanner

App Engine / GCE / GKE 上の公開 Web アプリの脆弱性スキャン。OWASP Top 10 系(XSS / SQLi / 混在コンテンツ)。

🎯 Attack Path Simulation

SCC Premium の機能。資産間の権限・接続を分析し、攻撃者が機密データに到達できる経路を可視化。

SCC Enterprise の SOAR 機能

2024 年に統合された Chronicle Security Operations(旧 Siemplify)の SOAR を SCC に統合。脅威検知 → 自動対応のプレイブック化。

🔑 試験での選定軸
  • 無料で誤設定だけ気にしたい → SCC Standard
  • マルウェア・脅威検知も含めて → SCC Premium
  • SIEM 統合・SOAR・マルチクラウド → SCC Enterprise

🎯 試験での出題パターン

Q. AWS と GCP 両方を統一監視したい

A. SCC Enterprise。AWS Connector で AWS 環境のセキュリティイベントを取り込み、Chronicle 上で統合分析。Standard / Premium ではマルチクラウド非対応。

1️⃣3️⃣ 試験頻出パターン — ケーススタディ別構成

ケース別の推奨セキュリティ構成

📌 ケース 1: 医療機関 — HIPAA 準拠の電子カルテ
  • 階層: Org → Folder(Prod) → Project(EHR)
  • BAA: HIPAA 対象サービスのみ利用、Assured Workloads(HIPAA)
  • 暗号化: CMEK(Cloud HSM)、Org Policy で CMEK 強制
  • 境界: VPC SC で患者データ Project を保護、Egress は専門外注先のみ許可
  • ID: Cloud Identity + SAML SSO + MFA、Context-Aware Access で社内端末限定
  • 監査: Data Access Log 全有効化、Access Transparency + Access Approval
  • 監視: SCC Premium、Sensitive Data Protection で PHI 検出
📌 ケース 2: 決済プラットフォーム — PCI DSS
  • 分離: CDE(カード保持環境)を独立 Project + VPC SC
  • トークン化: Sensitive Data Protection で FPE、生 PAN は HSM 内のみ
  • 鍵管理: Cloud HSM(FIPS 140-2 L3)、90 日自動ローテーション
  • WAF: Cloud Armor、OWASP Top 10 ルール、Adaptive Protection
  • ネット: 内部 LB のみ、Private Google Access、外部 IP 禁止 Org Policy
  • 監査: 全 API 呼び出しを Audit Log、CV(Continuous Validation)でデプロイ後監視
  • 運用: 職務分離(Dev / Ops / Security の Custom Role 分離)、break-glass account
📌 ケース 3: 多国籍企業 — GDPR + ローカル規制
  • 地理分離: EU / US / APAC を Folder 分離、Org Policy gcp.resourceLocations
  • EU データ: EU Sovereign Cloud(Assured Workloads)+ EU 内 CMEK
  • 越境制御: VPC SC で EU Project から US Project への Egress を全禁止
  • 越境アクセス: Access Approval で EU 居住者データへの非 EU 社員アクセスを事前承認制
  • 削除権: DLP + 自動削除ジョブ、Cloud Storage Lifecycle
📌 ケース 4: 米連邦政府 — FedRAMP High
  • 環境: Assured Workloads (US Federal) で FedRAMP-Authorized サービスに限定
  • 支援員: US Person 限定アクセス(Personnel Controls)
  • : Cloud HSM(FIPS 140-2 L3)必須、または Cloud EKM
  • VPC SC: 全リソース境界化、Access Levels で US IP のみ
  • 監査: Access Transparency + Key Access Justifications(EKM 利用時)
📌 ケース 5: SaaS スタートアップ — マルチテナント
  • テナント分離: テナント毎 Project(強い隔離)or 共通 Project + Resource タグ(軽量)
  • 鍵分離: テナント毎 CryptoKey、CMEK Autokey でプロビジョン自動化
  • ID: Identity Platform でテナント SSO、Workforce Identity Federation
  • API ゲート: Apigee で OAuth / 利用ベース課金
  • 共有 VPC: ホストプロジェクトで集中ネットワーク管理

1️⃣4️⃣ アンチパターン集 — よくある設計ミス

セキュリティ設計の 10 大アンチパターン

1. Owner ロールの濫用

「権限不足の対応を最速」で Owner 付与。IAM 自体を書き換え可能 → 権限昇格攻撃成立。

最小権限 + Conditions

Predefined Role を組み合わせ、必要な権限のみ。さらに時間・送信元 IP・リソースで Conditions 絞り込み。

2. SA Key JSON の発行

JSON を Git にコミット / Slack で配布 → 漏洩で全リソース盗難。長期有効。

WIF + Org Policy で禁止

iam.disableServiceAccountKeyCreation で作成自体ブロック、外部はすべて WIF へ。

3. Default SA の Editor 権限放置

Compute Engine / App Engine の Default SA はデフォルトで Editor を持つ。VM が侵害されると Project 全体破壊可能。

専用 SA + 最小権限

ワークロード毎に SA 作成、必要な権限のみ。Org Policy iam.automaticIamGrantsForDefaultServiceAccounts で Default SA への自動 Editor 付与を抑止。

4. KMS 単一鍵で全暗号化

1 つの CryptoKey で全プロジェクト・全サービスを暗号化。鍵漏洩で全データ復号、職務分離不能。

サービス別キーリング

環境×サービス で KeyRing 分離。Encrypter/Decrypter ロールも個別最小付与。

5. KMS ローテーション忘れ

CryptoKey を一度作って放置。PCI DSS 等で年次ローテーションが要求されると違反。

自動ローテーション 90 日

対称鍵は自動ローテーション。古いバージョンは DISABLE → 削除前に再暗号化バッチで新バージョンへ移行。

6. VPC SC を本番直接適用

Dry-Run せず一気に Enforced 化 → 監視 Agent や Backup 停止 → 本番障害。

Dry-Run → 本番化

最低 1〜2 週間 Dry-Run で違反を集計、Ingress/Egress 例外を整備してから Enforced。

7. Data Access Log 全有効

すべてのサービスで Data Access 有効化 → ログ量爆発、コスト数倍。

必要リソースのみ + 長期 Sink

機密データを持つ GCS バケット・BQ テーブルのみ。GCS Coldline へ Sink して長期保管はコスト抑制。

8. 公開バケットの放置

テスト目的で allUsers 付与 → 本番化時に外し忘れ → 全データインターネット公開。

Public Access Prevention

Org Policy storage.publicAccessPrevention で組織全体で公開禁止。例外のみ個別承認。SCC で公開バケット検知。

9. Custom Role の濫用

個別ユースケースごとに Custom Role を量産。Predefined Role の権限変更に追従できない、保守困難。

Predefined 優先 + 必要時 Custom

原則 Predefined Role の組み合わせ。本当に必要な場合のみ Custom、ライフサイクル管理(EAP→GA)を運用。

10. 「監査ログ見れば事故対応 OK」

SCC を導入せず Audit Logs のみ。設定不備や脅威検知ができず、事故が起きてから初めて気付く。

SCC Premium 以上 + Chronicle

常時セキュリティポスチャ評価 + 脅威検知 + 攻撃経路シミュレーション。重大 Finding は自動 Slack / PagerDuty。

1️⃣5️⃣ インシデント対応 — GCP での標準ステップ

セキュリティインシデント発生時の 7 ステップ

[1] 検知(Detect) ↓ SCC Finding / Chronicle Alert / 外部通報 [2] トリアージ(Triage) ↓ 重要度・影響範囲・進行度の評価 [3] 封じ込め(Contain) ↓ 影響リソースのネットワーク隔離・SA 無効化 [4] 根絶(Eradicate) ↓ マルウェア除去・侵入経路の遮断 [5] フォレンジック(Forensic) ↓ Audit Log / Access Transparency / Snapshot から証拠保全 [6] 復旧(Recover) ↓ クリーンな状態へ復元、再侵入チェック [7] ポストモーテム(Postmortem) ↓ Blameless 振り返り、再発防止策、Org Policy / IAM 強化

各ステップの GCP ツール

ステップ使うツール具体アクション
検知SCC / Chronicle / Cloud MonitoringFinding を Slack / PagerDuty 連携
トリアージSCC + Attack Path影響資産と攻撃経路を可視化
封じ込めVPC Firewall / IAMVM ネットワーク隔離、漏洩 SA の Key 無効化 / SA 自体 Disable
根絶Compute Snapshot + 新インスタンス侵害 VM はフォレンジック後に削除
フォレンジックAudit Logs / Persistent Disk Snapshot / Memory CaptureGCS に保全、書き込み防止
復旧Terraform / Backup and DRIaC から再構築、クリーンイメージ
ポストモーテムActive Assist / RecommenderOrg Policy / IAM 強化、Binary Auth 追加

封じ込めの実コマンド例

# 1. 侵害された SA の全 Key を無効化(最優先)
gcloud iam service-accounts keys list --iam-account=compromised-sa@PROJECT.iam.gserviceaccount.com
gcloud iam service-accounts keys disable KEY_ID --iam-account=compromised-sa@PROJECT.iam.gserviceaccount.com

# 2. SA 自体を無効化
gcloud iam service-accounts disable compromised-sa@PROJECT.iam.gserviceaccount.com

# 3. 漏洩したアクセストークンを取り消し(OAuth)
gcloud auth revoke

# 4. 侵害 VM のネットワーク隔離(タグ変更で隔離 FW 適用)
gcloud compute instances add-tags VM --tags=quarantine --zone=ZONE
gcloud compute firewall-rules create deny-all-quarantine \
  --action=DENY --rules=all --target-tags=quarantine --priority=0

# 5. Snapshot 取得(証拠保全、PD は破壊しない)
gcloud compute disks snapshot DISK_NAME --snapshot-names=forensic-$(date +%s)
⚠️ よくある失敗 パニックで侵害 VM を即削除 → 証拠隠滅、攻撃経路追跡不能。必ず Snapshot を先取り、ディスクは保全。

事前準備(インシデント対応プレイブック)

💡 必殺フレーズ集(試験当日用)

状況・キーワード即答サービス・機能
「BeyondCorp」「ゼロトラスト」「VPN 撤廃」IAP + Context-Aware Access(+ Chrome Enterprise Premium)
「外部 IP 不要で SSH」IAP TCP Forwarding
「SA Key JSON 不要にしたい」「GitHub Actions から GCP」Workload Identity Federation
「FIPS 140-2 Level 3」「金融・PCI 規制」Cloud HSM(鍵を外部完全管理なら EKM)
「データ流出防止」「API 境界」VPC Service Controls
「VPC SC を安全に導入」Dry-Run → Enforced
「コンテナのデプロイ検証」「署名済みのみ」Binary Authorization
「PII の検出・マスキング」Sensitive Data Protection(旧 DLP)
「カード番号を可逆暗号化、形式維持」Format-Preserving Encryption (FPE)
「複数組織でデータ協調分析、互いに見せない」Confidential Space
「Google 社員のアクセス追跡」Access Transparency / Access Approval
「7 年間ログ保管」Log Sink → GCS Coldline + Bucket Lock
「マルチクラウド統合 SIEM」SCC Enterprise + Chronicle
「コンプライアンス自動適用」Assured Workloads(HIPAA / FedRAMP / EU Sovereign 等)
「Owner を制限したい」「権限昇格防止」Deny Policy + Principal Access Boundary
「組織全体の外部 IP 禁止」Org Policy compute.vmExternalIpAccess
「公開バケット作成禁止」Org Policy storage.publicAccessPrevention
「機密プロジェクトを夜間・週末アクセス禁止」IAM Conditions の request.time

📌 試験中の判断フローチャート(暗記推奨)

セキュリティ要件キーワード抽出 ↓ "ゼロトラスト / VPN 撤廃" → IAP + CAA + Chrome EP "FIPS L3 / 規制鍵" → Cloud HSM (or EKM) "データ流出防止" → VPC SC + Dry-Run "コンテナ検証" → Binary Authorization "PII / DLP" → Sensitive Data Protection "SA Key 不要" → Workload Identity Federation "監査 7 年" → Log Sink + Bucket Lock "マルチクラウド SIEM" → SCC Enterprise + Chronicle "HIPAA/PCI/GDPR" → BAA + Assured Workloads + CMEK + Audit Log
🔑 5 分で復習する箇条書きまとめ
  • セキュリティ = Zero Trust × 多層防御 × 最小権限
  • IAM: Allow → Deny → PAB、Conditions で時間/IP/リソース制御
  • SA: WIF が原則、SA Key は Org Policy で禁止
  • 暗号化: 既定 AES-256-GCM、要件で GMEK → CMEK → HSM → EKM
  • VPC SC: API レベル境界、必ず Dry-Run → 本番化
  • 監査: 4 種ログ、Data Access は既定 OFF、長期は GCS Coldline + Bucket Lock
  • SCC: Standard / Premium / Enterprise を要件で選ぶ
  • コンプライアンス: Assured Workloads で包括的制約
  • サプライチェーン: Binary Authorization + Artifact Registry
  • AI セキュリティ: Model Armor + DLP + Confidential VM/Space
← ホームに戻る 📚 セクション 3 で全体像へ → 📝 問題演習を解く 📖 用語集

参考公式ドキュメント