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

コンプライアンスとデータ保護

HIPAA・PCI DSS・GDPR。規制要件をアーキテクチャに翻訳する

この章で学ぶこと

試験ガイド対応: セクション 3.2(コンプライアンスを考慮した設計)、3.1(セキュリティを考慮した設計)

第 13 章では鍵・境界・ゼロトラストという「攻撃から守る」道具を揃えました。この章のテーマは規制と監査です。「HIPAA に対応せよ」「カード情報は PCI DSS 準拠で」「EU 顧客のデータは EU 域内に」——アーキテクトの仕事は、こうした法律・業界基準の言葉を具体的なプロジェクト構成・プロダクト選択・ログ設計に翻訳することです。PCA 試験でもケーススタディ(EHR Healthcare など)でも、この翻訳力がそのまま問われます。

規制をアーキテクチャに翻訳する — 責任共有・HIPAA・PCI DSS・GDPR

コンプライアンスは責任共有 — 認証の調べ方

まず大前提として、クラウドのコンプライアンスは Google と顧客の二階建てです。インフラとマネージドサービスの層は Google が運用し、第三者監査を受けて SOC 1 / SOC 2 / SOC 3、ISO/IEC 27001(情報セキュリティ)・27017(クラウド)・27018(PII 保護)・27701(プライバシー)、PCI DSS などの認証・監査レポートを取得しています。これらのレポートは Compliance Reports Manager から直接ダウンロードでき、自社の監査対応にそのまま利用できます。一覧は公式のコンプライアンス リソースセンターに地域別・業界別で整理されています。

一方、GDPR や HIPAA、COPPA のような法規制そのものについては、公式ページが明言するとおり「クラウド プロバイダは顧客の法令準拠を証明できません」。Google が提供するのはガイダンス文書・コントロールのマッピング・契約上のコミットメントまでで、その上に構築したシステムの準拠性は顧客の責任です。Google はこの協働を「Shared Fate(運命共有)」と呼び、後述の Assured Workloads のような「安全な構成を最初から強制する」仕組みで顧客側の責任範囲を支援します。

Google が運用し、監査を受ける層 インフラと物理セキュリティ マネージドサービスの運用 第三者監査: SOC 2 / ISO 27001 顧客が構成し、自ら証明する層 IAM とネットワークの構成 データの分類と保護(PII) 監査証跡の収集と保管 監査レポート 自社の監査人・規制当局へ証明 構成の証拠 + Google の認証
図 14-1 コンプライアンス証明の二階建て。Google 層の監査レポートは Compliance Reports Manager からダウンロードし、顧客層の構成証拠(IAM・監査ログ・データ保護)と束ねて自社の監査に提出する。

HIPAA — BAA を結び、対象サービスだけを使う

米国の医療情報(PHI: Protected Health Information)を扱うシステムでは、HIPAA が求める BAA(Business Associate Agreement、事業提携契約)を Google と締結することが出発点です。締結は公式の手順(Privacy compliance and records ガイド)に従ってレビュー・同意する形で行えます。設計上のポイントは 3 つです。

PCI DSS — カード会員データ環境(CDE)をスコープ分離する

Google Cloud は PCI DSS 4.0 の Level 1 サービスプロバイダとして認定されており、要件ごとの責任分担表が公開されています。顧客側の設計の要諦はただひとつ、監査スコープを小さくすることです。公式アーキテクチャガイドは、決済処理環境を本番環境から分離した専用の Google Cloud アカウントに置くことを推奨しており、IAM 構成に慣れたチームであれば専用プロジェクトによる分離でも同等のスコープ削減になるとしています。

カード保有者 決済専用プロジェクト(CDE) PCI DSS 監査スコープ 外部アプリケーション LB 決済アプリ(MIG) カード会員データ 決済プロセッサ 分析プロジェクト (スコープ外) HTTPS 決済 API のみ許可 SDP で トークン化して
図 14-2 PCI DSS のスコープ分離。監査対象(CDE)を専用プロジェクトに閉じ込め、出入りする経路をすべて限定する。スコープ外へ渡すデータは生のカード番号ではなくトークンにする。

GDPR とデータレジデンシー、COPPA

