lgpd-data-mapping について
新規プロジェクトと既存システムの調査に向けて、ブラジルLGPDに基づく個人データ処理活動の台帳を作成するスキルです。目的、法的根拠、データ分類、システム、共有、保存期間、安全対策、責任者を記録し、ROPA、RIPD、保存管理、DSARの準備を支援します。
主な機能
- 01製品機能ごとの処理活動を一覧化
- 02データベースとAPIから処理を逆引き
- 03目的と法的根拠を記録
- 04データ源、システム、共有を整理
- 05保存期間、安全対策、責任者を記録
- 06高リスクと未成年者のデータを識別
活用シーン
- 01製品開発前にデータ台帳を作成
- 02既存システムの個人データ処理を調査
- 03ROPAまたはRIPD向けの情報を準備
- 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 つの活動に該当します。
レガシーの場合(リバースエンジニアリング)
- データベーススキーマ:
prisma/schema.prisma(または同等のファイル)を読みます。ユーザーへの参照を持つテーブルはすべて候補です。 - API:REST/tRPC/GraphQL のルートを読みます。個人を特定できる情報(PII)を受け取るエンドポイントは活動に該当します。
- サードパーティ SDK:名称(Sentry、Datadog、Mixpanel、Amplitude、Segment、Stripe、Discord SDK、Firebase、OneSignal)を grep します。それぞれがデータ共有に該当します。
- ログ:注意してください。ログから意図せず PII が漏れることがあります(監査も行ってください)。
- フロントエンドの Cookie と localStorage。
- モバイルでの収集:デバイス 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)
コメント
Markdown 対応