すべてのプロダクト
Search
ドキュメントセンター

Elastic GPU Service:異種機密コンピューティングインスタンス上での測定可能なLLM推論環境の構築

最終更新日:Jun 18, 2026

異種機密コンピューティングインスタンス (gn8v-tee) 上にセキュリティ測定機能を備えた大規模言語モデル (LLM) の推論環境を構築し、推論ライフサイクル全体でモデル資産とユーザーデータを保護できます。

背景情報

Alibaba Cloud の異種機密コンピューティングインスタンス (gn8v-tee) は、Intel® Trust Domain Extensions (TDX) を搭載した CPU ベースの機密コンピューティングインスタンスを基盤とし、GPU を高信頼実行環境 (TEE) に統合しています。これにより、CPU と GPU 間のデータ転送および GPU 内での計算が保護されます。このソリューションは、Intel TDX の測定機能とリモートアテステーション機能を、異種機密コンピューティングインスタンス上で実行される LLM 推論サービスに統合し、サービスライフサイクル全体を通じてモデルとユーザーデータの改ざんを防止するセキュリティ検証とプライバシー保護のワークフローを構築します。

このソリューションは、以下の 2 つの設計原則に準拠しています。

  • 機密性:モデルとユーザーデータが機密コンピューティングインスタンスの安全な境界内でのみ処理されることを保証し、プレーンテキストが外部環境に漏洩するのを防ぎます。

  • 完全性:LLM 推論サービス環境のすべてのコンポーネント (推論フレームワーク、モデルファイル、対話型インターフェイスを含む) のコード、データ、設定が改ざん耐性を持ち、厳格な第三者監査プロセスを通じて検証可能であることを保証します。

ソリューションのセキュリティ原則

このソリューションでは、測定とリモートアテステーションという 2 つのセキュリティメカニズムを使用します。

  • 測定

    Intel® Trust Domain Extensions (TDX) は、仮想マシン (VM) をハードウェアで保護された高信頼ドメイン (TD) に分離することで、セキュリティを強化します。起動時に、TDX モジュールは TD ゲストの状態を主に 2 つのレジスタセットに記録します。

    • ビルドタイム測定レジスタ (MRTD):ゲスト VM の初期設定とブートイメージに関連する測定値をキャプチャします。

    • ランタイム測定レジスタ (RTMRs):初期状態、カーネルイメージ、コマンドラインオプション、および必要に応じてその他のランタイムサービスやパラメータの測定値を記録します。

    これらの測定値は、TD と実行中のアプリケーションのライフサイクル全体にわたる完全性の保証に役立ちます。このソリューションでは、Ollama および DeepSeek モデル、Open WebUI フレームワークに関連するものを含む、モデルサービスとカーネルパラメータの測定値が RTMRs に反映されます。

  • リモートアテステーション

    TDX のリモートアテステーションは、機密 VM の完全性と信頼性を暗号学的に証明する手段をリモートの第三者に提供します。このプロセスには、以下の主要なステップが含まれます。

    • TD Quote の取得:

      1. クライアントは Open WebUI に完全なリモートアテステーションを要求します。

      2. Open WebUI バックエンドは、ハードウェア署名付きのリモートアテステーションレポートを取得します。このレポートは Quote と呼ばれ、実行中のモデルサービス環境の完全性を反映する MRTD と RTMRs が含まれています。

    • TD Quote の検証:クライアントは Quote を信頼できるアテステーションサービスに送信します。サービスは、事前に定義されたポリシーと照合して Quote を検証し、モデルサービスとの信頼を確立します。

    説明

    Alibaba Cloud リモートアテステーションサービスの詳細については、「リモートアテステーションサービス」をご参照ください。

このソリューションは、測定とアテステーションを統合することにより、リモートモデルサービスの完全性と信頼性を検証します。これは、データセキュリティとプライバシー保護に不可欠です。

技術アーキテクチャ

image

