01_基礎

Section 3: セキュリティとコンプライアンス — 📘 基礎編

対象: 実務 1-2 年・GCP 初学者 / クラウドセキュリティを初めて学ぶ人。 目標: IAM・暗号化・VPC SC・IAP の基本概念を理解し、規制要件をサービスに翻訳できる。


1. クラウドセキュリティの考え方

責任共有モデル(Shared Responsibility Model)

クラウド利用では Google と顧客で責任分担 します。サービスの抽象度が上がるほど、Google が多くを担当します。

IaaS (GCE) PaaS (Cloud Run) SaaS (Workspace)
データ 顧客 顧客 顧客
アプリ 顧客 顧客 Google
ランタイム 顧客 Google Google
OS 顧客 Google Google
ハードウェア Google Google Google
物理セキュリティ Google Google Google

顧客は常にデータと IAM に責任を持つ。これが試験の前提です。

多層防御(Defense in Depth)

セキュリティは 1 つの層で完結しない。複数のレイヤーで重ねるのが原則です。

レイヤー 1: 組織ポリシー(Org Policy)
   ↓
レイヤー 2: IAM(誰が何にアクセスできるか)
   ↓
レイヤー 3: ネットワーク境界(VPC SC、ファイアウォール)
   ↓
レイヤー 4: アプリ認証(IAP、OAuth)
   ↓
レイヤー 5: データ暗号化(保管時/転送時/使用時)
   ↓
レイヤー 6: 監査(Audit Logs)

2. リソース階層

GCP のリソースは 4 層の階層 で管理されます。上位のポリシーは下位に継承 されます。

階層構造

Organization(組織、最上位 / 1 つだけ)
   │
   ├── Folder(フォルダ、複数階層可)
   │     │
   │     ├── Folder(例: production)
   │     │     └── Project(例: prod-app-001)
   │     │           └── Resource(GCE VM, GCS Bucket, etc.)
   │     │
   │     └── Folder(例: development)
   │           └── Project(例: dev-app-001)
   │
   └── Project(直下、フォルダなし)

各層の役割

階層 役割 代表的な用途
Organization 最上位、組織全体のルート 組織全体の Org Policy、課金、ID 管理
Folder 部門・環境(prod/dev/qa)単位 部門別の権限分離、環境別ポリシー
Project 実際のワークロード単位 リソース・課金・APIの境界
Resource 個別の GCE/GCS/BigQuery 等 リソース単位の IAM 付与(最小権限)

IAM の継承

上位で付与したロールは 下位に自動継承。逆方向には継承しません。

例:


3. IAM の基本

IAM の構成要素

誰が(Member / Principal)        →   Google Account / Service Account / Group
何の権限を(Role)                →   roles/viewer, roles/editor, roles/owner ...
どのリソースに(Resource)         →   Org / Folder / Project / Resource
持つか(Binding)

Binding = (Member + Role + Resource) の組合せ。

Member の種類

種類 説明
Google Account 個人アカウント user:alice@example.com
Service Account アプリ・ワークロード用 serviceAccount:app@project.iam.gserviceaccount.com
Google Group グループ group:dev-team@example.com
Cloud Identity / Workspace Domain 組織全体 domain:example.com
Workforce Pool 外部 IdP 統合(OIDC/SAML) Okta/Azure AD のユーザー
All Authenticated Users 全 Google アカウント allAuthenticatedUsers
All Users 認証なし含む全員(要注意) allUsers

ロールの 3 種類

