mcpField
L
lgpd-data-mapping

lgpd-data-mapping

github.com/goul4rtセキュリティ16451 回インストール23 週間前に更新
リポジトリ

lgpd-data-mapping について

新規プロジェクトと既存システムの調査に向けて、ブラジルLGPDに基づく個人データ処理活動の台帳を作成するスキルです。目的、法的根拠、データ分類、システム、共有、保存期間、安全対策、責任者を記録し、ROPA、RIPD、保存管理、DSARの準備を支援します。

主な機能

  1. 01製品機能ごとの処理活動を一覧化
  2. 02データベースとAPIから処理を逆引き
  3. 03目的と法的根拠を記録
  4. 04データ源、システム、共有を整理
  5. 05保存期間、安全対策、責任者を記録
  6. 06高リスクと未成年者のデータを識別

活用シーン

  1. 01製品開発前にデータ台帳を作成
  2. 02既存システムの個人データ処理を調査
  3. 03ROPAまたはRIPD向けの情報を準備
  4. 04第三者共有と保存期間を点検

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/goul4rt/lgpd-skills --skill lgpd-data-mapping

インストール後、Claude Code で/lgpd-data-mappingを入力して読み込まれたか確認します。

同梱ファイルassets/extract-prisma-annotations.sh

詳細

データマッピング LGPD

プロジェクトにおけるすべての個人データ処理活動を網羅した正式な一覧です。ROPA(第 37 条)、RIPD(第 38 条)、保持、DSAR の前提条件です。

ワークフロー

グリーンフィールドの場合

コーディングを始める前に、プロダクトの機能/モジュールごとに活動を列挙します。個人データを扱う機能は、それぞれ 1 つの活動に該当します。

レガシーの場合(リバースエンジニアリング)
  1. データベーススキーマ:prisma/schema.prisma(または同等のファイル)を読みます。ユーザーへの参照を持つテーブルはすべて候補です。
  2. API:REST/tRPC/GraphQL のルートを読みます。個人を特定できる情報(PII)を受け取るエンドポイントは活動に該当します。
  3. サードパーティ SDK:名称(Sentry、Datadog、Mixpanel、Amplitude、Segment、Stripe、Discord SDK、Firebase、OneSignal)を grep します。それぞれがデータ共有に該当します。
  4. ログ:注意してください。ログから意図せず PII が漏れることがあります(監査も行ってください)。
  5. フロントエンドの Cookie と localStorage。
  6. モバイルでの収集:デバイス ID、位置情報、プッシュトークン、生体認証データ、連絡先、写真。

活動ごとに記録する項目:

  • 短い名前(slug)
  • 説明(1 行)
  • 具体的な目的(第 6 条 I)
  • 法的根拠(.lgpd/legal-basis.md へのリンク)
  • データ主体のカテゴリ:ユーザー、見込み顧客、従業員、扶養家族、第三者。フラグ:子ども、青少年、高齢者が含まれるか?
  • データのカテゴリ:
    • 一般:氏名、メールアドレス、CPF(注意:一部では業務上、機微情報として扱われます)、電話番号、住所、IP、デバイス ID
    • 機微情報(第 5 条 II):健康、生体認証、人種、宗教、政治、労働組合、性的指向、遺伝情報
  • 情報源/取得元:データ主体から収集?観察?推測?第三者?
  • 保存するシステム:テーブル、キャッシュ、S3 バケット、BigQuery、スプレッドシート
  • 共有先:
    • 内部:他のチーム/グループ企業
    • 外部の処理者:一覧
    • 国際移転:一覧(.lgpd/transfers/ へのリンク)
  • 保持:期間+基準
  • セキュリティ対策:暗号化、RBAC、監査ログ
  • 高リスクか?:Res. 2/2022 第 4 条のテストを実施し、該当する場合は RIPD の対象としてフラグを付けます
  • オーナー:担当者/チーム

テンプレート — .lgpd/data-map.md

# Mapa de Dados — {projeto}

**Versão**: v{N}
**Data**: {data}
**Owner global**: Encarregado / DPO

## Atividades de Tratamento

### A001 — {nome}

| Campo | Valor |
|---|---|
| Slug | a001-{slug} |
| Finalidade | {específica} |
| Base legal | Art. {N}, {inciso} ([detalhes](./legal-basis.md#a001)) |
| Categorias de titulares | usuários adultos + adolescentes |
| Sensíveis? | Não / Sim ({quais}) |
| Dados | nome, e-mail, IP, user-agent |
| Fonte | coletado do titular no signup |
| Sistemas | `users` (Postgres), `auth_sessions` (Redis), Datadog logs |
| Operadores | AWS RDS (US-East-1), Datadog (US), Better Auth (lib local) |
| Transferência intl. | Sim — AWS US, Datadog US (ver `.lgpd/transfers/`) |
| Retenção | 5 anos após inatividade (obrig. legal — prescrição CDC) |
| Segurança | TLS 1.3, TDE, RBAC, audit log |
| Alto risco? | Não |
| RIPD | N/A |
| Owner | @aroldo |

### A002 — ...

スキーマのアノテーション(グリーンフィールド)

ユーザーに Prisma スキーマのコメントでアノテーションを付けるよう提案します:

/// @lgpd:activity=a001
/// @lgpd:purpose="autenticação e gestão de conta"
/// @lgpd:legal_basis="art_7_v"  // execução de contrato
/// @lgpd:retention="5y_after_inactivity"
/// @lgpd:sensitive=false
model User {
  id        String   @id
  email     String   @unique  /// @lgpd:pii=high
  cpf       String?  /// @lgpd:pii=high @lgpd:masked=true
  // ...
}

アノテーションを抽出する補助スクリプト:assets/extract-prisma-annotations.sh。

品質チェックリスト

  • User への外部キーを持つすべてのテーブルが網羅されている
  • すべてのサードパーティ連携が共有先として記載されている
  • すべての活動に明示的な法的根拠がある
  • 高リスクの活動にフラグが付けられている
  • 未成年者が関与する活動にフラグが付けられている(ECA Digital が適用されます)
  • 保持期間が定義されている(「無期限」は不可)

完了したら、.lgpd/STATUS.md を更新します:

## F2 — Data mapping ✓
- {N} atividades inventariadas
- {N} envolvem dados sensíveis
- {N} envolvem menores
- {N} marcadas como alto risco → RIPD pendente: {lista}
- Próximo: lgpd-consent-schema (greenfield) ou lgpd-legal-basis (legacy)

コメント