GDPR では顧客が管理者(controller)、Google が処理者(processor)という役割分担になります。Google は Cloud Data Processing Addendum(CDPA、データ処理規約)で「顧客の指示に従ってのみデータを処理する」ことと GDPR 遵守を契約上コミットし、越境移転には EU 標準契約条項(SCC)を用意しています。サブプロセッサの一覧も公開されており、顧客側の処理者評価に使えます。

技術面の主戦場はデータレジデンシー(保存場所の制御)です。打ち手は 3 段階あります。① リージョン選択で保存場所を自分で選ぶ(第 8 章のロケーションタイプ)、② 組織ポリシーのリソース ロケーション制約で「EU 以外にリソースを作れなくする」(第 2 章)、③ 次項の Assured Workloads で残留性・人員アクセスまで含めて強制する、です。

児童のプライバシーを守る米国の COPPA も、公式コンプライアンス一覧に掲載される「法規制」カテゴリのひとつです。前述のとおりプロバイダが顧客の準拠を証明することはできないため、保護者同意の取得や収集最小化はアプリケーション側の設計責務であり、クラウド側では Sensitive Data Protection による検出・削除の仕組みづくりが支援材料になります。

Assured Workloads — 規制要件を「設定で強制する」

ここまでの翻訳作業を人手のレビューだけで守り続けるのは困難です。Assured Workloads は、規制ワークロード向けの制御一式(コントロールパッケージ)を選んで専用フォルダを作ると、配下のすべてのプロジェクト・リソースにガードレールが自動適用されるサービスです。制御は第 2 章で学んだ組織ポリシー制約として実装されるため、後から作るリソースにも漏れなく効きます。

コントロールパッケージを選ぶ(例: 日本リージョン、FedRAMP Moderate、EU) フォルダ作成時に組織ポリシー制約として適用 組織 Assured Workloads フォルダ プロジェクト A プロジェクト B 新規プロジェクト 作成時から制約下 データレジデンシー: 日本に制限 利用可能なサービスを制限 人員アクセス要件(所在地・審査) 暗号化要件(CMEK / EKM)
図 14-3 Assured Workloads の強制モデル。パッケージの制御は組織ポリシー制約としてフォルダに焼き付くため、後から作る新規プロジェクトにも最初から効く。違反は監視・通知できる。
試験の視点: 規制キーワードからプロダクトへの写像を即答できるようにしましょう。「PHI / HIPAA」→ BAA 締結 + 対象サービスのみ使用。「カード情報 / PCI DSS」→ 専用プロジェクトでスコープ分離。「データを国内 / EU 域内に」「政府系規制」→ Assured Workloads。「PII の検出・マスキング」→ Sensitive Data Protection。「誰がいつアクセスしたかの証明」→ Cloud Audit Logs(+ Google 人員側は Access Transparency)。選択肢に IAM や CMEK が混ざっていても、問題文の主語が「規制・監査・証明」なら本章のプロダクト群が正解筋です。

Sensitive Data Protection — PII の検出・マスキング・トークン化

Sensitive Data Protection(旧称 Cloud Data Loss Prevention / Cloud DLP。API 名は現在も DLP API)は、機密データを「見つけて、無害化する」ためのサービス群です。機能は 4 つに大別できます。

「何を機密とみなすか」を定義するのが infoType です。メールアドレス・電話番号・クレジットカード番号など多数の組み込み検出器に加え、正規表現や辞書によるカスタム infoType を定義できます。検出は確率的で、結果には likelihood(POSSIBLE / LIKELY / VERY_LIKELY 等の確度)が付き、minLikelihood で閾値を調整します。

匿名化の変換手法は「元に戻せるか(可逆性)」で整理すると選択を誤りません。

変換設定名動作可逆性
秘匿化redactConfig一致箇所を削除する不可逆
置換replaceConfig固定文字列(例: [email-address])に置き換える不可逆
マスキングcharacterMaskConfig文字を # 等で塗りつぶす。文字数・方向・除外文字を指定可不可逆
暗号学的ハッシュcryptoHashConfigHMAC-SHA-256 で同一入力を同一トークンに変換不可逆
決定論的暗号化cryptoDeterministicConfigAES-SIV で暗号化。形式・長さは保持しない可逆(鍵 + トークンで復元)
形式保持暗号化cryptoReplaceFfxFpeConfigFPE-FFX で文字種と長さを保ったまま暗号化可逆(鍵 + トークンで復元)
日付シフトdateShiftConfig日付を範囲内でランダムにずらす(個人ごとに一貫させられる)不可逆