以下に、アーキテクチャ内のコンポーネントについて説明します。

  • クライアント

    クライアントは、エンドユーザーが LLM サービスにアクセスするためのユーザーインターフェイス (UI) を提供します。セッションを開始し、リモート環境の信頼性を検証し、バックエンドサービスと安全に通信します。

  • リモートアテステーションサービス

    このコンポーネントは、Alibaba Cloud リモートアテステーションサービスを使用して、プラットフォームの高信頼コンピューティングベース (TCB) と推論サービスを含む、モデル推論環境のセキュリティ状態を検証します。

  • 推論サービスコンポーネント

    • Ollama:モデルサービングフレームワークです。このソリューションでは、バージョン v0.5.7 を使用します。

    • DeepSeek モデル:このソリューションでは、DeepSeek-R1-70B (int4 量子化) モデルの蒸留バージョンを使用します。

    • Open WebUI:機密 VM 内で実行される Web ベースの対話型インターフェイスで、RESTful API を介してユーザーのモデルサービスリクエストを受け取ります。このソリューションでは、バージョン v0.5.20 を使用します。

    • CCZoo オープンソースプロジェクト:このソリューションでは、Confidential AI のソースコードを使用します。このソリューションで使用されるバージョンは v1.2 です。このオープンソースプロジェクトの詳細については、「CCZoo」をご参照ください。

説明

Confidential Computing Zoo (CCZoo) は、クラウドコンピューティングシナリオ向けのセキュリティソリューションの集合体であり、開発者がエンドツーエンドの機密コンピューティングソリューションを構築するのに役立ちます。関連するセキュリティ技術には、TEE (Intel® SGX や TDX など)、準同型暗号 (HE) とそのハードウェアアクセラレーション、リモートアテステーション、LibOS、ハードウェアアクセラレーション暗号などが含まれますが、これらに限定されません。ビジネスシナリオには、クラウドネイティブ AI 推論、連合学習、ビッグデータ分析、キー管理、および gRPC などのリモートプロシージャコール (RPC) が含まれますが、これらに限定されません。

ワークフロー

このソリューションのワークフローは次のとおりです。

image

  1. サービスの起動と測定

    ランタイム環境の測定:プラットフォームの TCB モジュールは、モデルサービスを実行するランタイム環境の完全性を測定します。測定結果は TCB 内の TDX モジュールに保存されます。

  2. 推論セッションの初期化

    セッションの作成:クライアント (ブラウザ) は Open WebUI に新しいセッションリクエストを送信します。

  3. リモートアテステーション

    1. アテステーションリクエスト:クライアントがセッションリクエストを開始すると同時に、モデルのランタイム環境の信頼性を証明するためのアテステーション証拠 (TDX Quote) を要求します。この証拠は、Open WebUI セッション管理サービスや Ollama ベースのモデルサービスを含む、リモートサービスのすべてのコンポーネントを検証します。

    2. Quote の生成:Open WebUI サービスバックエンドは、ユーザーセッション作成プロセスからのアテステーションリクエストを Intel TDX ベースの機密 VM に転送します。その後、機密 VM は完全な証明書チェーンを含む TDX リモートアテステーションレポート (TDX Quote) を生成します。

    3. Quote の検証:クライアントは受信した証拠 (Quote) をリモートアテステーションサービスに提出して検証を依頼します。アテステーションサービスは、証拠 (デジタル署名、証明書チェーン、セキュリティポリシーを含む) を検証し、リモートモデルサービス環境のセキュリティ状態と完全性を確認する結果を返します。

  4. 機密大規模モデル推論サービス

    1. リモートアテステーションの成功:クライアントは、セキュリティ状態が検証されているため、リモートモデルサービスを完全に信頼できます。エンドユーザーにとって、データ漏洩のリスクは極めて低くなります (ただし、どのシステムにもある程度のレベルのリスクは存在します)。

    2. リモートアテステーションの失敗:アテステーションサービスはエラーメッセージを返します。この場合、ユーザーまたはシステムは、後続のサービスリクエストを中止するか、潜在的なセキュリティリスクに関する警告を受け取った後に続行するかを選択できます。この時点で、リモートモデルサービスはデータセキュリティのリスクに直面する可能性があります。

