S4 運用管理
🎯 Deep Dive
出題 ~19%
Security Operations
公式ドキュメント深掘り
Cloud Audit Logs(4 種)・Log Sinks・SCC(Standard / Premium / Enterprise)・Binary Authorization・Container Analysis・Security Posture Service・Cloud IDS・VPC Flow Logs・SIEM 連携を、公式仕様・コスト・SLA・運用パターンまで深掘り。
1. Cloud Audit Logs 4 種詳細
PCSE で 最頻出 の暗記項目。4 種の役割・既定・料金・保持期間を完璧に把握する。
| 種類 | 記録対象 | 既定 | 料金 | 既定保持 | サンプルメソッド |
| Admin Activity | 管理操作(リソース変更 / IAM 変更) | 有効 | 無料 | 400 日 | SetIamPolicy, CreateBucket, DeleteCluster |
| Data Access | データの読み書き(パブリックリソース除く) | 無効 | 有料 | 30 日 | BigQuery jobservice.jobcompleted, GCS GetObject |
| System Event | Google が自動で行う操作 | 有効 | 無料 | 400 日 | Auto-restart, Live Migration |
| Policy Denied | VPC SC / IAM Deny でブロックされたリクエスト | 有効 | 無料 | 30 日 | VPC SC 違反 / IAM Deny ヒット |
Data Access ログの有効化粒度
Data Access ログは サービスごと + 3 つの種別(ADMIN_READ / DATA_READ / DATA_WRITE)で有効化。コスト管理のため必要範囲のみに絞る。
json 組織レベルで BigQuery のみ Data Access ログ有効化
{
"auditConfigs": [{
"service": "bigquery.googleapis.com",
"auditLogConfigs": [
{"logType": "ADMIN_READ"},
{"logType": "DATA_READ"},
{"logType": "DATA_WRITE"}
]
}]
}
⚠️ Data Access ログのコスト管理
- BigQuery / Cloud Storage / Cloud SQL の Data Access を全プロジェクトで有効化すると 月数万ドル になり得る
- 機微データセットだけに サービス + リソース粒度 で有効化
- 除外フィルタ(Exclusion Filter)で health-check / 内部 SA / 大量低リスク操作を除外
- Cloud Logging の取り込み料金は ~$0.50/GiB(最初の 50 GiB / 月は無料)
監査ログに記録されない例
- API キーで実行された読み取り操作(一部)
- パブリックリソースへのアクセス(例:公開バケットへの読み取り)
- BigQuery の
SELECT 結果のキャッシュヒット時の読み取り
2. Log Sinks / Aggregated Sink
ログを Cloud Logging から他の宛先にエクスポート。Aggregated Sink が組織全体集約の核。
Sink の種類と特性
- Project Sink:プロジェクト内のログのみ
- Aggregated Sink:組織 / フォルダレベルで
--include-children 指定可。配下すべてのログを集約
- Inclusion Filter:取り込むログをフィルタ(Logging クエリ言語)
- Exclusion Filter:除外。Sink ごとに最大 50 ルール
gcloud Aggregated Sink で組織全体の Audit Log を Pub/Sub に集約
gcloud logging sinks create org-audit-to-chronicle \
pubsub.googleapis.com/projects/security-PROJECT/topics/audit-events \
--organization=ORG_ID \
--include-children \
--log-filter='logName:"cloudaudit.googleapis.com"'
3. Log Bucket / Log Analytics
Cloud Logging の物理ストレージが Log Bucket。Log Analytics で BigQuery 互換のクエリが可能。公式
既定の Log Bucket
_Required:Admin Activity / System Event 強制保管、削除不可、保持 400 日
_Default:その他ログ。保持期間は変更可(最長 3,650 日)
- カスタム Log Bucket:用途別に分離。IAM で見える人を絞る
Log Analytics
- Log Bucket を BigQuery クエリで直接分析(コピー不要)
- BigQuery 連動で SQL / INFORMATION_SCHEMA を活用
- Linked Dataset として BigQuery 側に登録できる
改ざん対策
- Log Bucket Retention + Lock:保持期間中の削除を物理的に不可
- Cloud Storage に同時エクスポート時は Bucket Lock + Retention Policy
- 監査ログ用は 専用プロジェクト、IAM 最小化、Super Admin 操作のアラート
4. Security Command Center 3 Tier
GCP のセキュリティ管理ダッシュボード。Standard / Premium / Enterprise の 3 階層。公式 Tier 比較
| 機能 | Standard | Premium | Enterprise |
| Security Health Analytics(基本検出器) | ✓ 一部 | ✓ 全 | ✓ 全 |
| Web Security Scanner | ✓ App Engine のみ | ✓ 全公開アプリ | ✓ |
| Event Threat Detection | ― | ✓ | ✓ |
| Container Threat Detection | ― | ✓ | ✓ |
| VM Threat Detection | ― | ✓ | ✓ |
| Cloud Run Threat Detection | ― | ✓ | ✓ |
| Sensitive Data Protection (Discovery 連携) | ― | ✓ | ✓ |
| Compliance Dashboard(CIS / PCI-DSS / NIST) | ― | ✓ | ✓ |
| Posture Management | ― | ✓ | ✓ |
| Attack Path(攻撃経路の可視化) | ― | ― | ✓ |
| Curated Detections(Chronicle ルール) | ― | ― | ✓ |
| SIEM / SOAR(Chronicle 統合) | ― | ― | ✓ |
| マルチクラウド(AWS / Azure) | ― | ― | ✓ |
✅ Tier 選定の指針
- 個別プロジェクトの誤設定可視化 → Standard
- 組織レベル脅威検知(IAM 異常 / マイナー / コンテナ脅威)→ Premium
- SOC 運用 + SIEM/SOAR + マルチクラウド → Enterprise
5. SCC 検出器詳細(Premium 以上)
Event Threat Detection(ETD)
- 入力:Audit Logs(Admin Activity / Data Access)、Cloud DNS Logs、VPC Flow Logs、Workspace Activity
- 検出例:
- brute force SSH(失敗ログイン多発)
- IAM 異常使用(短時間で多数の API 呼び出し)
- Cryptomining 接続先 IP / DNS への外向き通信
- 悪性 IoC への接続
- Service Account 異常な国からの利用
Container Threat Detection
- 入力:GKE Node の auditd / kernel イベント
- 検出例:
- reverse shell
- suspicious binary 実行(curl-pipe-bash 等)
- Added binary executed
- Library load via /proc/self/maps
- 対応 GKE:1.21+ / Linux ノード
VM Threat Detection
- ホストの hypervisor から VM メモリをスキャン(VM 内エージェント不要)
- 検出例:
- Cryptomining プロセス(XMRig 等のシグネチャ)
- カーネルルートキット
Cloud Run Threat Detection
- Cloud Run の起動コマンド / 実行プロセスを監視
- サーバーレスでもコンテナ脅威検出が可能になった新機能
6. Security Health Analytics(SHA)
構成ミスを自動検出。検出 → Finding として SCC ダッシュボードに表示。公式検出器一覧
代表的な検出カテゴリ(一例)
- PUBLIC_BUCKET_ACL:GCS バケットが allUsers / allAuthenticatedUsers に公開
- OPEN_FIREWALL:0.0.0.0/0 からの SSH/RDP 許可
- NON_ORG_IAM_MEMBER:組織外ドメインへの IAM 付与
- SQL_NO_ROOT_PASSWORD:Cloud SQL root に空パスワード
- BUCKET_LOGGING_DISABLED:GCS のアクセスログ無効
- WEB_UI_ENABLED:GKE Dashboard 有効化(非推奨)
- SHIELDED_VM_DISABLED:Shielded VM 未設定
- API_KEY_NOT_ROTATED:90 日以上ローテーションされていない API キー
- FLOW_LOGS_DISABLED:VPC Flow Logs 未有効化
SHA カスタムモジュール
組み込み検出器に加え、CEL 式 で自社ルールを追加できる。公式
yaml SHA カスタムモジュール例:本番バケットに `compliance` ラベル必須
customConfig:
predicate:
expression: |
resource.labels.environment == "prod"
&& !has(resource.labels.compliance)
resourceSelector:
resourceTypes: ["storage.googleapis.com/Bucket"]
severity: HIGH
description: "Prod buckets must declare a compliance label."
recommendation: "Add a `compliance` label (pii/pci/public/internal)."
displayName: "missing_compliance_label_on_prod_bucket"
enablementState: ENABLED
7. Security Posture Service
組織の セキュリティ姿勢ベースライン を宣言的に管理し、ドリフトを検出。公式
- Posture YAML で 「組織ポリシー + SHA カスタムモジュール + IAM Recommendations」を宣言
- Posture を組織 / フォルダ / プロジェクトにデプロイ
- Posture からの逸脱 = Finding として SCC に上がる
- 政府系・規制対応の標準ベースライン(FedRAMP / CIS / NIST)を横展開する基盤
事前定義 Posture テンプレート
- Secure foundations posture
- FedRAMP High posture
- FedRAMP Moderate posture
- CIS GCP Foundations Benchmark posture
- NIST 800-53 posture
- EU AI Act posture(プレビュー)
8. Binary Authorization
署名済みコンテナイメージのみを GKE / Cloud Run / Anthos / Cloud Run for Anthos にデプロイ許可。公式
Policy の構造
- defaultAdmissionRule:プロジェクト全体の既定(ALWAYS_ALLOW / ALWAYS_DENY / REQUIRE_ATTESTATION)
- clusterAdmissionRules:GKE クラスタ単位の上書き
- requireAttestationsBy:信頼する Attestor のリスト
- admissionWhitelistPatterns:例外(gcr.io/google_containers/* など)
- enforcementMode:ENFORCED_BLOCK_AND_AUDIT_LOG / DRYRUN_AUDIT_LOG_ONLY
yaml Binary Authorization Policy 例
defaultAdmissionRule:
evaluationMode: REQUIRE_ATTESTATION
enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
requireAttestationsBy:
- projects/security-PROJECT/attestors/prod-attestor
clusterAdmissionRules:
asia-northeast1.prod-cluster:
evaluationMode: REQUIRE_ATTESTATION
enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
requireAttestationsBy:
- projects/security-PROJECT/attestors/prod-attestor
- projects/security-PROJECT/attestors/qa-signoff-attestor
admissionWhitelistPatterns:
- namePattern: "gcr.io/PROJECT/system-mirror/*"
globalPolicyEvaluationMode: ENABLE
Breakglass モード
緊急時にポリシーを迂回してデプロイ可能。alpha.image-policy.k8s.io/break-glass: "true" アノテーション付与。Pod の break-glass フラグは Audit Log に記録される。
⚠️ Binary Authorization の落とし穴
- Helm Chart / Operator が 外部レジストリイメージ を使うと検証失敗 → whitelist 整備
- CI/CD パイプライン側の Attestor が落ちると 全デプロイ停止
- Breakglass は乱用されがち → Audit Log にアラートを設定し、運用ガバナンスを敷く
- マルチクラスタ運用では Policy Drift に注意(IaC で一元管理)
9. Continuous Validation(CV)
デプロイ後の Pod を 継続的に Policy 検証し、違反を Finding として SCC に上げる。
- 24 時間ごとに実行中の Pod をチェック
- イメージ署名失効 / Attestor 削除 / CVE 新規発見などをトリガに検出
- 違反 Pod は 強制終了せず、Finding として通知のみ(運用負荷を抑えるため)
10. Container Analysis
Artifact Registry のコンテナイメージに対する 脆弱性スキャン。公式
スキャン対象
- OS パッケージ:Debian / Ubuntu / Alpine / CentOS / RHEL / SLES / Mariner / Distroless
- 言語パッケージ:Go / Python / Node.js / Java / Ruby
- SBOM 出力(SPDX / CycloneDX)
CVE 検出後のフロー
- Container Analysis が CVE を検出 → Pub/Sub 通知
- SCC に Finding として登録(重大度 CRITICAL / HIGH / MEDIUM / LOW)
- Cloud Build パイプラインで
gcr-cleaner 等を起動して 該当イメージを quarantine
- 修正後の新イメージを Attestor で署名 → Binary Authorization 経由でデプロイ
11. Cloud IDS
Palo Alto Networks 製エンジンを Google マネージドで提供する 侵入検知サービス。公式
仕組み
- VPC のトラフィックを Packet Mirroring で IDS Endpoint に複製
- IDS Endpoint がシグネチャベースで分析(マルウェア / C2 / エクスプロイト)
- 検出結果は SCC + Cloud Logging へ
- Severity プロファイル(CRITICAL / HIGH / MEDIUM / LOW / INFO)
料金特性
- IDS Endpoint:1 時間あたりの固定料金
- 処理データ量:GiB あたりの従量課金
- 多重トラフィック(複数 VPC をミラー)はコストが膨らみやすい
⚠️ Cloud IDS の制限事項
- 暗号化されたトラフィック(TLS)はペイロード検査不可(メタデータのみ)→ TLS Inspection は Cloud NGFW Enterprise / Secure Web Proxy で別途
- Packet Mirroring 対応リージョンのみ利用可
- 非 VPC のトラフィック(Cloud Run / Functions の egress)は対象外
12. VPC Flow Logs / Packet Mirroring
VPC Flow Logs
- サブネット単位で有効化
- 記録内容:5-tuple、バイト数、パケット数、duration、メタデータ(GKE Pod 名 / GCE インスタンス名)
- ペイロード(payload)は含まれない
- サンプリングレート(既定 50%)と保持間隔(既定 5 秒)を調整可
- 料金:取り込み + 保管 + Logging API 読み取り
Firewall Rules Logging
- FW ルールごとに有効化
- 許可 / 拒否の決定 + 5-tuple を記録
- 「何がブロックされたか」の可視化に必須
Packet Mirroring
- VPC のトラフィックを別のインスタンスに 完全複製(ペイロード含む)
- Cloud IDS / 3rd party IDS / フォレンジック分析ツール向け
- 料金:複製パケット量 × 単価
13. SIEM 連携アーキ
14. リスク・落とし穴総まとめ
🚨 試験頻出のリスクトピック
- Data Access ログを既定有効と思い込む:無効 + 有料 + 30 日保持
- Aggregated Sink ≠ Project Sink:組織レベルが必要
- VPC Flow Logs はメタデータのみ:ペイロードは Packet Mirroring / Cloud IDS
- SHA は構成ミス検出:実行時脅威は ETD / Container TD / VM TD
- Binary Authorization の Breakglass:監査必須、運用ガバナンス必須
- Continuous Validation は Pod を停止しない:通知のみ。停止には別途 OPA / Gatekeeper 等
- Cloud IDS は暗号化されたペイロードを検査不可
- Log Bucket Retention Lock 後は短縮不可
- 監査ログ用 Project を共通 Project と混在:IAM 漏洩で監査ログ改ざんリスク
15. 設計チェックリスト
- Admin Activity / System Event / Policy Denied ログを 全プロジェクトで確実に保持
- Data Access ログを 機微サービスのみ有効化(コスト管理)
- 組織レベル Aggregated Sink で Pub/Sub / BigQuery / GCS / Log Bucket の 4 宛先
- 監査ログ用 Project を 専用化、IAM 最小化、Super Admin 操作にアラート
- Log Bucket の Retention + Lock で 改ざん不可(規制要件に応じ 7〜10 年)
- SCC は最低 Premium、SOC 運用なら Enterprise + Chronicle
- SHA カスタムモジュールで 社内ベースラインを表現
- Security Posture Service で 規制テンプレートを組織にデプロイ
- GKE / Cloud Run は Binary Authorization + Continuous Validation
- Artifact Registry の vuln scan を有効化、CRITICAL は Cloud Build で fail
- Cloud IDS / VPC Flow Logs / FW Rules Logging を 本番 VPCに展開
- SIEM 連携は Pub/Sub Sink、Chronicle または Splunk Dataflow テンプレで push