可逆な 2 方式がトークン化(仮名化)です。分析チームにはトークン化済みデータを渡し、正当な業務で元の値が必要になったときだけ content.reidentify と鍵で復元する——という運用ができます。鍵は Cloud KMS でラップした鍵を使うのが本番推奨で、リクエスト限りの一時鍵(transient)や生の鍵(unwrapped)は使い捨て・検証用です。料金は content 系メソッドが検査・変換それぞれ月 1 GB まで無料、以降は検査 US$3.00/GB・変換 US$2.00/GB、保存データの検査ジョブは 1 GB 無料の後 US$1.00/GB です(2026-08 時点)。

元データ 090-1234-5678 検出と変換 content:deidentify PII を検出 マスキング(不可逆) ###-####-#### 元の値には戻せない トークン化(可逆) PHONE_NUMBER(4):Ab3xQ 鍵があれば元に戻せる characterMaskConfig cryptoDeterministicConfig 復元(re-identify) content:reidentify + 同じ鍵 同じ鍵で
図 14-4 匿名化の分岐。マスキング系は一方通行、トークン化(決定論的暗号化 / 形式保持暗号化)は KMS で守った鍵とトークンがあれば復元できる。復元不要ならマスキングを選ぶのが安全側。

Cloud Audit Logs と Google 人員アクセスの透明性

規制対応の最後のピースは「誰が・いつ・何をしたかを証明できること」です。Cloud Audit Logs はほぼすべての Google Cloud サービスに組み込まれた監査証跡で、4 種類に分かれます。

種類記録対象既定保存先と課金
管理アクティビティ構成・メタデータを変更する操作(VM 作成、IAM 変更など)常に有効・無効化不可_Required / 無償
システムイベントGoogle 側システムによる構成変更(MIG の自動修復など)常に有効・無効化不可_Required / 無償
データアクセスデータ・メタデータの読み書き(オブジェクト取得、クエリ実行など)既定は無効(BigQuery のみ常時有効で無効化不可)_Default / 取り込みに課金
ポリシー拒否セキュリティポリシー違反でアクセスが拒否された記録常に有効・無効化不可(シンクの除外は可)_Default / 課金対象

保存の仕組みが規制対応の急所です。管理アクティビティとシステムイベントは _Required ログバケットに書き込まれ、保持 400 日・変更不可・保存無償。データアクセスとポリシー拒否は _Default バケットに入り、既定 30 日(プロジェクトでは 1〜3650 日に変更可)、取り込みは月 50 GiB/プロジェクトの無料枠を超えると US$0.50/GiB です(2026-08 時点)。データアクセスログの閲覧には roles/logging.viewer では足りず、roles/logging.privateLogViewer が必要という点も試験頻出です。400 日を超える保持が必要な規制(PCI DSS の 1 年保持など)では、第 11 章の BigQuery や Cloud Storage への集約シンクを組織レベルで構成し、バケットロックと組み合わせて長期保全します。監査ログのエントリ自体は書き込み後に変更できません。

管理アクティビティ 無効化不可 システムイベント 無効化不可 _Required バケット 保持 400 日・変更不可 保存は無償 常に有効・無償 データアクセス 既定は無効・要有効化 ポリシー拒否 無効化不可 _Default バケット 保持 30 日(1〜3650 日に変更可) 取り込み無料枠 50 GiB/月を超えると課金 課金対象で保存
図 14-5 監査ログのルーティング。上段 2 種は問答無用で _Required へ(消せない・無償・400 日)。下段 2 種は _Default へ入り課金対象。より長い保持は集約シンクで外部へ流して実現する。

データアクセスログの有効化は IAM ポリシー内の auditConfigs で行います。サービスごと(例: storage.googleapis.com)または allServices に対して、ADMIN_READ(構成の読み取り)・DATA_READ(データの読み取り)・DATA_WRITE(データの書き込み)の 3 種を個別に有効化でき、特定プリンシパルを除外する exemptedMembers も指定できます。構成は組織 → フォルダ → プロジェクトへ合算で継承され、親で有効化したログを子で無効化することはできません。

Access Transparency と Access Approval — 「Google 側の人」を監査する

