LESSON 30分

コンプライアンス

田中VPoE「プライバシーとセキュリティの技術的対策を学んだ。次は法的な観点だ。個人情報保護法、GDPR、業界固有の規制に対応する仕組みを構築しよう。」

あなた「技術的に正しくても、法的に問題があれば意味がないですよね。」

田中VPoE「その通り。法規制は変化し続ける。法務チームと連携しながら、技術で対応できる仕組みを作ることが重要だ。」

主要なデータ関連法規制

法規制対象地域主な要件
個人情報保護法日本利用目的の明示、本人同意、安全管理措置
GDPREUデータ主体の権利、DPO設置、違反時の高額罰金
CCPA/CPRA米カリフォルニア知る権利、削除権、オプトアウト権
APPI改正(2022)日本仮名加工情報、個人関連情報の規制強化

データ主体の権利と実装

GDPR / 個人情報保護法で保障される権利

権利内容技術的実装
アクセス権自分のデータを確認する権利データエクスポート機能
訂正権誤ったデータの修正を求める権利データ更新API
削除権(忘れられる権利)データの削除を求める権利カスケード削除パイプライン
ポータビリティ権データを持ち出す権利標準形式でのエクスポート
異議申立権プロファイリングに異議を唱える権利オプトアウト機能

削除権の技術的実装

class DataDeletionService:
    """GDPR削除権への対応"""

    def __init__(self, tables_config: dict):
        self.tables = tables_config

    def process_deletion_request(self, customer_id: str) -> dict:
        """顧客データの削除リクエストを処理する"""
        results = {"customer_id": customer_id, "tables": []}

        for table, config in self.tables.items():
            if config["action"] == "delete":
                self._delete_records(table, config["key_column"], customer_id)
            elif config["action"] == "anonymize":
                self._anonymize_records(table, config["columns"], customer_id)
            elif config["action"] == "retain":
                pass  # 法的保持義務のあるデータは保持

            results["tables"].append({
                "table": table,
                "action": config["action"],
                "status": "completed",
            })

        # 監査ログの記録
        self._log_deletion(results)
        return results

    TABLES_CONFIG = {
        "customers": {"action": "delete", "key_column": "customer_id"},
        "customer_behavior": {"action": "delete", "key_column": "customer_id"},
        "orders": {
            "action": "anonymize",
            "columns": ["customer_name", "email", "address"],
            "key_column": "customer_id",
        },
        "payment_records": {
            "action": "retain",  # 税法上7年保持義務
            "key_column": "customer_id",
        },
    }

同意管理

# 同意管理テーブルの設計
consent_schema = {
    "customer_id": "string",
    "consent_type": "string",   # marketing, analytics, third_party
    "status": "string",          # granted, revoked
    "granted_at": "timestamp",
    "revoked_at": "timestamp",
    "version": "string",         # 同意取得時の利用規約バージョン
    "channel": "string",         # web, app, email
}
同意種別説明デフォルト
必須同意サービス提供に必要(利用規約)同意必須
マーケティング同意広告・キャンペーンメールオプトイン
分析同意行動分析・レコメンドオプトアウト
第三者提供同意外部パートナーへのデータ共有オプトイン

データ保持と削除のポリシー

データ種別保持期間根拠期限後の対応
取引データ7年税法アーカイブ → 削除
顧客プロファイル退会後1年社内規定匿名化 → 削除
アクセスログ1年社内規定削除
同意記録同意期間 + 3年コンプライアンスアーカイブ

コンプライアンス監査チェックリスト

項目確認内容頻度
データマッピング個人情報がどこに保存されているか四半期
アクセス権限最小権限の原則が守られているか月次
同意管理同意状態とデータ利用が一致しているか月次
保持期間保持期限を超えたデータが残っていないか月次
暗号化保存時・転送時の暗号化が有効か四半期
監査ログ必要なアクセスログが記録されているか月次

まとめ

項目ポイント
法規制個人情報保護法、GDPR、CCPAへの対応
データ主体の権利アクセス権、削除権、ポータビリティ権等の技術的実装
同意管理同意種別ごとの管理とオプトイン/アウトの運用
保持ポリシー法的根拠に基づくデータ保持期間の管理

チェックリスト

  • 主要なデータ関連法規制を列挙できる
  • データ主体の権利と技術的実装方法を説明できる
  • 同意管理の設計方法を理解している
  • データ保持ポリシーの策定方法を理解している

次のステップへ

コンプライアンスの基礎を学びました。次は演習で、データガバナンスフレームワーク全体を設計してみましょう。


推定読了時間:30分