automated-ropa-generation について
技術インベントリ、クラウドカタログ、APIログ、データベーススキーマからGDPR第30条の処理活動記録(RoPA)を作成するコンプライアンススキルです。システム情報から入力できる項目と、処理目的や予定保存期間など人による確認が必要な項目を区別します。
主な機能
- 01ディレクトリとクラウドカタログからシステムを検出
- 02APIログのデータフローを分析
- 03データベース項目から個人データを特定
- 04GDPR第30条の項目を事前入力
- 05人による確認が必要な箇所を明示
活用シーン
- 01既存のITインベントリからRoPAの草案を作成
- 02第三者連携と国際移転の可能性を特定
- 03技術データと記録済み処理目的を照合
- 04未登録システムによる把握漏れを特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill automated-ropa-generationインストール後、Claude Code で/automated-ropa-generationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py詳細
RoPA の自動生成
概要
インタビューやアンケートを通じた RoPA の手作業による作成は、時間がかかり、主観に左右され、関係者が忘れていたり把握していなかったりする処理活動が抜け落ちやすいものです。RoPA の自動生成では、既存の IT システムインベントリ、クラウドサービスカタログ、API ゲートウェイのログ、データベーススキーマを活用して処理活動を検出し、第 30 条第 1 項の項目を事前に入力します。この方法により、手作業でのインタビューで見落とされがちな処理活動(シャドー IT、自動化されたデータパイプライン、サードパーティとの統合)を把握できるため、網羅性を高めながら RoPA 作成の負担を 60~80%軽減できます。
RoPA の自動入力に使用するデータソース
ソース 1:Active Directory / Azure AD
明らかになる情報:
- 処理の責任者を対応付けるための組織構造(部門、チーム)
- グループメンバーシップから判明する、各システムへのアクセス権を持つユーザー(受領者のカテゴリ)
- アプリケーション登録とサービスプリンシパル(処理システムのインベントリ)
- 条件付きアクセス ポリシー(セキュリティ対策の記録)
入力される第 30 条の項目:
| 項目 | AD から抽出されるデータ |
|---|---|
| 第 30 条第 1 項 (a) — 管理者の識別情報 | 組織名、部門階層、DPO グループのメンバーシップ |
| 第 30 条第 1 項 (d) — 受領者 | セキュリティグループのメンバーシップから判明する内部アクセスのパターン |
| 第 30 条第 1 項 (g) — セキュリティ対策 | 条件付きアクセス ポリシー、MFA の適用状況 |
Helix Biotech Solutions における検出方法:
Azure AD Tenant: helix-biotech.onmicrosoft.com
├── Enterprise Applications (87 registered)
│ ├── SAP SuccessFactors → HR processing activities
│ ├── Veeva Vault CDMS → Clinical trial data management
│ ├── Salesforce → Customer relationship management
│ ├── Google Analytics → Website analytics
│ ├── ADP Workforce Now → Payroll processing
│ └── ... (82 more applications)
├── Security Groups (134 groups)
│ ├── SG-HR-Payroll (4 members) → Access to payroll data
│ ├── SG-Clinical-Data (12 members) → Access to clinical trial data
│ ├── SG-Finance-AP (6 members) → Access to accounts payable
│ └── ... (131 more groups)
└── Conditional Access Policies (23 policies)
├── Require MFA for all users
├── Block legacy authentication
├── Require compliant device for clinical systems
└── ... (20 more policies)
ソース 2:クラウドサービスカタログ
明らかになる情報:
- 使用中のすべてのクラウドサービス(IaaS、PaaS、SaaS)
- データの保存場所(データが保存されている地域・国)
- サービスプロバイダーの識別情報(処理者および再処理者)
- データ分類タグ(導入されている場合)
Helix Biotech Solutions における AWS の例:
| AWS サービス | リージョン | 個人データの指標 | 対応する処理活動 |
|---|---|---|---|
| RDS(PostgreSQL) | eu-central-1 | タグ:data-classification=confidential | 従業員の人事データベース |
| S3 バケット:helix-clinical-data | eu-central-1 | タグ:data-classification=restricted, contains-special-category=true | 臨床試験文書の保管 |
| S3 バケット:helix-marketing | eu-central-1 | タグ:data-classification=internal | マーケティング分析データ |
| Lambda:payroll-processor | eu-central-1 | ADP 統合によって呼び出し | 給与データの変換 |
| CloudFront ディストリビューション | グローバル(エッジ) | ログに IP アドレスを含む | ウェブサイトのコンテンツ配信 |
| SES(Simple Email Service) | eu-west-1 | メールアドレス宛に送信 | 顧客および従業員とのメールでの連絡 |
Azure の例:
| Azure サービス | リージョン | データ分類 | 対応する処理活動 |
|---|---|---|---|
| Azure SQL | West Europe | 機密 | 財務・会計データベース |
| Azure Blob Storage | West Europe | 制限付き | 臨床試験の画像データ |
| Azure AD | グローバル | 内部 | ID およびアクセス管理 |
| Azure Monitor | West Europe | 内部 | システム監視(ユーザーのアクティビティを記録する場合があります) |
ソース 3:API Gateway のログ
明らかになること:
- 個人データを処理する API(リクエスト/レスポンスの検査に基づく)
- システム間のデータフローパターン(上流と下流)
- サードパーティ API との連携(外部の受領者)
- データ処理の量と頻度(Art. 30(5) における処理が「臨時」に当たるかどうかの評価に役立ちます)
Helix Biotech Solutions の API Gateway 分析:
| API エンドポイント | メソッド | 個人データのフィールド | 上流システム | 下流システム | 1 日あたりの量 |
|---|---|---|---|---|---|
| /api/v2/employees | GET/POST | employee_id, name, email, department | SAP SuccessFactors | Internal HR portal | 340 requests |
| /api/v2/patients/{id}/records | GET | patient_id, diagnosis, treatment | Veeva Vault CDMS | Clinical reporting dashboard | 1,200 requests |
| /api/v2/orders | POST | customer_name, email, billing_address | Salesforce | SAP ERP | 890 requests |
| /api/v1/analytics/events | POST | ip_address, user_agent, page_url | Website (JS tracker) | Google Analytics | 45,000 requests |
| /api/v2/vendor/payments | POST | vendor_name, bank_account, tax_id | SAP ERP | Banking API (Deutsche Bank) | 120 requests |
ソース 4:データベーススキーマ
明らかになること:
- 保存されている正確なデータカテゴリ(列名と型)
- データフローを明らかにするテーブル間の関係
- 列名のパターンマッチングによる個人データの特定
- データ量と増加のパターン
スキーマ分析の手順:
- クラウドカタログで特定された各データベースに接続します。
- テーブルスキーマ(列名、データ型、制約)を抽出します。
- 個人データの識別パターンを列名に適用します。
- 特定した個人データ列を Art. 30(1)(c) のデータカテゴリにマッピングします。
個人データの列名パターン:
| パターン | データカテゴリ | Art. 9 特別カテゴリ |
|---|---|---|
*name*、*first_name*、*last_name*、*full_name* | 氏名 | いいえ |
*email*、*e_mail* | メールアドレス | いいえ |
*phone*、*mobile*、*telephone* | 電話番号 | いいえ |
*address*、*street*、*city*、*postcode*、*zip* | 住所 | いいえ |
*dob*、*date_of_birth*、*birth_date* | 生年月日 | いいえ |
*ssn*、*social_security*、*tax_id*、*national_id* | 国民識別番号 | いいえ |
*salary*、*compensation*、*bank_account*、*iban* | 財務データ | いいえ |
*ip_address*、*ip_addr* | IP アドレス | いいえ |
*diagnosis*、*medical*、*health*、*condition* | 健康データ | はい |
*genetic*、*dna*、*genome* | 遺伝データ | はい |
*biometric*、*fingerprint*、*facial* | 生体認証データ | はい |
*ethnicity*、*race*、*ethnic_origin* | 人種/民族的出自 | はい |
*religion*、*religious*、*belief* | 宗教的信条 | はい |
*union*、*trade_union* | 労働組合への加入 | はい |
*political*、*party* | 政治的見解 | はい |
*criminal*、*conviction*、*offence* | 犯罪データ(Art. 10) | Art. 10 |
フィールドの自動入力ロジック
Art. 30(1)(a) — 管理者の識別情報
ソース:Azure AD テナントの設定と組織管理。 自動化:AD テナントのメタデータから完全に自動化されます。
Art. 30(1)(b) — 目的
ソース:AD エンタープライズアプリケーションレジストリ内のアプリケーションの説明と API ドキュメント。 自動化:一部自動化されます。システム名と説明が出発点になりますが、Art. 5(1)(b) の特定性要件を満たすには、目的を具体的に記述する際に人による修正が必要です。
方法:アプリケーションの説明から目的の草案を生成し、「草案 — DPO のレビューが必要」と表示して、処理の担当者に割り当て、修正してもらいます。
Art. 30(1)(c) — データ主体およびデータカテゴリー
ソース:データベーススキーマの分析+API リクエスト/レスポンスのスキーマ。 自動化:データカテゴリーについては高度に自動化されています(カラム名の照合)。データ主体のカテゴリーにはテーブルのコンテキストからの推論が必要です。
Art. 30(1)(d) — 受領者
ソース:AD セキュリティグループ(内部の受領者)+API ゲートウェイのログ(外部との連携)+クラウドサービスカタログ(処理者)。 自動化:高度に自動化されています。AD グループから内部アクセスが明らかになります。API ゲートウェイから外部へのデータフローが明らかになります。クラウドカタログから処理者を特定できます。
Art. 30(1)(e) — 国際移転
ソース:クラウドサービスのリージョン設定+API ゲートウェイの宛先 IP アドレス+CDN の設定。 自動化:高度に自動化されています。クラウドサービスが EEA 域外のリージョンにデプロイされている場合、または API 呼び出しが EEA 域外のエンドポイントにルーティングされている場合、システムは国際移転の可能性があることを通知します。
Art. 30(1)(f) — 保持期間
ソース:データベーステーブルの統計情報(最も古いレコード)、バックアップの保持ポリシー、ライフサイクル管理ルール。 自動化:部分的に自動化されています。実際の保持期間(データがどのくらいの期間存在するか)は検出できますが、意図された保持期間(データがどのくらいの期間存在すべきか)は検出できません。実際の保持期間とポリシー上の保持期間の不一致を通知します。
Art. 30(1)(g) — セキュリティ対策
ソース:クラウドのセキュリティ設定(暗号化設定、アクセス ポリシー)、AD の条件付きアクセス ポリシー、WAF ルール、証明書の設定。 自動化:技術的対策については高度に自動化されています。組織的対策には手動での文書化が必要です。
自動化のカバー率の概要
| Art. 30(1) 項目 | 自動化レベル | 人によるレビューが必要 |
|---|---|---|
| (a) 管理者の識別情報 | 高(90%) | 法人名と DPO が最新であることを確認 |
| (b) 目的 | 低(30%) | 目的を具体的に明確化する必要あり |
| (c) データ主体のカテゴリー | 中(60%) | 推論されたカテゴリーを確認 |
| (c) 個人データのカテゴリー | 高(85%) | パターン照合されたカラムを確認 |
| (d) 受領者 | 高(80%) | 外部の受領者を確認し、DPA の参照情報を追加 |
| (e) 国際移転 | 高(85%) | 移転メカニズムを確認 |
| (f) 保持期間 | 低(25%) | 実際の期間だけでなく、ポリシー上の保持期間を定義 |
| (g) セキュリティ対策 | 中(70%) | 組織的対策を追加 |
実装アーキテクチャ
┌─────────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Azure AD / Okta │ │ Cloud Catalog │ │ API Gateway Logs │
│ (Org structure, │ │ (AWS/Azure/GCP │ │ (Data flows, │
│ app registrations,│ │ service list, │ │ external calls, │
│ security groups) │ │ regions, tags) │ │ volumes) │
└────────┬────────────┘ └────────┬─────────┘ └─────────┬──────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────┐
│ RoPA Auto-Generation Engine │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ AD Parser │ │ Cloud Parser │ │ API Log Analyzer │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Field Mapping and Population Engine │ │
│ │ • Pattern matching for personal data columns │ │
│ │ • Data flow graph construction │ │
│ │ • Transfer detection (non-EEA region identification) │ │
│ │ • Security control extraction │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Draft RoPA Generator │ │
│ │ • Creates draft entries with populated fields │ │
│ │ • Flags fields requiring human review │ │
│ │ • Assigns to processing owners for validation │ │
│ └────────────────────────┬───────────────────────────────────┘ │
└───────────────────────────┼───────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────┐
│ Database Schema Scanner │
│ (Connects to identified databases, extracts schemas, │
│ applies PII detection patterns) │
└────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────┐
│ RoPA Management Platform │
│ (OneTrust / TrustArc / Collibra / Custom) │
│ Draft entries queued for DPO and processing owner review │
└────────────────────────────────────────────────────────────────────┘
制限事項とリスク軽減策
-
PII 検出における誤検知:「company_address」のようなカラム名は、業務データであっても個人データとしてフラグが付けられることがあります。軽減策:自動検出されたすべての PII カラムを人がレビューします。
-
目的に関するコンテキストの不足:自動化システムは、技術メタデータだけから処理の業務目的を推論できません。軽減策:目的には常に「DRAFT」のフラグを付け、人が明確化する必要があります。
-
シャドー IT の死角:AD またはクラウドカタログに登録されていないシステムは検出されません。軽減策:自動検出に定期的な手動アンケートを組み合わせ、未登録の処理を把握します。
-
暗号化またはトークン化されたデータ:カラムレベルでデータが暗号化またはトークン化されている場合、スキーマ分析では個人データを検出できないことがあります。軽減策:暗号化/トークン化の対応関係を手動で登録したレジスターを維持します。
-
同意と適法な根拠:技術メタデータから判断することはできません。必ず法務または DPO の関与が必要です。