Cloud Audit Logs が記録するのは自組織のメンバーの操作です。ではサポート対応などで Google の人員が顧客データにアクセスしたときは? それを記録するのが Access Transparency です。対象リソースと操作・時刻・アクセス理由(CUSTOMER_INITIATED_SUPPORT のような正当化理由コード)・アクセスした人員の所在地・所属・職種がログに残り、組織レベルで有効化します。

さらに一歩進めて「記録」ではなく「事前承認」にするのが Access Approval です(Access Transparency の有効化が前提)。Google のサポート・エンジニアリング人員がデータへアクセスする前に承認リクエストがメールまたは Pub/Sub で届き、コンソールか API で承認・却下します。重大障害の緊急対応では自動承認(auto approved)になる例外があり、この例外も EU データ境界(Access Justifications 付き)やパートナー主権管理下のワークロードでは無効化されます。金融・政府系の「クラウド事業者の従業員アクセスを統制せよ」という要件は、この 2 つ + Key Access Justifications(第 13 章の EKM と組み合わせる鍵アクセス承認)で応えます。

試験の視点: 監査ログ問題は「既定で有効か」「どこに何日残るか」「誰が見られるか」の 3 点で選択肢が切れます。①データアクセスログだけが既定無効(ただし BigQuery は例外で常時有効)、②管理アクティビティは _Required に 400 日・無償、③データアクセスログの閲覧は privateLogViewer。そして「Google 社員のアクセスの可視化」ときたら Cloud Audit Logs ではなく Access Transparency、「アクセスの事前承認」なら Access Approval です。

ハンズオン

Cloud Shell(第 1 章で作成した学習用プロジェクト)で進めます。ローカルの gcloud CLI でも同じ手順で動きます。PROJECT_ID は自分のプロジェクト ID に読み替えてください(gcloud config get-value project で確認できます)。

ハンズオン 14-1|Sensitive Data Protection で PII を検出する

テキストに含まれるメールアドレス・電話番号を content:inspect で検出します。所要 10 分。費用: content 系の検査は月 1 GB まで無料(2026-08 時点)。今回は数百バイトなので無料枠内です(リクエストあたり最低 1 KB として計上されます)。

  1. DLP API を有効化し、プロジェクト ID を確認します
gcloud services enable dlp.googleapis.com
gcloud config get-value project
  1. 検査リクエストを JSON ファイルとして作ります。infoType は組み込みの EMAIL_ADDRESS と PHONE_NUMBER を指定します
cat > inspect-request.json << 'EOF'
{
  "item": {
    "value": "担当: テスト太郎 / test.taro@example.com / 090-1234-5678"
  },
  "inspectConfig": {
    "infoTypes": [
      { "name": "EMAIL_ADDRESS" },
      { "name": "PHONE_NUMBER" }
    ],
    "minLikelihood": "POSSIBLE",
    "includeQuote": true
  }
}
EOF
  1. アクセストークンを付けて DLP API に POST します(PROJECT_ID を置換)
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d @inspect-request.json \
  "https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:inspect"

期待される出力(抜粋)。findings に検出結果が並び、quote が一致した文字列、likelihood が確度です。メールアドレスのような形式の明確な infoType は安定して検出されます(likelihood の値は検出モデルにより変わります)。

{
  "result": {
    "findings": [
      {
        "quote": "test.taro@example.com",
        "infoType": { "name": "EMAIL_ADDRESS" },
        "likelihood": "VERY_LIKELY",
        ...
      },
      ...
    ]
  }
}

後片付け: クラウド上にリソースは作っていないので、ローカルのファイル削除だけです(API は 14-2 でも使うので残します)。

rm inspect-request.json
ハンズオン 14-2|マスキングで PII を無害化する(content:deidentify)

公式ドキュメントの例を使い、メールアドレスを # でマスキングします。所要 10 分。費用: content 系の変換も月 1 GB まで無料(2026-08 時点)で、無料枠内です。

  1. 変換リクエストを作ります。charactersToSkip で . と @ を残すと「メールの形」を保ったままマスクできます