操作手順

ステップ1:異種機密コンピューティングインスタンスの作成

重要

Ollama によってダウンロードされたモデルデータは /usr/share/ollama/.ollama/models ディレクトリに保存されます。モデルファイルは通常大きいため (たとえば、DeepSeek-R1 70B 量子化モデルは約 40 GB)、インスタンスを作成する際には、実行する予定のモデルに基づいてクラウドディスクのサイズを選択してください。モデルファイルサイズの 2〜3 倍のクラウドディスクサイズを推奨します。

コンソール

異種コンフィデンシャルコンピューティングインスタンスの作成は、スタンダードインスタンスの作成と似ていますが、特定の構成が必要です。一般的な構成については、「ウィザードを使用したインスタンスの作成」をご参照ください。

  1. ECS コンソール - インスタンスに移動します。

  2. 上部メニューで、対象リソースのリージョンとリソースグループを選択します。 地域

  3. インスタンスの作成 をクリックし、次の設定でインスタンスを構成します。

    設定項目

    説明

    リージョンとゾーン

    中国 (北京) ゾーン L

    インスタンスタイプ

    ecs.gn8v-tee.4xlarge 以上。

    イメージ

    カーネルバージョンが 5.10.134-18.al8.x86_64 以降の [Alibaba Cloud Linux 3.2104 LTS 64 ビット] イメージを選択します。

    パブリック IP アドレス

    [パブリック IPv4 アドレスを割り当てます]。後で NVIDIA ドライバーをダウンロードする際に必要になります。

    重要

    8 つの GPU を持つコンフィデンシャルインスタンスを作成または再起動する場合、追加のセカンダリ ENI やデータディスクをアタッチしないでください。アタッチすると、起動に失敗する可能性があります。

    原因と解決策

    TDX が有効な ECS インスタンスは、周辺機器との通信のために、非暗号化メモリ領域である SWIOTLB を使用します。デフォルトでは、SWIOTLB のサイズは利用可能なメモリの 6% で、最大 1 GiB です。

    8 つの GPU を持つコンフィデンシャルインスタンスに複数の ENI またはデータディスクをアタッチすると、SWIOTLB メモリが枯渇し、メモリ割り当てに失敗して起動できなくなる可能性があります。

    インスタンスの起動に失敗した場合:

    • 解決策 1: インスタンスを停止し、追加のセカンダリ ENI の バインドを解除 し、すべてのデータディスクを デタッチ します。

    • 解決策 2: プライマリ ENI が 1 つのみで、データディスクがなく、システムディスクのみを持つ新しいインスタンスを作成します。

    8 つの GPU を持つコンフィデンシャルインスタンスに複数の ENI またはデータディスクを追加するには、まず 手順 1 を完了して SWIOTLB バッファを 8 GB に増やします。その後、インスタンスに ENI をアタッチ し、データディスクをアタッチ します。

  4. 画面の指示に従って、インスタンスの作成を完了します。

API/CLI

RunInstances API を呼び出すか、Alibaba Cloud CLI を使用して、TDX が有効な ECS インスタンスを作成します。主なパラメーターは次のとおりです。

パラメーター

説明

RegionId

中国 (北京)

cn-beijing

ZoneId

ゾーン L

cn-beijing-l

InstanceType

ecs.gn8v-tee.4xlarge 以上。

ecs.gn8v-tee.4xlarge

ImageId

コンフィデンシャルコンピューティングをサポートするイメージの ID。カーネルバージョンが 5.10.134-18.al8.x86_64 以降の 64 ビット Alibaba Cloud Linux 3.2104 LTS イメージのみが対象です。

aliyun_3_x64_20G_alibase_20250117.vhd

CLI の例:

<SECURITY_GROUP_ID>:セキュリティグループ ID<VSWITCH_ID>:vSwitch ID<KEY_PAIR_NAME>:SSH キーペア名
aliyun ecs RunInstances \
  --RegionId cn-beijing \
  --ZoneId cn-beijing-l \
  --SystemDisk.Category cloud_essd \
  --ImageId 'aliyun_3_x64_20G_alibase_20250117.vhd' \
  --InstanceType 'ecs.gn8v-tee.4xlarge' \
  --SecurityGroupId '<SECURITY_GROUP_ID>' \
  --VSwitchId '<VSWITCH_ID>' \
  --KeyPairName <KEY_PAIR_NAME>

ステップ 2:TDX リモートアテステーション環境の構築

TDX レポートは、TDX インスタンスの ID を表す CPU が生成するデータ構造です。これには、ATTRIBUTESRuntime-extendable Measurement Registers (RTMRs)Trusted Computing Base Security Version Numbers (TCB SVNs) などのキー情報が含まれており、暗号化方式を使用してその整合性を保護します。詳細については、「Intel TDX Module」をご参照ください。

  1. Alibaba Cloud コンフィデンシャルコンピューティングの yum リポジトリを追加します。

    • パブリックエンドポイントのフォーマット: https://enclave-[Region-ID].oss-[Region-ID].aliyuncs.com/repo/alinux/enclave-expr.repo

    • VPC エンドポイントの形式:https://enclave-[Region-ID].oss-[Region-ID]-internal.aliyuncs.com/repo/alinux/enclave-expr.repo

      [Region-ID] を TDX インスタンスのリージョン ID に置き換えます。次の例では、インスタンスメタデータを使用してリージョン ID を動的に取得します。

      token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token")
      region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id)
      
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://enclave-${region_id}.oss-${region_id}-internal.aliyuncs.com/repo/alinux/enclave-expr.repo
  2. ビルドツールとサンプルコードをインストールします。

    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y sgxsdk libtdx-attest-devel
  3. Alibaba Cloud TDX リモートアテステーションサービスを設定します。

    /etc/sgx_default_qcnl.confPCCS_URL を設定します。次の例では、インスタンスメタデータを使用してリージョン ID を動的に取得し、DCAP サービスを設定します:

    token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token")
    region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id)
    
    sudo sed -i.$(date "+%m%d%y") 's|PCCS_URL=.*|PCCS_URL=https://sgx-dcap-server.${region_id}.aliyuncs.com/sgx/certification/v4/|' /etc/sgx_default_qcnl.conf

ステップ3:Ollama のインストール

  1. パスワードまたはキーを使用して Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して Ollama をインストールします。

    curl -fsSL https://ollama.com/install.sh | sh
    説明

    上記のスクリプトは Ollama が提供する公式のインストールスクリプトです。ネットワークの問題でインストールに失敗した場合は、Ollama の公式サイトを参照し、他のインストール方法を選択できます。詳細については、「Ollama Linux installation guide」をご参照ください。

ステップ4:Ollama を使用した DeepSeek-R1 のダウンロードと実行

モデルファイルはサイズが大きいため、ダウンロードに時間がかかることがあります。ネットワーク切断によるダウンロードの中断を防ぐために、tmux を使用することを推奨します。

  1. tmux のインストール

    次のコマンドを実行して tmux をインストールします。

    sudo yum install -y tmux
  2. Ollama を使用した DeepSeek-R1 のダウンロードと実行

    次のコマンドを実行して tmux セッションを作成し、そのセッション内で DeepSeek-R1 モデルをダウンロードして実行します。

    # run-deepseek という名前の tmux セッションを作成します
    tmux new -s "run-deepseek"
    # tmux セッション内で deepseek-r1 モデルをダウンロードして実行します
    ollama run deepseek-r1:70b

    次の出力は、モデルが正常にダウンロードされ、起動したことを示します。/bye と入力してモデルとの対話を終了できます。

    ......
    verifying sha256 digest 
    writing manifest 
    success 
    >>> 
    >>> Send a message (/? for help)
  3. (オプション) tmux セッションへの再接続

    ネットワーク切断後に tmux セッションを復元する必要がある場合は、次のコマンドを実行します。

    tmux attach -t run-deepseek

