システムアーキテクチャ
Acompany Clean Roomsのシステムアーキテクチャについて説明します。
概要
Acompany Clean Roomsは、データの機密性を保持したまま複数パーティ間でデータ分析を実行できるプラットフォームです。 システムは3つの主要コンポーネントで構成されており、それぞれが明確な役割を持っています。
システム構成
システムは以下の3層で構成されています:
graph LR
Client["APC CLI<br/>(クライアント)"]
subgraph APOS["管理サーバー"]
direction LR
APOSDesc["・サーバー管理<br/>・アクセス制御(認証)"]
end
subgraph ComputeServer["計算実行サーバー"]
direction LR
subgraph Enclave["TEE (機密計算環境)"]
EnclaveDesc["・データ復号<br/>・関数実行<br/>・結果暗号化"]
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で検証できます
利用の流れ
基本的な流れ
認証
管理サーバーから認証トークンを取得
関数とデータの準備
分析したい関数(Pythonスクリプト)を作成
関数をアップロード
クリーンルームをデプロイ
入力データを用意
セキュリティ検証
サーバーの実行環境の状態を検証
詳細は セキュリティ を参照
実行
暗号化されたデータをサーバーに送信
TEE内で処理を実行
暗号化された処理結果が返送
結果の取得
暗号化された結果をダウンロード
ユーザーのローカル環境で復号して確認
まとめ
Acompany Clean Roomsは、以下の3つのコンポーネントで構成される安全なデータ分析プラットフォームです:
1. クライアント(APC CLI)
ユーザーのローカル環境で動作し、データの暗号化とサーバーとの通信を担当します。
2. 管理サーバー
認証機能を提供し、計算実行サーバーへのアクセスを管理します。
3. 計算実行サーバー(TEE環境)
TEE(Trusted Execution Environment)という特殊なハードウェアで保護された環境で、ユーザーのデータを安全に処理します。
セキュリティの特徴
データはクライアント環境とTEE内でのみ平文で扱われます
暗号化されたデータは、サーバー管理者・クラウドサービスプロバイダーを含む誰も見ることができません
Remote Attestaionによってサーバーの実行環境の状態を検証できます
詳細なセキュリティモデルについては、セキュリティ を参照してください。