cat > deidentify-request.json << 'EOF'
{
  "item": {
    "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
  },
  "deidentifyConfig": {
    "infoTypeTransformations": {
      "transformations": [
        {
          "infoTypes": [ { "name": "EMAIL_ADDRESS" } ],
          "primitiveTransformation": {
            "characterMaskConfig": {
              "maskingCharacter": "#",
              "reverseOrder": false,
              "charactersToIgnore": [ { "charactersToSkip": ".@" } ]
            }
          }
        }
      ]
    }
  },
  "inspectConfig": {
    "infoTypes": [ { "name": "EMAIL_ADDRESS" } ]
  }
}
EOF
  1. content:deidentify に POST します(PROJECT_ID を置換)
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d @deidentify-request.json \
  "https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify"

期待される出力(抜粋)。メールアドレス部分だけがマスクされ、overview に変換のサマリーが返ります。

{
  "item": {
    "value": "My name is Alicia Abernathy, and my email address is ##########@#######.###."
  },
  "overview": {
    "transformedBytes": "22",
    "transformationSummaries": [ ... ]
  }
}

これは不可逆のマスキングです。復元可能なトークン化が必要なら、primitiveTransformation を cryptoDeterministicConfig(KMS でラップした鍵を指定)に替えると、同じ入力が同じトークンになり、content:reidentify で元に戻せます。

後片付け:

rm deidentify-request.json
# 学習用プロジェクトで DLP API をもう使わない場合は無効化してもよい(任意)
gcloud services disable dlp.googleapis.com
ハンズオン 14-3|データアクセス監査ログを有効化し、読み取りの証跡を確認する

Cloud Storage のデータアクセスログを有効化し、「誰がオブジェクトを読んだか」がログに残ることを確認します。所要 20 分。費用: バケット 1 個と数 KB のログ — Logging の無料枠(50 GiB/月)内でほぼ 0 円。バケットは最後に削除します。

  1. 検証用のバケットを作ります
gcloud storage buckets create gs://PROJECT_ID-audit-handson \
  --location=asia-northeast1
  1. 現在の IAM ポリシーをファイルに書き出します
gcloud projects get-iam-policy PROJECT_ID --format=json > policy.json
  1. policy.json をエディタ(Cloud Shell エディタや nano)で開き、トップレベルに auditConfigs を追加します。既存の bindings と etag は変更しないでください
{
  "auditConfigs": [
    {
      "service": "storage.googleapis.com",
      "auditLogConfigs": [
        { "logType": "DATA_READ" },
        { "logType": "DATA_WRITE" }
      ]
    }
  ],
  "bindings": [ ...既存のまま... ],
  "etag": "...既存のまま..."
}
  1. 編集したポリシーを書き戻します(コンソールなら「IAM と管理 → 監査ログ」画面でも同じ設定ができます)
gcloud projects set-iam-policy PROJECT_ID policy.json
  1. 読み書きイベントを発生させます
echo "audit log test" > sample.txt
gcloud storage cp sample.txt gs://PROJECT_ID-audit-handson/
gcloud storage cat gs://PROJECT_ID-audit-handson/sample.txt
  1. 数分待ってから、データアクセスログを読み出します
gcloud logging read \
  'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access"' \
  --freshness=1h --limit=5 \
  --format="value(protoPayload.methodName, protoPayload.authenticationInfo.principalEmail)"

期待される出力。storage.objects.create(書き込み)と storage.objects.get(読み取り)が自分のアカウントとともに記録されています。これが「読み取りすら証跡に残る」状態です。

storage.objects.get        your-name@example.com
storage.objects.create     your-name@example.com

後片付け: バケットを削除し、監査ログ設定を元に戻します(policy.json から auditConfigs ブロックを削除して再適用)。

gcloud storage rm --recursive gs://PROJECT_ID-audit-handson
gcloud projects get-iam-policy PROJECT_ID --format=json > policy.json
# エディタで auditConfigs ブロックを丸ごと削除して保存してから:
gcloud projects set-iam-policy PROJECT_ID policy.json
rm sample.txt policy.json

つまずきポイント