種類 説明 推奨度
基本ロール(Basic Role) Owner / Editor / Viewer の 3 つ。広範な権限 本番は避ける
事前定義ロール(Predefined Role) サービス別の具体的ロール(例: roles/storage.objectViewer 推奨
カスタムロール(Custom Role) 必要な権限のみ束ねた独自ロール 細かい統制が必要なとき

最小権限の原則(Principle of Least Privilege)

「必要最小限の権限のみ付与」 が IAM の鉄則。

悪い例:

alice@example.com に roles/owner を付与(=全権限)

良い例:

alice@example.com に roles/storage.objectViewer を該当バケットのみ付与

Service Account(重要)

人間ではないアプリ・ワークロードのアイデンティティ

[GCE VM] ─attached─→ [Service Account] ─has─→ [IAM Role]
                                              ↓
                                         GCP API にアクセス

主な用途:

⚠️ Service Account キー(JSON)は 漏洩リスクが高い。Workload Identity / Workload Identity Federation での代替が推奨されます(後述)。


4. データの暗号化

3 つの状態の暗号化

状態 デフォルト
At Rest(保管時) GCS のオブジェクト、PD のディスク AES-256 で自動暗号化
In Transit(転送時) クライアント ↔ GCP、GCP 内部通信 TLS で自動暗号化
In Use(使用時) メモリ内の処理中データ Confidential VM(AMD SEV/Intel TDX)

鍵管理の選択肢(重要・頻出)

鍵の管理権限
  Google が完全管理(デフォルト)
    → Google-managed encryption keys
  
  顧客が鍵を管理したい
    ├── GCP 内で鍵管理
    │   ├── ソフトウェア鍵: Cloud KMS (CMEK = Customer-Managed Encryption Key)
    │   └── ハードウェア鍵: Cloud HSM(FIPS 140-2 Level 3)
    │
    └── 鍵を GCP 外部で保持
        ├── 暗号化時に持込: CSEK(Customer-Supplied Encryption Key、限定機能)
        └── 外部 HSM で鍵を保持: Cloud EKM(External Key Manager)

4 つの暗号化方式の比較

方式 鍵の所有 鍵の場所 用途
Google-managed(デフォルト) Google Google 一般
CMEK (Cloud KMS) 顧客 GCP 内 KMS 規制対応、監査
Cloud HSM 顧客 GCP 内 HSM FIPS 140-2 Level 3 要件
CMEK with HSM 顧客 GCP 内 HSM 同上、Cloud KMS 経由
CSEK(限定) 顧客 顧客(API 呼出時送信) レガシー、機能限定
Cloud EKM 顧客 顧客側 HSM(オンプレ/サードパーティ) 完全外部鍵管理

試験で「顧客が鍵を完全に管理 + GCP 外部に置く」と問われたら Cloud EKM が正解。

Cloud KMS の基本

[Key Ring] ─contains─→ [Key] ─version─→ [Key Version (v1, v2, ...)]
   ↑
リージョン or グローバル

鍵ローテーション


5. Secret Manager

API キー、パスワード、証明書などのシークレットを安全に保管・配布 するサービス。

基本機能

[Secret] ─version─→ [Secret Version (v1, v2, ...)]
   ↓
IAM で誰がアクセス可能か制御
   ↓
バージョン指定でアクセス(latest または特定バージョン)

主な特徴

特徴 内容
暗号化 自動で Google-managed 暗号化、CMEK も使える
アクセス制御 IAM ロール(roles/secretmanager.secretAccessor
バージョン管理 旧バージョンを保持、ロールバック可能
監査ログ Cloud Audit Logs に記録
ローテーション スケジュール通知 + 自動ローテーション(Pub/Sub 連携)
レプリケーション Automatic(マルチリージョン)/ User-managed(リージョン指定)

Secret Manager Regional(最新)

リージョン内に閉じたシークレット保管。データ主権要件 に対応。


6. 監査ログ(Cloud Audit Logs)

誰が、いつ、何をしたか」を記録するログ。試験頻出。

4 種類のログ

ログ種類 内容 デフォルト 課金
Admin Activity 管理操作(IAM 変更、VM 作成など) 常時有効 無料
Data Access データ読み書き(GCS read など) デフォルト無効(GCS 例外) 有料
System Event システム発生イベント(メンテ等) 常時有効 無料
Policy Denied ポリシーで拒否されたアクセス 常時有効 無料

Access Transparency と Access Approval(最新)

機能 内容
Access Transparency Google 内部担当者の顧客データアクセスを記録(誰が、なぜ)
Access Approval Google 担当者のアクセスに顧客の事前承認を必須化

規制対応(HIPAA/FedRAMP)では 両方を有効化 するのが一般的。


7. ネットワークセキュリティの基本

VPC ファイアウォール

VPC 内の通信を IP/ポート/タグで制御する基本機能。

種類 範囲 適用順
VPC Firewall Rules VPC 単位 プロジェクト内
Hierarchical Firewall Policy Organization / Folder 単位 VPC より優先
Network Firewall Policy VPC レベル(新世代、推奨) Global / Regional

Hierarchical Firewall Policy(重要)

組織や Folder 単位で 下位に強制継承 されるファイアウォールルール。

Organization Policy
   ├── allow: corp_network → all
   ├── deny: 0.0.0.0/0 → SSH (規制違反防止)
   ↓ 継承
Folder Policy (prod)
   └── deny: external → internal_db
   ↓ 継承
Project の VPC Firewall(規則を追加できるが、上位の deny を覆せない)

VPC Service Controls(VPC SC、重要・頻出)

「データの境界(Service Perimeter)」を作る 機能。リソース内のデータが外部にコピーされるのを防ぐ。

[VPC SC Perimeter]
   ├── Project A
   ├── Project B
   │   └── GCS / BigQuery / Pub/Sub
   └── Service: GCS, BigQuery, ...

→ Perimeter 外から内部へのアクセス: 拒否
→ Perimeter 内から外部へのコピー: 拒否(exfiltration 防止)
→ Perimeter 内通信: 許可

主な防御対象:


8. Identity-Aware Proxy(IAP)

VPN なしで Google アイデンティティベースの安全なアクセス」を実現するサービス。

仕組み

[ユーザー]
   ↓ HTTPS(Google ログイン)
[IAP]
   ↓ ID チェック + IAM 認可
[内部アプリ / GCE VM / SSH]

2 つのユースケース

用途 説明
IAP for HTTP(S) Web アプリへのアクセス保護(GAE / GCE / GKE / Cloud Run)
IAP TCP Forwarding SSH / RDP / 任意の TCP ポートを VPN なしで保護

IAP の利点


9. リモートアクセス手法の選択肢

方法 用途 特徴
IAP for HTTP(S) 内部 Web アプリ公開 VPN 不要、Google ログイン
IAP TCP Forwarding SSH/RDP/DB ポート VPN 不要、TCP 任意
Chrome Enterprise Premium(旧 BeyondCorp) BYOD、ゼロトラスト デバイスポスチャ評価 + IAP
Cloud VPN(HA VPN) オンプレ↔GCP 暗号化接続 サイト間 VPN
Cloud Interconnect オンプレ↔GCP 専用線 高帯域・低レイテンシ
Workload Identity Federation 外部ワークロード→GCP キー不要、短期トークン
Service Account Impersonation 一時的な特権 キー不要、短期トークン

10. Service Account Impersonation(重要)

他のサービスアカウントとして一時的に振る舞う。Service Account キー(漏洩リスク)を回避できる。

[ユーザー alice]
   ↓ has roles/iam.serviceAccountTokenCreator
[Service Account A]
   ↓ impersonate(短期トークン取得)
[GCP API にアクセス]

利点:


11. Workload Identity Federation(最新・頻出)

外部のワークロード(AWS、Azure、GitHub Actions、Kubernetes 等)が、Service Account キーなしで GCP API にアクセスできる仕組み。

仕組み

[GitHub Actions / AWS Lambda / Azure Workload]
   ↓ OIDC/SAML トークン提示
[Workload Identity Pool]
   ↓ マッピング + 認証
[Service Account に Impersonate]
   ↓
[GCP API アクセス]

利点

旧方式(SA キー) Workload Identity Federation
JSON キーをコピー キー不要
漏洩リスク 短期トークン(漏洩しても短期失効)
ローテーション必要 自動
監査困難 監査ログに連携元の ID 記録

試験頻出: 「GitHub Actions / AWS Lambda から GCP にキー無しでアクセス」→ Workload Identity Federation

Workforce Identity Federation(人間用)

ユーザー(人間)が外部 IdP(Okta/Azure AD/Active Directory)の ID で GCP にログインできる仕組み。Cloud Identity の代替として使える。


12. Chrome Enterprise Premium(旧 BeyondCorp Enterprise)

Google のゼロトラスト・エンタープライズ製品。リネームに注意。

[ユーザー(社内/BYOD/外部)]
   ↓ Chrome / Endpoint Verification
[Chrome Enterprise Premium]
   ├── デバイスポスチャ評価(OS バージョン、暗号化など)
   ├── ユーザー認証
   ├── コンテキストアウェア アクセス(場所/時間/デバイス)
   └── DLP(データ流出防止)
   ↓ 条件達成
[内部アプリ / SaaS]

主な機能:

試験頻出: 「BYOD で Chrome 経由社内アプリにアクセス」→ Chrome Enterprise Premium


13. ソフトウェアサプライチェーンの保護

ビルド〜デプロイの脅威

[コードリポ] → [ビルド] → [コンテナ Registry] → [デプロイ] → [本番]
   ↑           ↑              ↑                  ↑
脆弱性     ビルド改竄    悪意あるイメージ    認証バイパス
依存攻撃   秘密鍵漏洩    ベース改竄

主要対策サービス

サービス 役割
Artifact Registry コンテナ・パッケージの集中管理(脆弱性スキャン付)
Cloud Build ビルド自動化(attestation 生成可能)
Container Analysis イメージの脆弱性スキャン
Binary Authorization 「承認されたイメージのみデプロイ可」のポリシー強制
SLSA(Supply-chain Levels for Software Artifacts) サプライチェーン信頼度の標準

Binary Authorization の流れ

[コード] → [Cloud Build] → [署名 attestation] → [Artifact Registry]
                                                       ↓
                                            [Binary Authorization で検証]
                                                       ↓
                                          検証 OK → デプロイ許可
                                          検証 NG → デプロイ拒否

SLSA レベル

レベル 内容
SLSA 1 ビルドプロセスの自動化
SLSA 2 ビルドの完全性(バージョン管理、認証ビルド)
SLSA 3 ビルド環境の隔離、attestation の改竄不可
SLSA 4 レビュー必須、隔離されたビルド、再現可能ビルド

14. Secure AI(最新・頻出)

LLM や AI モデル特有のリスクへの対策。

3 つの主要リスクと対策

リスク 対策サービス
Prompt Injection / Jailbreak Model Armor
PII / 機密データの漏洩 Sensitive Data Protection(旧 Cloud DLP)
モデル / 重みの盗難 Confidential VM for AI + Cloud KMS(CMEK)

Model Armor(最新)

LLM 向けのファイアウォール。プロンプト入力・出力をスクリーニング

[ユーザー入力]
   ↓
[Model Armor]
   ├── Prompt Injection 検出
   ├── Jailbreak 試行検出
   ├── 不適切コンテンツフィルタ
   ├── PII / 機密データ検出
   └── ジオロケ・規制ベースのブロック
   ↓ 安全な入力のみ通過
[LLM(Gemini, Llama, Claude など)]
   ↓
[Model Armor で出力チェック]
   ↓
[ユーザー]

Sensitive Data Protection(旧 Cloud DLP)

データ内の PII を 自動検出・マスキング・トークン化

主な機能:


15. 規制対応の基礎

主要な規制とサービスマッピング

規制 対象データ GCP 対応
HIPAA 医療情報(米国) BAA 締結 + 対象サービス利用 + Audit Logs
PCI DSS クレジットカード情報 Assured Workloads + CMEK + Sensitive Data Protection
GDPR EU 個人データ Data Residency(リージョン制限) + Audit Logs + DPA
SOC 2 サービス組織の管理 Compliance Reports Manager で SOC 2 レポート取得
FedRAMP 米国連邦政府 Assured Workloads (US Federal)
COPPA 児童プライバシー(米国) アクセス管理 + 同意管理
ITAR / EAR 米国輸出規制 Assured Workloads (US Sovereign)

Assured Workloads(重要)

規制対応のための 隔離環境を自動構築 するサービス。

[Assured Workloads]
   ↓
Folder + Project を規制要件に合わせて作成
   ├── リージョン制限(データ主権)
   ├── サポート要員のロケーション制限
   ├── 暗号化要件(CMEK 強制)
   ├── 監査ログ強制有効化
   └── 規制対応サービスのみ許可

対応規制:

データ主権(Data Sovereignty / Data Residency)

データが特定の国・地域から外に出ない」要件。

実現方法:


16. まとめ — セキュリティ設計の判断フロー

1. 規制要件をヒアリング(HIPAA / PCI DSS / GDPR ...)
   ↓
2. データ主権要件を整理(どの国・地域に保管?)
   ↓
3. リソース階層を設計(Org → Folder → Project)
   ↓
4. IAM 設計(最小権限、グループベース、職務分離)
   ↓
5. 暗号化方式を選択(Google-managed / CMEK / Cloud HSM / EKM)
   ↓
6. ネットワーク境界を設計(VPC SC、Hierarchical FW、Org Policy)
   ↓
7. アクセス手法を選択(IAP / Chrome Enterprise Premium / WIF)
   ↓
8. 監査ログ・コンプラレポート設定
   ↓
9. サプライチェーン保護(Binary Authorization + SLSA)
   ↓
10. AI 利用なら Secure AI(Model Armor + Sensitive Data Protection)

次のステップ