システムアーキテクチャ
####################
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` を参照してください。