システムアーキテクチャ #################### AutoPrivacy DataCleanRoomのシステムアーキテクチャについて説明します。 概要 *********************** AutoPrivacy DataCleanRoomは、データの機密性を保持したまま複数パーティ間でデータ分析を実行できるプラットフォームです。 システムは3つの主要コンポーネントで構成されており、それぞれが明確な役割を持っています。 システム構成 *********************** システムは以下の3層で構成されています: .. mermaid:: graph LR Client["APC CLI
(クライアント)"] subgraph APOS["管理サーバー"] direction LR APOSDesc["・サーバー管理
・アクセス制御(認証)"] end subgraph ComputeServer["計算実行サーバー"] direction LR subgraph Enclave["TEE (機密計算環境)"] EnclaveDesc["・データ復号
・関数実行
・結果暗号化"] end end Client --> APOS Client -.-> ComputeServer classDef clientStyle fill:#e1f5ff,stroke:#01579b,stroke-width:2px classDef aposStyle fill:#fff3e0,stroke:#e65100,stroke-width:2px classDef computeStyle fill:#f3e5f5,stroke:#4a148c,stroke-width:2px classDef enclaveStyle fill:#e8f5e9,stroke:#1b5e20,stroke-width:3px class Client clientStyle class APOS,APOSDesc aposStyle class ComputeServer computeStyle class Enclave,EnclaveDesc enclaveStyle 各コンポーネントの役割 *********************** 1. APC CLI(クライアント) ============================== **概要** ユーザーのローカル環境で動作するコマンドラインツールです。データの暗号化やサーバーとの通信を行います。 **主な機能** - **実行環境作成**: クリーンルームの作成・設定 - **データ準備**: 分析関数とデータのアップロード - **実行制御**: 計算処理の開始と結果の取得 - **セキュリティ**: データの暗号化・復号とサーバー検証 **重要なポイント** - データはクライアント側で暗号化されてから送信されます - 暗号化鍵はユーザーのローカル環境でのみ管理されます - サーバーが信頼できる環境で動作しているか検証できます 2. 管理サーバー ============================== **概要** 計算実行サーバー(TEE Server)を管理し、認証機能を提供するサーバーです。 **主な機能** - **認証**: ユーザーの身元を確認し、計算実行サーバーへのアクセスを管理 **重要なポイント** - 認証トークンを発行し、ユーザーがどの計算実行サーバーにアクセスできるかを制御します - 暗号化されたデータは見ることができません 3. 計算実行サーバー(TEE環境) ============================== **概要** ユーザーが送信したデータを復号し、関数を実行した後、結果を暗号化してクライアントに返送するサーバーです。 TEE(Trusted Execution Environment)という特殊なハードウェアで保護された領域を持っています。 **主な機能** - **データ復号**: 暗号化されたデータをTEE内でのみ復号 - **関数実行**: 指定された分析処理を実行 - **結果暗号化**: 実行結果を暗号化してクライアントに返送 **重要なポイント** - データはTEE内でのみ平文で処理されます - TEEの外(サーバー管理者を含む)からはデータを見ることができません - 実行環境の正当性をRemote Attestationで検証できます 利用の流れ *********************** 基本的な流れ ============================== 1. **認証** - 管理サーバーから認証トークンを取得 2. **関数とデータの準備** - 分析したい関数(Pythonスクリプト)を作成 - 関数をアップロード - クリーンルームをデプロイ - 入力データを用意 3. **セキュリティ検証** - サーバーの実行環境の状態を検証 - 詳細は :doc:`../security/index` を参照 4. **実行** - 暗号化されたデータをサーバーに送信 - TEE内で処理を実行 - 暗号化された処理結果が返送 5. **結果の取得** - 暗号化された結果をダウンロード - ユーザーのローカル環境で復号して確認 まとめ *********************** AutoPrivacy DataCleanRoomは、以下の3つのコンポーネントで構成される安全なデータ分析プラットフォームです: **1. クライアント(APC CLI)** ユーザーのローカル環境で動作し、データの暗号化とサーバーとの通信を担当します。 **2. 管理サーバー** 認証機能を提供し、計算実行サーバーへのアクセスを管理します。 **3. 計算実行サーバー(TEE環境)** TEE(Trusted Execution Environment)という特殊なハードウェアで保護された環境で、ユーザーのデータを安全に処理します。 **セキュリティの特徴** - データはクライアント環境とTEE内でのみ平文で扱われます - 暗号化されたデータは、サーバー管理者・クラウドサービスプロバイダーを含む誰も見ることができません - Remote Attestaionによってサーバーの実行環境の状態を検証できます 詳細なセキュリティモデルについては、:doc:`../security/index` を参照してください。