mcpField
A
automated-ropa-generation

automated-ropa-generation

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

automated-ropa-generation について

技術インベントリ、クラウドカタログ、APIログ、データベーススキーマからGDPR第30条の処理活動記録(RoPA)を作成するコンプライアンススキルです。システム情報から入力できる項目と、処理目的や予定保存期間など人による確認が必要な項目を区別します。

主な機能

  1. 01ディレクトリとクラウドカタログからシステムを検出
  2. 02APIログのデータフローを分析
  3. 03データベース項目から個人データを特定
  4. 04GDPR第30条の項目を事前入力
  5. 05人による確認が必要な箇所を明示

活用シーン

  1. 01既存のITインベントリからRoPAの草案を作成
  2. 02第三者連携と国際移転の可能性を特定
  3. 03技術データと記録済み処理目的を照合
  4. 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.md
references/
standards.md
workflows.md
scripts/
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-dataeu-central-1タグ:data-classification=restricted, contains-special-category=true臨床試験文書の保管
S3 バケット:helix-marketingeu-central-1タグ:data-classification=internalマーケティング分析データ
Lambda:payroll-processoreu-central-1ADP 統合によって呼び出し給与データの変換
CloudFront ディストリビューショングローバル(エッジ)ログに IP アドレスを含むウェブサイトのコンテンツ配信
SES(Simple Email Service)eu-west-1メールアドレス宛に送信顧客および従業員とのメールでの連絡

Azure の例:

Azure サービスリージョンデータ分類対応する処理活動
Azure SQLWest Europe機密財務・会計データベース
Azure Blob StorageWest Europe制限付き臨床試験の画像データ
Azure ADグローバル内部ID およびアクセス管理
Azure MonitorWest Europe内部システム監視(ユーザーのアクティビティを記録する場合があります)
ソース 3:API Gateway のログ

明らかになること:

  • 個人データを処理する API(リクエスト/レスポンスの検査に基づく)
  • システム間のデータフローパターン(上流と下流)
  • サードパーティ API との連携(外部の受領者)
  • データ処理の量と頻度(Art. 30(5) における処理が「臨時」に当たるかどうかの評価に役立ちます)

Helix Biotech Solutions の API Gateway 分析:

API エンドポイントメソッド個人データのフィールド上流システム下流システム1 日あたりの量
/api/v2/employeesGET/POSTemployee_id, name, email, departmentSAP SuccessFactorsInternal HR portal340 requests
/api/v2/patients/{id}/recordsGETpatient_id, diagnosis, treatmentVeeva Vault CDMSClinical reporting dashboard1,200 requests
/api/v2/ordersPOSTcustomer_name, email, billing_addressSalesforceSAP ERP890 requests
/api/v1/analytics/eventsPOSTip_address, user_agent, page_urlWebsite (JS tracker)Google Analytics45,000 requests
/api/v2/vendor/paymentsPOSTvendor_name, bank_account, tax_idSAP ERPBanking API (Deutsche Bank)120 requests
ソース 4:データベーススキーマ

明らかになること:

  • 保存されている正確なデータカテゴリ(列名と型)
  • データフローを明らかにするテーブル間の関係
  • 列名のパターンマッチングによる個人データの特定
  • データ量と増加のパターン

スキーマ分析の手順:

  1. クラウドカタログで特定された各データベースに接続します。
  2. テーブルスキーマ(列名、データ型、制約)を抽出します。
  3. 個人データの識別パターンを列名に適用します。
  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          │
└────────────────────────────────────────────────────────────────────┘

制限事項とリスク軽減策

  1. PII 検出における誤検知:「company_address」のようなカラム名は、業務データであっても個人データとしてフラグが付けられることがあります。軽減策:自動検出されたすべての PII カラムを人がレビューします。

  2. 目的に関するコンテキストの不足:自動化システムは、技術メタデータだけから処理の業務目的を推論できません。軽減策:目的には常に「DRAFT」のフラグを付け、人が明確化する必要があります。

  3. シャドー IT の死角:AD またはクラウドカタログに登録されていないシステムは検出されません。軽減策:自動検出に定期的な手動アンケートを組み合わせ、未登録の処理を把握します。

  4. 暗号化またはトークン化されたデータ:カラムレベルでデータが暗号化またはトークン化されている場合、スキーマ分析では個人データを検出できないことがあります。軽減策:暗号化/トークン化の対応関係を手動で登録したレジスターを維持します。

  5. 同意と適法な根拠:技術メタデータから判断することはできません。必ず法務または DPO の関与が必要です。

コメント