演習:データガバナンスフレームワークを設計しよう
田中VPoE「ガバナンス概要、品質フレームワーク、プライバシー、コンプライアンスを学んだ。NetShop社のデータガバナンスフレームワーク全体を設計しよう。」
あなた「ポリシー定義から組織体制、技術実装まで包括的な設計ですね。」
田中VPoE「そうだ。経営層にも理解できるレベルの設計書を目指してくれ。」
ミッション概要
NetShop社のデータガバナンスフレームワーク全体を設計します。ポリシー策定、組織体制設計、技術的な実装計画を含みます。
前提条件
- Step 4の各レッスン(ガバナンス概要、品質フレームワーク、プライバシー、コンプライアンス)を修了していること
Mission 1: データ分類とポリシー策定(30分)
NetShop社が保有するデータを分類し、各データに対するガバナンスポリシーを策定してください。
要件
- 全データ資産のインベントリ作成(最低10テーブル)
- 各テーブルの機密レベル分類
- アクセスポリシーと保持ポリシーの定義
解答例
| テーブル | 機密レベル | Data Owner | アクセス権限 | 保持期間 |
|---|---|---|---|---|
| customers | L3 | 営業部長 | DS/Eng: 読取, BIチーム: マスキング読取 | 退会後1年 |
| orders | L2 | 営業部長 | DS/Eng: 読取, BIチーム: 読取 | 7年 |
| payment_info | L4 | CFO | 決済チームのみ | 7年 |
| products | L1 | 商品部長 | 全社読取 | 無期限 |
| customer_behavior | L2 | マーケ部長 | DS/マーケ: 読取 | 1年 |
| employee_data | L3 | 人事部長 | 人事チームのみ | 退職後3年 |
| mart_daily_kpi | L2 | DS Lead | 管理職以上: 読取 | 3年 |
| mart_customer_360 | L3 | DS Lead | DS/営業: 読取(マスキング付き) | 1年 |
| raw_web_logs | L2 | Eng Lead | Engチーム: 読取 | 90日 |
| ml_features | L2 | DS Lead | DSチーム: 読み書き | 1年 |
アクセスポリシー:
| ロール | L1 | L2 | L3 | L4 |
|---|---|---|---|---|
| Data Admin | 全アクセス | 全アクセス | 全アクセス | 全アクセス |
| Data Engineer | 読み書き | 読み書き | 読取(マスキング付き) | アクセス不可 |
| Data Analyst | 読取 | 読取 | マスキング読取 | アクセス不可 |
| Business User | 読取 | ダッシュボードのみ | アクセス不可 | アクセス不可 |
Mission 2: データ契約の作成(30分)
NetShop社の主要テーブルに対するデータ契約を作成してください。
要件
- ordersテーブルとcustomersテーブルのデータ契約
- スキーマ定義、品質SLO、利用者を含む
- 違反時の対応手順
解答例
# data_contracts/orders.yml
contract:
name: "orders"
version: "1.0"
owner:
team: "sales-engineering"
contact: "sales-eng@netshop.co.jp"
description: "NetShop注文データ。全チャネルの注文を含む。"
schema:
columns:
- name: order_id
type: string
required: true
unique: true
description: "注文の一意識別子"
- name: customer_id
type: integer
required: true
description: "顧客ID(customersテーブルへの外部キー)"
- name: total_amount
type: numeric
required: true
constraints:
min: 0
max: 10000000
- name: status
type: string
required: true
allowed_values: [created, paid, shipped, delivered, cancelled]
- name: order_date
type: date
required: true
quality_slo:
freshness: "2 hours"
completeness: "99.9%"
accuracy: "99.5%"
uniqueness: "100% (order_id)"
consumers:
- team: "ds-team"
use_case: "離脱予測・需要予測"
access_level: "full"
- team: "bi-team"
use_case: "売上ダッシュボード"
access_level: "read"
- team: "marketing"
use_case: "キャンペーン効果測定"
access_level: "aggregated"
violation_handling:
freshness_violation: "Slack通知 → 1時間以内に原因調査開始"
quality_violation: "パイプライン停止 → Data Ownerに即時エスカレーション"
schema_change: "事前にconsumer全チームに通知(最低1週間前)"
Mission 3: コンプライアンス対応計画(30分)
個人情報保護法とGDPRへの対応計画を策定してください。
要件
- 個人情報のデータマッピング
- データ主体の権利行使への対応フロー
- インシデント対応計画
解答例
個人情報データマッピング:
| 個人情報 | 保存先 | 暗号化 | マスキング | 削除可能 |
|---|---|---|---|---|
| 氏名 | customers, orders | AES-256 | 部分マスク | Yes |
| メールアドレス | customers | AES-256 | ドメイン以外マスク | Yes |
| 住所 | customers | AES-256 | 市区町村以降マスク | Yes |
| 電話番号 | customers | AES-256 | 末尾4桁以外マスク | Yes |
| クレジットカード | payment_info | PCI DSS準拠 | 末尾4桁のみ表示 | Yes |
| 購入履歴 | orders | なし | なし | 匿名化可能 |
| 閲覧履歴 | customer_behavior | なし | なし | Yes |
権利行使対応フロー:
1. リクエスト受付(カスタマーサポート)
2. 本人確認(身分証明書 + アカウント情報)
3. 対応判定(法的保持義務の確認)
4. 技術的対応
- 削除: DataDeletionService実行
- 開示: DataExportService実行
5. 完了通知(30日以内に回答)
6. 監査ログ記録
インシデント対応計画:
| フェーズ | 対応 | 期限 |
|---|---|---|
| 検知 | セキュリティチームへ即時報告 | 即時 |
| 初動 | 影響範囲特定、漏洩データの特定 | 24時間以内 |
| 報告 | 個人情報保護委員会へ報告 | 72時間以内 |
| 通知 | 影響を受ける本人へ通知 | 速やかに |
| 再発防止 | 原因分析、対策実施 | 2週間以内 |
達成度チェック
- 全データ資産のインベントリと機密レベル分類を作成できた
- ロールベースのアクセスポリシーを設計できた
- 主要テーブルのデータ契約を作成できた
- 個人情報のデータマッピングを作成できた
- 権利行使対応フローとインシデント対応計画を策定できた
推定所要時間:90分