ステップ5:Open WebUI のコンパイル

Open WebUI が TDX ベースの測定サービスを使用できるようにするには、TDX 測定プラグインをダウンロードし、ソースから Open WebUI をコンパイルする必要があります。

重要

以下の例では、/home/ecs-user を作業ディレクトリとして使用しています。ご自身の環境に合わせて置き換えてください。

  1. 依存関係のインストールと環境設定

    1. Node.js をインストールします。

      次のコマンドを実行して Node.js をインストールします。

      sudo yum install -y nodejs
      説明

      パッケージマネージャーで Node.js のインストールに問題が発生した場合は、Node Version Manager (nvm) を使用して特定のバージョンの Node.js をインストールしてみてください。

      # nvm をダウンロードしてインストールします
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
      # nvm 環境変数を読み込みます
      source ~/.bashrc
      # Node.js バージョン 20.18.1 をインストールします
      nvm install 20.18.1
      # このバージョンを使用します
      nvm use 20.18.1
      # バージョンを確認します
      node --version
    2. Miniforge3 をインストールし、その環境変数を設定します。

      次のコマンドを実行して Miniforge3 をインストールし、open-webui 仮想環境を管理するための環境変数を設定します。

      # Miniforge3 インストールパッケージを取得します
      wget https://github.com/conda-forge/miniforge/releases/download/24.1.3-2/Miniforge3-24.1.3-2-Linux-x86_64.sh
      # miniforge3 を /home/ecs-user/miniforge3 ディレクトリに非対話的にインストールします
      bash Miniforge3-24.1.3-2-Linux-x86_64.sh -bu -p /home/ecs-user/miniforge3
      # Miniforge3 の環境変数を設定します
      export PATH="/home/ecs-user/miniforge3/bin:$PATH"
    3. Conda を初期化し、そのバージョンを確認します。

      次のコマンドを実行して Conda を初期化し、そのバージョンを確認します。

      # Conda を初期化します
      conda init
      source ~/.bashrc
      # バージョン情報を確認します
      conda --version
  2. Open WebUI の手動コンパイル

    1. TDX 測定プラグインをダウンロードします。

      次のコマンドを実行して TDX 測定プラグインをダウンロードし、v1.2 ブランチに切り替えます。

      cd /home/ecs-user
      git clone https://github.com/intel/confidential-computing-zoo.git
      git config --global --add safe.directory /home/ecs-user/confidential-computing-zoo
      cd confidential-computing-zoo
      git checkout v1.2
    2. Open WebUI のソースコードをクローンします。

      次のコマンドを実行して Open WebUI のソースコードをクローンし、タグ v0.5.20 に切り替えます。

      cd /home/ecs-user
      git clone https://github.com/open-webui/open-webui.git
      # タグ v0.5.20 に切り替えます
      git config --global --add safe.directory /home/ecs-user/open-webui
      cd /home/ecs-user/open-webui
      git checkout v0.5.20
      # CCZoo からのパッチを適用します。このパッチは、open-webui に TDX リモートアテステーション機能を追加します。
      cd /home/ecs-user
      cp /home/ecs-user/confidential-computing-zoo/cczoo/confidential_ai/open-webui-patch/v0.5.20-feature-cc-tdx-v1.0.patch .
      git apply --ignore-whitespace --directory=open-webui/ v0.5.20-feature-cc-tdx-v1.0.patch
    3. open-webui 環境を作成してアクティブ化します。

      次のコマンドを実行して open-webui 環境を作成し、アクティブ化します。この環境は、コンパイルされた Open WebUI を実行するために使用されます。

      conda create --name open-webui python=3.11
      conda activate open-webui
    4. TDX 測定プラグインをインストールします。

      cd /home/ecs-user/confidential-computing-zoo/cczoo/confidential_ai/tdx_measurement_plugin/
      pip install Cython
      python setup.py install

      コマンドが完了したら、次のコマンドを実行してインストールを確認します。エラーが返されなければ、インストールは成功です。

      python3 -c "import quote_generator"
    5. Open WebUI をビルドします。

      # 依存関係をインストールします
      cd /home/ecs-user/open-webui/
      # npm レジストリを設定します
      npm config set registry http://registry.npmmirror.com
      sudo npm install
      # ビルドします
      sudo npm run build

      ビルドが完了したら、次のコマンドを実行して、生成されたビルドディレクトリをバックエンドディレクトリにコピーし、frontend にリネームします。

      rm -rf ./backend/open_webui/frontend
      cp -r build ./backend/open_webui/frontend
      説明

      この時点で、Alibaba Cloud リモートアテステーションサービスはコンパイルされた Open WebUI に設定されています。設定情報は /home/ecs-user/open-webui/external/acs-attest-client/index.js ファイルで確認できます。

    6. Open WebUI バックエンドサービスの起動ファイルを設定します。

      次のコマンドを実行して Open WebUI バックエンドサービスの起動ファイルを設定し、実行権限を付与します。

      tee /home/ecs-user/open-webui/backend/dev.sh << 'EOF'
      # サービスのアドレスとポートを設定します。デフォルトのポートは 8080 です。
      PORT="${PORT:-8080}"
      uvicorn open_webui.main:app --port $PORT --host 0.0.0.0 --forwarded-allow-ips '*' --reload
      EOF
      # 起動ファイルに実行権限を追加します
      chmod +x /home/ecs-user/open-webui/backend/dev.sh
    7. Open WebUI の実行に必要な依存関係をインストールします。

      cd /home/ecs-user/open-webui/backend/
      pip install -r requirements.txt -U
      conda deactivate