データアクセスログを allServices で全開にして課金が跳ねる: auditConfigs の service に allServices を指定すると全サービスの読み書きが記録されます。トラフィックの多い本番プロジェクトでは、ログ取り込みが無料枠 50 GiB/月をすぐ超え、US$0.50/GiB の課金が積み上がります。まず規制上必要なサービス(Cloud Storage・Cloud SQL 等)に絞って有効化し、除外できるワークロードは exemptedMembers で外すのが定石です。
set-iam-policy で bindings を消してプロジェクトに入れなくなる: ハンズオン 14-3 の方式は「ポリシー全文を取得 → 編集 → 全文を書き戻す」です。編集中に誤って bindings を削除して書き戻すと、権限そのものが消えてプロジェクトにアクセスできなくなる恐れがあります。auditConfigs 以外には触らない・etag を残す(並行変更の検知に使われます)を徹底してください。
「HIPAA 準拠のクラウドだから安心」という誤解: BAA を結んでも、その上のアーキテクチャの準拠責任は顧客に残ります。HHS が認定する「HIPAA 認証」は存在しないため、「HIPAA 認証済みのサービスを選ぶ」という選択肢は実在しません。BAA 締結 + 対象サービスのみ使用 + Pre-GA を PHI に使わない、の 3 点セットで覚えてください。
SDP の料金体系を混同する: 同期の content 系メソッド(検査 US$3.00/GB・変換 US$2.00/GB)と、保存データの検査ジョブ(US$1.00/GB)では単価が 3 倍違います(いずれも月 1 GB 無料、2026-08 時点)。Cloud Storage や BigQuery の大量データを content メソッドでちまちま流すのは割高です。保存データにはストレージ検査ジョブ、ストリーム処理中のレコードには content メソッド、と使い分けます。

理解度チェック

Q1. 監査ログ 4 種類のうち、既定で無効なのはどれか。またその例外は?

データアクセス監査ログだけが既定で無効です(有効化すると課金対象)。例外は BigQuery で、データアクセスログが常時有効かつ無効化できません。管理アクティビティ・システムイベント・ポリシー拒否の 3 種は常に有効で無効化できません。

Q2. マスキング(characterMaskConfig)とトークン化(cryptoDeterministicConfig)の使い分けの基準は?

可逆性です。マスキングは不可逆で元の値に戻せません。トークン化(決定論的暗号化・形式保持暗号化)は同一入力が同一トークンになるため結合・集計ができ、KMS で守った鍵とトークンがあれば content:reidentify で復元できます。復元が業務上不要ならマスキングを選ぶのが安全側です。

Q3. _Required バケットと _Default バケットの保持期間と課金の違いは?

_Required は管理アクティビティとシステムイベントを保持 400 日・変更不可・保存無償で保管します。_Default は既定 30 日(プロジェクトでは 1〜3650 日に変更可)で、ログ取り込みが月 50 GiB の無料枠を超えると課金されます(2026-08 時点)。400 日超の保持要件は集約シンクで Cloud Storage / BigQuery へエクスポートして満たします。

Q4.(試験形式)金融規制により「顧客データを日本国内に保存し、クラウド事業者の人員によるアクセスも統制せよ」と求められた。最も適切な打ち手は?
A. 全リソースに CMEK を設定する B. Assured Workloads の日本リージョン パッケージでフォルダを作り、Access Approval を有効化する C. VPC Service Controls でサービス境界を張る D. Cloud Armor で国別アクセス制限をかける

B。データレジデンシーと Google 人員アクセスの統制を一括で強制できるのは Assured Workloads + Access Approval の組み合わせです。A の CMEK は鍵の管理主体の話で保存場所を制御しません。C はデータ持ち出し防止の境界でありレジデンシーの保証ではありません。D は自社サービスへの利用者アクセスの制御で、保存場所とも事業者人員とも無関係です。

Q5.(試験形式)分析チームが本番データベースの顧客データを開発環境で使いたい。個人情報保護の要件を満たしつつ分析可能性を保つ最善策は?
A. 開発者に roles/viewer を付与して本番を直接参照させる B. Sensitive Data Protection で PII をトークン化したコピーを渡す C. データベースを CMEK で暗号化する D. データアクセス監査ログを有効化して利用を記録する

B。トークン化なら同一値が同一トークンになるため結合・集計という分析可能性を保ったまま PII を除去できます。A は PII がそのまま露出します。C の CMEK は保存時暗号化の鍵管理であり、正当な権限で読めば平文が見えます。D は事後の証跡であって露出の防止にはなりません。

まとめと次章へ

証跡を「残す」仕組みは整いました。次の第 15 章では、ログ・指標を「観測して信頼性を運用する」側 — Google Cloud Observability と SRE のプラクティス(SLI / SLO / エラーバジェット)に進みます。

参考リンク: