🔐 セキュリティ全領域
Deep Dive
Google Cloud のセキュリティを「Zero Trust × 多層防御 × 最小権限」の三本柱で深掘りします。IAM の内部評価フロー、KMS 鍵階層、VPC SC 境界設計、Workload Identity Federation のトークン交換、Binary Authorization のアテステーション、Security Command Center の 3 ティア比較まで、公式ドキュメントに基づき試験頻出ポイント・リスク・ベストプラクティスを一気通貫で整理しました。
- 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 原則
Never Trust, Always Verify
「社内ネットワーク」を信頼しない。すべてのリクエストを認証・認可。
Least Privilege
最小権限。必要なものを必要な時にだけ付与。
Assume Breach
侵害は起きる前提で設計。多層防御と即時検知。
Identity-Centric
ID とコンテキスト(デバイス・場所・時刻)で判断。
Encrypt Everywhere
転送中・保存中・処理中(Confidential Computing)も暗号化。
Continuous Monitoring
SCC / Chronicle / Audit Logs で常時検知。
多層防御(Defense in Depth)— GCP マッピング
2️⃣ リソース階層と継承 — Organization → Folder → Project
4 階層モデル
Google Cloud のすべてのリソースは Organization(頂点) → Folder(任意) → Project → Resource の 4 階層に属します。IAM ポリシーと Org Policy はこの階層を下方向に継承します。
各レイヤーの役割
| レイヤー | 役割 | 典型ロール | 注意点 |
|---|---|---|---|
| Organization | ルート。すべての契約・支払いの起点 | roles/resourcemanager.organizationAdmin | Cloud Identity / Google Workspace 必須 |
| Folder | 部門・環境・法人単位(任意) | roles/resourcemanager.folderAdmin | 最大ネスト 10 階層 |
| Project | 課金とリソース所有の基本単位 | roles/owner / roles/editor | 削除後 30 日復元可能 |
| Resource | VM・バケット・テーブル等 | リソース固有ロール | 個別ポリシーは継承を上書き不可 |
「アクセス制御と組織ポリシーの接続ポイントが提供され、階層全体に流れ下ります」 — Cloud Platform Resource Hierarchy
継承の合成ルール(Effective Policy)
各リソースに到達した有効ポリシー(Effective Policy)は、そのリソース直下のポリシーと祖先から継承されたポリシーの和集合です。子側で親の許可を取り消すことはできません(IAM Allow Policy の制約)。
roles/editor を group:developers@example.com に付与すると、全プロジェクトの全リソースが書き換え可能になる。Folder 単位での付与に絞ること。
Organization Policy(組織ポリシー)— ガードレール
IAM が「誰が」を制御するのに対し、Org Policy は「何ができるか」を制御するガードレール。階層に沿って Constraint を適用します。
| Constraint 種別 | 動作 | 代表例 |
|---|---|---|
| List Constraint | 許可/拒否リスト(is: / under: / in: プレフィックス) | constraints/compute.vmExternalIpAccess(外部 IP 制限) |
| Boolean Constraint | ON / OFF の二択 | constraints/compute.disableSerialPortAccess |
| Managed Constraints | 新方式、Policy Intelligence と連携 | 2024 年以降の推奨方式 |
| Custom Constraints | CEL 式でユーザー定義(Boolean のみ) | 「特定タグなし VM 作成禁止」など |
📌 試験で押さえるべき Org Policy 代表 10 個
| Constraint | 用途 |
|---|---|
iam.disableServiceAccountKeyCreation | SA キー JSON 作成を禁止(WIF 強制) |
iam.disableServiceAccountKeyUpload | 外部キーのアップロードを禁止 |
iam.allowedPolicyMemberDomains | ドメイン制限(外部ユーザー付与禁止) |
compute.vmExternalIpAccess | VM への外部 IP 付与を禁止 |
compute.requireOsLogin | SSH を OS Login 経由に強制 |
compute.disableSerialPortAccess | シリアルコンソール無効化 |
compute.skipDefaultNetworkCreation | default ネットワーク自動作成を抑止 |
storage.uniformBucketLevelAccess | Uniform Bucket-Level Access 強制 |
storage.publicAccessPrevention | 公開バケット作成を全面禁止 |
gcp.resourceLocations | リソース作成リージョン制限(データ主権) |
アンチパターン
全部のプロジェクトを Organization 直下にぶら下げる「フラット構造」。環境分離・課金集計・ポリシー適用が困難に。
ベストプラクティス
環境(prod/dev/staging)×ビジネスドメイン の 2 軸でフォルダ階層化。Org Policy はトップ近くで網掛け、例外は子で個別緩和。
🎯 試験での出題パターン
Q. 組織全体で外部 IP 付与を原則禁止しつつ、特定の Bastion VM だけ例外的に許可したい
A. Org Policy で constraints/compute.vmExternalIpAccess を Organization レベルで DENY、Bastion がある Project(または Folder)レベルで同 Constraint を上書きして許可リストに該当 VM を追加。子は親の Constraint を上書き可能(List の場合は inheritance を merge / replace で制御)。
3️⃣ IAM 完全解剖 — Principal × Role × Resource
IAM の三要素モデル
Principal(誰が)
Google アカウント / Group / Service Account / Workforce or Workload Identity Pool
user: / group: / serviceAccount: / principal: / principalSet:
Role(何ができる)
権限の集合。Basic / Predefined / Custom の 3 種。
権限は service.resource.verb 形式(例 compute.instances.create)
Resource(どこに)
Organization / Folder / Project / 個別リソース(GCS バケット等)
階層を下方向に継承
3 種類のロール — 詳細比較
| 種類 | 例 | 権限の細かさ | 更新責任 | Conditions | 本番推奨 |
|---|---|---|---|---|---|
| Basic Roles(旧 Primitive) | roles/owner / roles/editor / roles/viewer | 非常に粗い(全 API) | ❌ 利用不可 | ❌ 非推奨 | |
| Predefined Roles | roles/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)
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 ポリシーで広く許可した上で、特定の操作を確実にブロックする「最後の砦」として使います。
- 適用先:Organization / Folder / Project(リソース個別には未対応)
- 優先順位:Deny は Allow より常に優先(評価は階層全体で合成)
- 典型用途:
iam.serviceAccounts.actAsを全員から剥奪して特権昇格を遮断
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 Policy で iam.serviceAccounts.actAs と iam.serviceAccounts.getAccessToken を Organization レベルで allUsers 含めて全員に対し DENY。例外を Conditions で明示。
4️⃣ サービスアカウント運用 — SA Impersonation と WIF
サービスアカウント(SA)の基礎
Google Cloud では「人間ユーザー」と「ワークロード」を厳密に分離。ワークロードが API を呼ぶ際は SA を使います。SA は Principal でもあり Resource でもある二面性を持ちます。
| 種類 | 例 | 特徴 |
|---|---|---|
| User-managed SA | my-sa@project.iam.gserviceaccount.com | ユーザーが作成・管理 |
| Default SA | Compute Engine / App Engine Default SA | サービス有効化時に自動作成、Editor 権限デフォルト付与(要削減) |
| Google-managed SA | Service Agents(service-PROJECT@gcp-sa-xxx.iam) | Google が管理、CMEK 連携等で使用 |
SA 認証の 3 方式
SA Key JSON(非推奨)
JSON 鍵ファイルを発行してアプリ内に配置。長期有効・漏洩リスク大。
原則使用禁止。Org Policy で作成抑止推奨。
SA Impersonation
人間ユーザーが iam.serviceAccountTokenCreator で SA のトークンを取得。短命(1 時間)。
CI/CD や運用業務に適合。
Workload Identity Federation
外部 IdP(AWS/Azure/GitHub Actions/K8s 等)と OIDC/SAML 連携。SA Key 不要。
Google 推奨方式
SA Impersonation の 2 ロール
| ロール | 権限 | 用途 |
|---|---|---|
roles/iam.serviceAccountUser | SA を「として動作」させる権限 | Compute Engine / Cloud Run に SA を割り当てる時 |
roles/iam.serviceAccountTokenCreator | SA の短命トークンを生成 | CLI で --impersonate-service-account、CI/CD |
roles/iam.workloadIdentityUser | WIF プールから SA を Impersonate | 外部 IdP からのアクセス |
Workload Identity Federation の動作フロー
「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 | 用途 | 設定要点 |
|---|---|---|
| AWS | EC2 / Lambda から BigQuery / GCS アクセス | AWS account ID と Role ARN で属性マッピング |
| Azure | VM / AKS / Functions から GCP アクセス | Azure AD アプリケーション ID で識別 |
| GitHub Actions | OIDC で GCP デプロイ | repository / ref / workflow で属性絞り込み |
| GitLab CI | OIDC で GCP デプロイ | プロジェクト・ブランチで属性絞り込み |
| Kubernetes 外部 | EKS / AKS / オンプレ K8s から GCP | K8s ServiceAccount + OIDC Issuer |
| オンプレ AD | SAML 2.0 経由 | SAML Provider + 属性マッピング |
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 Federation。token.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 L1 | 無料 | 不可 | |
| CMEK(Software) | Cloud KMS | 140-2 L1 | 顧客 | $0.06/月/鍵 | 可能 |
| Cloud HSM | Google HSM クラスタ | 140-2 L3 | 顧客 | $1〜2.50/月/鍵 | 可能 |
| Cloud EKM | 外部 KMS(Fortanix/Thales 等) | パートナー依存 | 顧客(完全外部) | $3/月/鍵 | 可能 |
| CSEK(旧式) | 顧客提供(リクエストごと) | 顧客依存 | 顧客 | 無料 | 可能 |
Cloud KMS の階層構造
CryptoKeyVersion のライフサイクル
RestoreVersion で復活可能だが、過ぎたらそのデータは永久に復号不可。Org Policy cloudkms.minimumDestroyScheduledDuration で最低猶予を 30 日に強制推奨。
鍵選定の決定ツリー
キーローテーション戦略
| 項目 | 推奨設定 | 注意点 |
|---|---|---|
| 対称鍵自動ローテーション | 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 の詳細
- 認証:FIPS 140-2 Level 3
- マネージド:Google が HSM クラスタ運用・スケール・パッチ管理
- 暗号化メッセージサイズ制限:8 KiB(Software 鍵は 64 KiB)。大きなデータには Envelope Encryption(KMS で DEK を暗号化、データ本体は DEK で暗号化)。
- 制限:マルチリージョンは未対応(リージョナル / シングル / マルチテナント)
- 料金:1 鍵 1 月あたり最低 $1〜(操作回数で課金)
Cloud EKM の詳細
- パートナー:Fortanix / Futurex / Thales(CipherTrust) / Virtru
- 接続方式:インターネット経由(全リージョン) / VPC 経由(リージョナルのみ)
- 外部鍵素材は GCP に保存されない(最大の特徴)
- 制限:手動鍵は自動ローテーション不可、非対称鍵のアルゴリズム変更不可
- リスク:外部 KMS 障害時は復号不可 → 可用性要件次第で Cloud HSM 併用検討
Confidential Computing(処理中の暗号化)
従来の「保存中 / 転送中」に加え、処理中(メモリ内)のデータも暗号化する技術。CPU 内の TEE(Trusted Execution Environment)で実行。
| サービス | 技術 | 用途 |
|---|---|---|
| Confidential VM | AMD SEV / Intel TDX | 機密計算が必要な VM |
| Confidential GKE Nodes | Confidential 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 の動作
Ingress / Egress Rules の構造
Bridge Perimeter(双方向許可)よりもIngress / Egress Rules(細粒度許可)が推奨。以下の属性で許可条件を定義。
| 属性 | Ingress Rule | Egress Rule |
|---|---|---|
| Source / Destination | Identity / Project / VPC Network / Access Level | Resource / External Resource |
| Identity | SA / User / Group / ANY_IDENTITY | 同左 |
| Service | 対象 API(storage.googleapis.com 等) | 同左 |
| Method | API メソッド単位(google.storage.objects.get) | 同左 |
| Resource | 特定 Project 内のリソース | 特定 Project への送信 |
Dry-Run モード — 必須のワークフロー
VPC SC を本番適用する前に必ず Dry-Run で影響を測定。誤適用すると本番が完全停止します。
VPC SC 対象サービス
- 対象:Cloud Storage / BigQuery / Pub/Sub / Bigtable / Dataflow / Dataproc / Cloud Functions / Cloud Run / Vertex AI / Spanner / KMS 等の主要 API
- 非対象:Compute Engine API そのもの(一部)、Cloud Identity、Org Policy 等
Access Levels(Access Context Manager)
VPC SC で「誰が境界に入れるか」の条件をパラメータ化。
| 属性 | 例 |
|---|---|
| IP Subnetworks | 社内 CIDR 192.0.2.0/24 |
| Regions | JP / US のみ許可 |
| Required Access Levels | 条件の AND 結合 |
| Device Policy | OS バージョン、暗号化、企業端末 |
| 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 HTTPS | HTTP(S) アプリ(Web/API) | Google アカウント + IAM | 社内 Web アプリ、HTTPS LB バックエンド |
| IAP TCP Forwarding | VM への SSH / RDP / 任意 TCP | Google アカウント + IAM | 運用 SSH、Bastion 撤廃 |
| Context-Aware Access | すべての対応 API | Access Levels(端末・場所・時間) | 従業員端末の検証 |
| Chrome Enterprise Premium | SaaS / Web アプリ | BeyondCorp + DLP + 脅威保護 | Chrome ブラウザ統合管理 |
| HA VPN / Interconnect | ネットワーク全体 | BGP + 共有鍵 | オンプレ統合(廃止対象ではない) |
IAP の動作
HTTPS アプリの前段で Google が認証・認可を実施。アプリ側は「ヘッダーに署名付き 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
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 アクセスを統合したエンタープライズ向けプレミアムプラン。
- 脅威検知:リアルタイムでフィッシング・マルウェア・悪意ある URL を遮断
- DLP:コピペ・アップロード・印刷・スクリーンショットの粒度制御
- Zero Trust アクセス:Context-Aware Access を SaaS / オンプレに拡張
- シャドー IT 検知:未承認 SaaS の利用を可視化
アンチパターン: 全社 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 | 独立したビルドサービス + 改ざん不能 provenance | Cloud Build(GA で対応) + Binary Authorization |
| SLSA 4 | 2 人レビュー + 完全ハーミート性 + 再現可能 | 追加運用必要 |
Binary Authorization の動作
主要概念
| 概念 | 役割 |
|---|---|
| Attestor | 署名検証する権限者。公開鍵を保持。 |
| Attestation | 「このイメージは前段検証を通った」という署名付き証跡(Grafeas Note/Occurrence ベース) |
| Policy | 「どの Attestor の署名があればデプロイ可能か」のルール |
| Continuous Validation (CV) | デプロイ後も継続監視、ポリシー違反を周期検査 |
| Default Rule | 明示ルールに該当しないイメージのデフォルト動作(許可/拒否/Dry-Run) |
| Cluster-specific Rule | クラスタごとに異なるポリシー(prod 厳格 / dev 緩め) |
対応プラットフォーム
- GKE(GA)
- Cloud Run(GA)
- Cloud Service Mesh
- Google Distributed Cloud(オンプレ Anthos)
- 本番クラスタは厳格ルール、検証クラスタは Dry-Run で段階導入
- Attestor 鍵はCloud KMS で管理、Cloud Build SA に署名権限のみ付与
- 脆弱性スキャン(Artifact Analysis)→ 脆弱性なし → 署名 のパイプライン化
- break-glass account(緊急デプロイ)の経路を別途用意
Artifact Registry のセキュリティ機能
- Vulnerability Scanning: コンテナ / Maven / npm パッケージの CVE 検出
- Remote Repositories: 外部レジストリ(Docker Hub 等)をキャッシュ、外部依存を制御
- Virtual Repositories: 複数リポジトリを 1 つに統合、検索順序を制御
- CMEK 対応: 顧客管理鍵で暗号化
- VPC SC 対応: Service Perimeter 内に閉じ込め可能
アンチパターン: 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 | 連続値をビン化(年齢→年代) | 統計利用 |
再識別リスク分析
- k-Anonymity: 同一の準識別子を共有するレコードが k 件以上
- l-Diversity: k-匿名グループ内で機密属性が l 通り以上
- k-Map / δ-Presence: 母集団に対する識別困難性
Model Armor(2024 年導入)
Vertex AI / 任意の LLM に対して、プロンプトとレスポンスを「セキュリティフィルタ」。
- Prompt Injection の検知
- Jailbreak 試行のブロック
- PII / 機密データの漏洩防止(DLP 連携)
- 有害コンテンツ(暴力・性的・差別)のフィルタ
- 悪意ある URL の検出
Confidential Space — マルチパーティ分析
複数組織のデータを「お互いに見せず」合算分析する仕組み。TEE + アテステーション。
🎯 試験での出題パターン
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 Event | Google による設定変更(Autoscale 等) | ✅ 常時有効 | ❌ 不可 | _Required Bucket | 無料(400 日保持) |
| Policy Denied | VPC SC / Org Policy 違反 | ✅ 生成 | 除外フィルタ可 | _Default Bucket | 有料 |
「Data Access監査ログはサポートチームがアカウントの問題をトラブルシューティングするのに役立つ」 — Cloud Audit Logs
監査ログの保護
- ログエントリは不変(immutable)、改ざん不能
_RequiredLog Bucket は削除・無効化不可(Admin / System Event の最終保存先)- Log Sink で BigQuery / GCS / Pub/Sub へ転送して長期保管・SIEM 連携
- Aggregated Sink で Organization レベルから集約可能
Access Transparency / Access Approval
| 機能 | 役割 | 対象顧客 |
|---|---|---|
| Access Transparency | Google 社員がサポート対応等で顧客データにアクセスした記録 | Enterprise 以上 / 一部規制業種 |
| Access Approval | Google 社員のアクセスを顧客が事前承認するワークフロー | 追加契約必要 |
| Key Access Justifications (KAJ) | EKM 鍵アクセス時の理由を必須化 | EKM 利用顧客 |
SIEM / SOAR 統合
- Log Router で Audit Logs を Pub/Sub に転送 → Splunk / Datadog / Chronicle
- Chronicle Security Operations: Google 純正の SIEM/SOAR、SCC Enterprise に統合
- Security Health Analytics の Finding を SCC で集約管理
ログ保持と長期保管
| 方式 | 保持期間 | 用途 |
|---|---|---|
| Log Bucket(既定) | 30 日(_Default) / 400 日(_Required) | 運用調査 |
| Log Bucket カスタム保持 | 最大 10 年 | 規制対応 |
| BigQuery Sink | 無期限 | SQL クエリ分析 |
| GCS Sink(Coldline/Archive) | 無期限・低コスト | 長期保管 |
| Bucket Lock | WORM 強制 | 規制要件(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 を作成し、内部のすべてのリソースに自動的に制約を適用。手動設定の漏れを防ぐ。
- FedRAMP Moderate / High(米連邦)
- IL2 / IL4 / IL5(米国防総省)
- HIPAA
- EU Sovereign Cloud(欧州データ主権)
- Israeli Landing Zone
- Canada Protected B
Data Residency / Data Sovereignty
「データを物理的にこのリージョン外に出さない」という要件。
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 参照。
🎯 試験での出題パターン
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(無料) | Premium | Enterprise |
|---|---|---|---|
| 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 に統合。脅威検知 → 自動対応のプレイブック化。
- Finding を自動でチケット化(Jira / ServiceNow)
- 感染した VM を自動で隔離(ファイアウォール変更)
- 漏洩したクレデンシャルを自動で無効化
- Chronicle UDM で複数年ログ検索
- 無料で誤設定だけ気にしたい → 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 ステップ
各ステップの GCP ツール
| ステップ | 使うツール | 具体アクション |
|---|---|---|
| 検知 | SCC / Chronicle / Cloud Monitoring | Finding を Slack / PagerDuty 連携 |
| トリアージ | SCC + Attack Path | 影響資産と攻撃経路を可視化 |
| 封じ込め | VPC Firewall / IAM | VM ネットワーク隔離、漏洩 SA の Key 無効化 / SA 自体 Disable |
| 根絶 | Compute Snapshot + 新インスタンス | 侵害 VM はフォレンジック後に削除 |
| フォレンジック | Audit Logs / Persistent Disk Snapshot / Memory Capture | GCS に保全、書き込み防止 |
| 復旧 | Terraform / Backup and DR | IaC から再構築、クリーンイメージ |
| ポストモーテム | Active Assist / Recommender | Org 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)
事前準備(インシデント対応プレイブック)
- SCC Finding を Slack / PagerDuty に Pub/Sub 経由で連携
- break-glass account(緊急時の Owner アカウント)を MFA + KMS-protected で保管
- Backup and DR で定期スナップショット、別 Project に Sink
- 四半期ごとにインシデント対応訓練(ChaosEngineering 的)
- Org Policy で
resourcemanager.allowedExportDestinations設定(ログの外部 Sink 先制御)
💡 必殺フレーズ集(試験当日用)
| 状況・キーワード | 即答サービス・機能 |
|---|---|
| 「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 |
📌 試験中の判断フローチャート(暗記推奨)
- セキュリティ = 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