ステップ6:Open WebUI を実行し、TDX アテステーションを検証する

  1. 大規模言語モデルを実行し、Open WebUI サービスを開始する

    1. (オプション) Ollama サービスが実行されていない場合は、次のコマンドを実行して開始できます。

      ollama serve
    2. 次のコマンドを実行して、Ollama で DeepSeek-R1 モデルを実行します。

      ollama run deepseek-r1:70b
    3. 次のコマンドを実行して、open-webui 仮想環境をアクティブ化します。

      conda activate open-webui
    4. 次のコマンドを実行して、Open WebUI バックエンドサービスを開始します。

      cd /home/ecs-user/open-webui/backend && ./dev.sh

      次の出力は、Open WebUI バックエンドサービスが正常に開始されたことを示します。

      ......
      INFO  [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
      /root/miniforge3/envs/open-webui/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
        warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
      WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
       ██████╗ ██████╗ ███████╗███╗   ██╗    ██╗    ██╗███████╗██████╗ ██╗   ██╗██╗
      ██╔═══██╗██╔══██╗██╔════╝████╗  ██║    ██║    ██║██╔════╝██╔══██╗██║   ██║██║
      ██║   ██║██████╔╝█████╗  ██╔██╗ ██║    ██║ █╗ ██║█████╗  ██████╔╝██║   ██║██║
      ██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║    ██║███╗██║██╔══╝  ██╔══██╗██║   ██║██║
      ╚██████╔╝██║     ███████╗██║ ╚████║    ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
       ═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝     ╚══╝╚══╝ ╚══════╝╚═════╝  ╚═════╝ ╚═╝
      v0.5.20 - building the best open-source AI user interface.
      https://github.com/open-webui/open-webui
  2. ブラウザから Open WebUI サービスにアクセスする

    1. セキュリティグループのルールを追加します。

      異種機密コンピューティングインスタンスのセキュリティグループに、クライアントがポート 8080 にアクセスすることを許可するルールを追加します。詳細については、「セキュリティグループのルールの追加」をご参照ください。

    2. ブラウザから Open WebUI サービスにアクセスします。

      ローカルのブラウザを開き、次のアドレスにアクセスします: http://{ip_address}:{port}。必要に応じてパラメータを置き換えてください。

      • {ip_address}:Open WebUI が配置されているインスタンスのパブリック IP アドレス。

      • {port}:デフォルトのポート番号は 8080 です。

      リモートアテステーションが成功すると、ダイアログボックスの最初のアイコンに緑色のチェックマークが表示されます。それ以外の場合、アイコンは赤色になります。

      アクセスに成功すると、deepseek-r1:70b モデルの Open WebUI チャットインターフェイスが表示されます。リモートアテステーションのステータスインジケーターアイコンは、左上隅のモデル名の横にあります。

      説明

      [New Chat] ボタンをクリックするたびに、バックエンドサービスは TDX 機密コンピューティング環境から Quote データを自動的に取得し、リモートアテステーションサービスに送信して、返されたアテステーション結果を処理します。デフォルトでは、このアイコンは赤色で、リモートアテステーションが完了していないか失敗したことを示します。リモートアテステーションが成功すると、アイコンは緑色に変わります。

  3. TDX アテステーション情報の検証

    アテステーションステータスアイコンにカーソルを合わせると、解析された TDX Quote からの詳細なアテステーション情報を確認できます。

    アテステーション情報パネルには、jtitee (値は tdx)、exp/iat タイムスタンプ、mr_tdrtmr_0 から rtmr_3mr_seamseam_attributestd_attributesxfam などのフィールドと、それに対応する 16 進数のハッシュ値が含まれています。

    ブラウザの開発者ツールで詳細情報を表示できます。出力例は次のとおりです。

    Attestation Display info:
    {jti: 'c1e24a09-daf5-4064-a8a9-642c8c18c7fe', tee: 'tdx', exp: '2025-04-22 00:16:21 Asia/Shanghai', iat: '2025-04-21 18:16:21 Asia/Shanghai', mr_td: 'b0e52c59577523b17ad553c6fffb0f5f3496dbf3ccca69fbb2ea87cf4f938157550005c92a98130d8d30507ca5c652df', …}
    exp: "2025-04-22 00:16:21 Asia/Shanghai"
    iat: "2025-04-21 18:16:21 Asia/Shanghai"
    jti: "c1e24a09-daf5-4064-a8a9-642c8c18c7fe"
    mr_seam: "1cc6a17ab799e9a693fac7536be61c12ee1e0fabada82d0c999e08ccee2aa86de77b0870f558c570e7ffe55d6d47fa04"
    mr_td: "b0e52c59577523b17ad553c6fffb0f5f3496dbf3ccca69fbb2ea87cf4f938157550005c92a98130d8d30507ca5c652df"
    rtmr_0: "78be53d723b6be3f82997e3e8291f133b5d0a9905c17e5f95308c7db488e22da3405fc2e3b60f6291c38304096a17d21"
    rtmr_1: "216e85c7541a45bfbb9fe0521c72886bf8f47493d6027f2e33afe50a6d2f946904350780b0f205ee447bf08d29f60e4e"
    rtmr_2: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    rtmr_3: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    seam_attributes: "0000000000000000"
    td_attributes: "0000001000000000"
    tee: "tdx"
    xfam: "e742060000000000"
    [[Prototype]]: Object
    ALL Attestation info
    {jti: 'c1e24a09-daf5-4064-a8a9-642c8c18c7fe', tee: 'tdx', exp: '2025-04-22 00:16:21 Asia/Shanghai', iat: '2025-04-21 18:16:21 Asia/Shanghai', mr_td: 'b0e52c59577523b17ad553c6fffb0f5f3496dbf3ccca69fbb2ea87cf4f938157550005c92a98130d8d30507ca5c652df', …}
    att_key_type: "0200"
    exp: "2025-04-22 00:16:21 Asia/Shanghai"
    iat: "2025-04-21 18:16:21 Asia/Shanghai"
    jti: "c1e24a09-daf5-4064-a8a9-642c8c18c7fe"
    mr_condif_id: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    mr_owner: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    mr_seam: "1cc6a17ab799e9a693fac7536be61c12ee1e0fabada82d0c999e08ccee2aa86de77b0870f558c570e7ffe55d6d47fa04"
    mr_td: "b0e52c59577523b17ad553c6fffb0f5f3496dbf3ccca69fbb2ea87cf4f938157550005c92a98130d8d30507ca5c652df"
    rtmr_0: "78be53d723b6be3f82997e3e8291f133b5d0a9905c17e5f95308c7db488e22da3405fc2e3b60f6291c38304096a17d21"
    rtmr_1: "216e85c7541a45bfbb9fe0521c72886bf8f47493d6027f2e33afe50a6d2f946904350780b0f205ee447bf08d29f60e4e"
    rtmr_2: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    rtmr_3: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    seam_attributes: "0000000000000000"
    td_attributes: "0000001000000000"
    tee: "tdx"
    xfam: "e742060000000000"
    [[Prototype]]: Object
    mr_owner_config: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    mr_seam: "1cc6a17ab799e9a693fac7536be61c12ee1e0fabada82d0c999e08ccee2aa86de77b0870f558c570e7ffe55d6d47fa04"
    mr_servicetd: "383c87d3bbb047b2d171eaca95312ede99f258088dc788f6ae2ccf8b6dd848fe8d47629e08b3f6cbd4a0ddd47a5..."
    mr_td: "b0e52c59577523b17ad553c6fffb0f5f3496dbf3ccca69fbb2ea87cf4f938157550005c92a98130d8d30507ca5c652df"
    mrsigner_seam: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    rtmr_0: "78be53d723b6be3f82997e3e8291f133b5d0a9905c17e5f95308c7db488e22da3405fc2e3b60f6291c38304096a17d21"
    rtmr_1: "216e85c7541a45bfbb9fe0521c72886bf8f47493d6027f2e33afe50a6d2f946904350780b0f205ee447bf08d29f60e4e"
    rtmr_2: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    rtmr_3: "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    seam_attributes: "0000000000000000"
    tcb_svn: "05010600000000000000000000000000"
    td_attributes: "0000001000000000"
    td_attributes.debug: false

よくある質問

pip パッケージのダウンロードが遅い

  • 現象:pip でパッケージをインストールする際に、パッケージのダウンロードが遅い、または失敗する。

  • 原因:公式の pip ソフトウェアソースへのネットワークアクセスが不安定である。

  • 解決策:Alibaba Cloud のミラーを使用してプロセスを高速化できます。

    グローバル設定

    次の内容を ~/.pip/pip.conf ファイルに追加します。

    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/

    単一コマンド

    pip install コマンドを実行する際に、-i パラメータを追加してソフトウェアソースのアドレスを指定することで、インストールを高速化できます。次の例は torch パッケージをインストールするものです。必要に応じて置き換えてください。

    pip install torch -i https://mirrors.aliyun.com/pypi/simple/

Cannot find package」エラー

  • 現象:Open WebUI をコンパイルする際に「Cannot find package」エラーが発生する。

  • 原因:ビルド環境に必要なパッケージが不足している。

  • 解決策:不足しているパッケージを npm でインストールしてから、再度コンパイルする必要があります。次の例は pyodide パッケージをインストールするものです。実際のエラーメッセージに基づいて置き換えてください。

    npm install pyodide

関連ドキュメント

Open WebUI はデフォルトで HTTP のみをサポートしています。転送中のデータを保護するために、Alibaba Cloud Server Load Balancer (SLB) を使用して HTTPS をデプロイできます。詳細については、「HTTPS リクエストの片方向認証の設定」をご参照ください。