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

Platform For AI:機密推論サービス

最終更新日:Oct 09, 2026

Platform for AI (PAI) 上の PAI-EAS のセキュアな暗号化推論環境で、暗号化された大規模言語モデル (LLM) をデプロイして呼び出します。モデルは高信頼実行環境内で使用するために暗号化およびアップロードされます。デプロイ時に、リモートアテステーションサービス (Trustee) がランタイム環境の信頼性を検証し、その後、復号キーを解放してモデルを復号しマウントします。Trusted Network Gateway (TNG) は、推論トラフィックを透過的に暗号化できます。これらの保護レイヤーにより、データとモデルはそのライフサイクル全体を通じてセキュアに保たれます。このソリューションは、金融サービス、政府、エンタープライズアプリケーションなど、厳格なセキュリティ要件が求められる機密データを扱うワークロードに適しています。

仕組み

secure-inference-architecture

PAI-CC (PAI Confidential Computing) は、機密コンピューティングワークロード向けの PAI-EAS 推論サービスです。これは標準の Elastic Algorithm Service (EAS) 推論サービスを基盤としており、以下の機能によってモデル推論をエンドツーエンドで保護します。

  • CPU TEE (Intel TDX 高信頼実行環境 (TEE)):推論プロセスは、Intel TDX ハードウェアによって分離された信頼ドメインで実行されます。モデルの読み込み、トークン化、スケジューリングロジック、および KV キャッシュはすべて CPU 上のエンクレーブ内で行われるため、ホストもクラウドプラットフォームもプレーンテキストを読み取ることはできません。

  • GPU TEE (機密GPU):GPU は高信頼実行環境 (TEE) の一部です。TEE は、CPU から GPU へのモデルの重みの転送、GPU 内でのアテンション計算、行列乗算、および KV キャッシュを保護します。CPU-GPU 間の相互接続は暗号化されます。

  • 暗号化されたモデルストレージ:モデルは gocryptfs (AES256-GCM) で暗号化され、Object Storage Service (OSS) に保存され、暗号文としてインスタンスに転送されます。復号キーは、リモートアテステーションが成功した後にのみ TEE に注入され、その後モデルは復号されてマウントされます。キーはディスクに書き込まれることはなく、TEE の外部に出ることもありません。

  • リモートアテステーション:デプロイ前および推論開始前に、Trustee は TEE ハードウェアの署名、ファームウェアの測定、およびインスタンスのランタイム構成を検証します。モデルの復号キーは、この検証が成功した後にのみ解放されます。

  • モデルの完全性測定 (verity):オプション。この機能は、モデルファイルのマークルツリールートハッシュを生成し、デプロイ時にそれをチェックします。これにより、ランタイム中にモデルが改ざんされたり、置き換えられたりするのを防ぎます。

  • 暗号化された推論トラフィック (TNG ゲートウェイ保護):オプション。TNG は、クライアントと推論サービス間のリクエストとレスポンスを透過的に暗号化し、推論データをエンドツーエンドで保護します。キーはリモートアテステーションのハンドシェイク中にネゴシエートされ、各推論リクエストは一意のキーを使用して、ネットワークパス上での盗聴や改ざんを防ぎます。

pai-cc-tools クライアントのインストール

pai-cc-tools は、モデルの測定、暗号化、アップロード、および機密推論用のコマンドをラップします。開始する前に、クライアントをインストールしてください:

curl -fsSL https://conf-ai.oss-cn-beijing.aliyuncs.com/pai-cc/pai-cc-tools-<date>-<hash>.tar.gz | tar -xz -C /opt && ln -sf /opt/pai-cc-tools/pai-cc /usr/local/bin/pai-cc

pai-cc コマンドが利用可能になります。

ステップ 1:暗号化されたモデルの準備

このステップは、モデルの測定 (オプション)、モデルの暗号化、およびモデルのアップロードの3つの部分で構成されます。モデルファイルは大きいため、このプロセスには時間がかかることがあります。

説明

このソリューションを迅速に試すには、次の表で提供されている暗号化されたモデルファイルを使用してください。このステップの測定、暗号化、アップロードの部分をスキップし、「ステップ 2:Trustee リモートアテステーションサービスの設定」に直接進んでください。

クリックして暗号化されたモデルファイル情報を表示

モデル名

暗号化方式

暗号化パスワード

OSSリージョン

モデルの保存場所

参照値

Qwen3.8-27B

Gocryptfs

0Bn4Q1wwY9fN3P

cn-beijing

conf-ai:/qwen3.8-27b-gocryptfs/

9a1472695255ed58fc92d48ab917368ffee91938004af06bc4a5690a33de1875

ステップ 2 のリモートアテステーションポリシーに上記の表の参照値を追加して、デプロイ時にサービスが読み込むモデルを検証します。独自のモデルを使用するには、以下の部分を完了してください。このトピックでは、Qwen3.8-27B モデルを例として使用します。

1. モデルの測定 (オプション)

モデル測定は、モデルディレクトリの参照値を生成します。デプロイ時に、サービスはこの値を使用して、読み込まれたモデルとランタイムチェックポイントが改ざんされていないことを確認します。リモートソースから読み込むモデルを検証し、ランタイムチェックポイントを改ざんから保護する必要がある場合は、この部分を実行してください。モデルの暗号化を 行う前 にモデルを測定してください。

# ModelScopeからオンラインでプルするか、ローカルディレクトリを使用します
DIR=$(pai-cc model measure --modelscope Qwen/Qwen3.8-27B --hash-output /tmp/qwen-root.hash)
echo "Path of the measured model: ${DIR}"
  • 参照値は --hash-output で指定されたファイルに書き込まれます。この値を記録してください。後でリモートアテステーションの参照値として使用できます。

2. モデルの暗号化

PAI-EAS の暗号化推論では、オープンソースの gocryptfs 標準に準拠した AES256-GCM ベースの暗号化方式である Gocryptfs を使用します。

pai-cc model encrypt は暗号化を実行します。このソリューションでは、一貫してキー 0Bn4Q1wwY9fN3P を使用します。このキーはユーザーが指定します。

  • (オプション) 測定したモデルを暗号化するには:

    CIPHER=$(pai-cc model encrypt --model "$DIR" --method gocryptfs --key 0Bn4Q1wwY9fN3P)
    echo "Path of the measured and encrypted model: ${CIPHER}"
  • モデルを測定せずに暗号化するには:

    CIPHER=$(pai-cc model encrypt --modelscope Qwen/Qwen3.8-27B --method gocryptfs --key 0Bn4Q1wwY9fN3P)
    echo "Path of the encrypted model: ${CIPHER}"

3. モデルのアップロード

デプロイインスタンスと同じリージョンにある OSS バケットに暗号文ディレクトリをアップロードします。pai-cc model upload は ossutil をラップし、暗号文のフラットアップロードを実行し、ファイル数を検証します。

URI=$(pai-cc model upload --cipher "$CIPHER" --bucket <your-bucket> --prefix qwen3.8-27b-gocryptfs)
  • コマンドは oss://<your-bucket>/qwen3.8-27b-gocryptfs/ URI を stdout に書き込みます。このパスは、ステップ 3 のストレージマウント設定で使用します。

ステップ 2:Trustee リモートアテステーションサービスの設定

モデルのランタイム環境と推論サービスを検証するリモートアテステーションサービスを管理します。モデルの復号キーは、デプロイ環境が信頼要件を満たした後にのみ注入されます。その後、キーはモデルを復号してマウントします。このソリューションでは、Trustee を Elastic Compute Service (ECS) にデプロイします。

  1. パブリック IP アドレスを持つ標準の ECS インスタンスを準備し、OSとして Alibaba Cloud Linux 3.2104 LTS 64 ビットを選択してください。以下のすべてのコマンドをこのインスタンスで実行してください。

    最も厳格なセキュリティ要件を満たすために、Trustee をオンプレミスのデータセンターやローカルサーバーにデプロイすることもできます。Express Connect 回線や VPN を介して、クラウド上の VPC に接続してください。これにより、信頼のルートを完全に管理下に置くことができます。
  2. インスタンスにログインし、yum リポジトリから Trustee をインストールして起動してください。

    yum install -y trustee-1.10.0

    Trustee は自動的に起動し、デフォルトでポート 8081 でリッスンします。そのエンドポイントは http://<trustee-ip>:8081/api です。本番環境では Trustee に HTTPS を設定してください。

  3. モデル復号キーを Trustee にインポートします。このソリューションでは、キー 0Bn4Q1wwY9fN3P を使用します。このキーはユーザーが指定します。キーを書き込む際は、値が暗号化キーとバイト単位で一致するように、echo -n を使用して末尾の改行を省略します:

    sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/
    sudo sh -c 'echo -n "0Bn4Q1wwY9fN3P" > /opt/trustee/kbs/repository/default/aliyun/model-decryption-key'

    この手順の後、Trustee のキー ID は、ステップ 3 の設定における decryption_key の値である kbs:///default/aliyun/model-decryption-key になります。

  4. リモート構成証明ポリシーを設定します。ポリシーファイルは /opt/trustee/attestation-service/policies/opa/default.rego です。Trustee は PAI-CC インスタンスの各レプリカをチェックし、キーを解放するかどうかを決定します。

    次のコマンドを実行してリモートアテステーションポリシーを設定してください

    cat <<EOF >/opt/trustee/attestation-service/policies/opa/default.rego
    package policy
    
    import rego.v1
    
    default executables := 2
    default configuration := 2
    default file_system := 2
    default hardware := 97
    
    hardware := 2 if {
        input.tdx.quote.header.tee_type == "81000000"
        input.tdx.quote.header.vendor_id == "939a7233f79c4ca9940a0db3957f0607"
        gpu_attestation_ok
    }
    
    gpu_attestation_ok if {
        some e in input.tdx.uefi_event_logs
        e.type_name == "EV_EVENT_TAG"
        e.details.unicode_name == "AAEL"
        e.details.data.domain == "alibabacloud.com"
        e.details.data.operation == "gpu/attestation"
        e.details.data.content["gpu-collect-evidence-result-code"] == 0
        e.details.data.content["gpu-attest-result-code"] == 0
    }
    EOF
    
    
  5. Trustee を再起動してください。

    sudo systemctl restart trustee

ステップ 3:PAI-CC サービスの作成

  1. Lingjun リソースグループを作成し、ノードを購入します。リソースグループの作成と Lingjun リソースの購入の手順に従って、[中国 (北京)] リージョンにリソースグループを作成し、ml.gu8tef.8.46xlarge.cc インスタンスタイプのインスタンスを購入します。このインスタンスタイプは招待制プレビューです。アクセスをリクエストするには、Alibaba Cloud アカウントマネージャーにお問い合わせください。

  2. 中国 (北京) リージョンに Virtual Private Cloud (VPC) を作成し、beijing-i ゾーンに vSwitch を作成し、VPC 内にセキュリティグループを作成してください。この VPC は、後で作成する PAI-CC インスタンスの推論を実行する機密コンテナをホストします。VPC にインターネット NAT ゲートウェイの SNAT 機能を設定し、Elastic IP Address (EIP) を関連付けます。これにより、インスタンスはパブリックネットワークにアクセスしてモデルの暗号文をプルし、Trustee に到達できるようになります。詳細については、「インターネット NAT ゲートウェイ」をご参照ください。

  3. PAI-CC インスタンスがパブリックネットワーク経由で Trustee に到達できるように、Trustee を実行しているインスタンスのネットワークを設定してください。Trustee ECS インスタンスのセキュリティグループに、ポート 8081 (カスタム TCP) でのトラフィックを許可するインバウンドルールを追加してください。ソースには、VPC に設定した SNAT のエグレス IP アドレスを設定してください。

  4. リソースクォータを作成してください。「リソースクォータの作成」の指示に従ってください。[Source Type] で [Lingjun resource group] を選択し、作成した Lingjun resource group とそのノードまたはインスタンスタイプを選択します。[VPC] では、作成した VPC を選択します。[Associate Workspace] では、PAI ワークスペースを選択します。リソースクォータはそのワークスペースに割り当てられます。ワークスペースを作成していない場合は、「ワークスペースの作成と管理」の指示に従って作成してください。

  5. PAI コンソールにログインしてください。ページ上部でリージョンを選択してください。右側でワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックしてください。[Inference Service] タブで [Deploy Service] をクリックしてください。[Custom Model Deployment] セクションで、[Custom Deployment] をクリックしてください。

  6. 以下の主要なパラメーターを設定してください。その他のパラメーターの詳細については、「カスタムデプロイ」をご参照ください。

    パラメーター

    説明

    リソース情報

    リソースタイプ

    [Resource Quota] を選択し、作成した Lingjun リソースクォータを選択してください。

    デプロイ

    [GPU (GPU 数)] には 1 を指定します。[CPU (コア数)] には 20 を指定します。[メモリ (GB)] には 200 を指定します。ご使用のモデルとサービスのデプロイ方法に基づいて、これらの値を調整してください。

    レプリカ

    8 を指定します。この値は、[Deployment] 設定に応じて調整してください。

    環境情報

    デプロイ方法

    [Image-based Deployment] を選択してください。

    イメージ設定

    ランタイムイメージを選択してください。この例では、[Alibaba Cloud Image] > [vllm 0.25.0-gpu] を選択してください。

    ストレージマウント

    OSS を選択します。[Uri] には oss://conf-ai/qwen3.8-27b-gocryptfs/ (ステップ 1 でアップロードした暗号文のパス) を、[マウントパス] には /mnt/model/ を設定します。読み取り専用でマウントします。

    実行コマンド

    vllm serve /mnt/model/ --host 0.0.0.0 --port 8000 --served-model-name "Qwen3.8-27B"。モデルパス /mnt/model/ は、指定した OSS の [マウントパス] と一致する必要があります。

    ポート番号

    8000。

    ネットワーク情報

    VPC

    作成した VPC と vSwitch を選択してください。

    セキュリティグループ名

    作成したセキュリティグループを選択してください。

    フィーチャー

    GPUドライバーバージョン

    570.148.08-open を選択します。このフィールドを選択できない場合は、JSON 設定を直接編集してください。

    PAI-CC と標準の EAS サービスの主な違いは、機密コンピューティングです。PAI-CC サービスを作成する際には、[Configure Secure Encryption Environment] を有効にし、以下のオプションを設定してください。このオプションを有効にすると、推論サービスは CPU TEE と GPU TEE の両方で保護された機密コンピューティング環境で実行されます。推論中、モデルの重み、KV キャッシュ、およびすべての中間計算は TEE 内に留まり、ホストにプレーンテキストが公開されることはありません。デプロイ時には、リモートアテステーションが成功した後にのみモデルが復号されマウントされます。その後、TNG が推論トラフィックを暗号化します。image

    設定項目

    値

    暗号化方式

    Gocryptfs (ステップ 1 の --method と同じ)

    セキュア暗号化環境の設定

    有効

    ランタイムデータ暗号化

    有効

    TNG ゲートウェイ保護

    有効 (TNG が推論トラフィックを暗号化)

    モデル測定

    有効 (ステップ 1 でモデルを測定した場合)

    システムトラスト管理サービスアドレス

    http://<trustee-ip>:8081/api (デプロイした Trustee サービスのエンドポイント)

    復号キーの KBS URI

    kbs:///default/aliyun/model-decryption-key

    以下の例は、結果として得られる JSON 設定を示しています。

    JSON 設定例

     {
         "metadata": {
             "name": "<your-service-name>",
             "instance": 8,
             "workspace_id": "<your-workspace-id>",
             "disk": 60,
             "rpc": {
                 "keepalive": 60000
             },
             "accessibility": "public",
             "quota_id": "<your-quota-id>",
             "quota_type": "Lingjun",
             "resource_burstable": false,
             "gpu": 1,
             "cpu": 20,
             "memory": 200000
         },
         "containers": [
             {
                 "image": "eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/vllm:v0.25.0",
                 "script": "vllm serve /mnt/model/ --host 0.0.0.0 --port 8000 --served-model-name \"Qwen3.8-27B\"",
                 "port": 8000
             }
         ],
         "options": {
             "priority": 9
         },
         "storage": [
             {
                 "oss": {
                     "path": "oss://conf-ai/qwen3.8-27b-gocryptfs/",
                     "readOnly": true,
                     "role_arn": ""
                 },
                 "mount_path": "/mnt/model/",
                 "encryption": {
                     "method": "gocryptfs"
                 }
             }
         ],
         "cloud": {
             "networking": {
                 "vpc_id": "<your-vpc-id>",
                 "vswitch_id": "<your-vswitch-id>",
                 "security_group_id": "<your-security-group-id>"
             }
         },
         "confidential": {
             "disable_tng": false,
             "trustee_endpoint": "http://<trustee-ip>:8081/api",
             "decryption_key": "kbs:///default/aliyun/model-decryption-key",
             "enable_measure": true
         },
         "features": {
             "eas.aliyun.com/enable-confidential-computing": "true",
             "eas.aliyun.com/confidential-computing-version": "v2",
             "eas.aliyun.com/gpu-driver-version": "570.148.08-open"
         }
     }
    

    パラメーターを設定した後、[Deploy] をクリックしてください。[service status] が Running と表示されたら、サービスはデプロイされています。

ステップ 4:機密推論の実行

TNG はクライアントと推論サービス間のトラフィックを暗号化します。推論は Intel TDX と GPU TEE が提供する機密コンピューティング環境で実行されます。ストリーミングレスポンスを含むリクエストとレスポンスは、転送中に暗号化されます。

クライアントは TNG クライアントを通じて推論リクエストを送信します。以下のアクセス方法が利用可能です。ユースケースに合わせて選択してください。

アクセス方法

入手方法

プロキシゲートウェイ (HTTP プロキシ/SOCKS5 プロキシ/透過プロキシ)

GitHub リポジトリからバイナリまたはコンテナをダウンロードしてください。「ドキュメントと例」をご参照ください。

Python SDK

pip install tng-sdk==2.9.2、ドキュメントと使用例

Go SDK

go get github.com/inclavare-containers/tng/tng-go、ドキュメントと例

JS SDK

npm i @inclavare-containers/tng@2.9.2、ドキュメントと例

これらの例を簡略化するために、pai-cc-tools は前の表にある TNG コールをラップします。

1. サービスエンドポイントの表示

[Inference Service] タブで、サービス名をクリックして [Overview] ページを開いてください。[Basic Information] セクションで、[View Endpoint Information] をクリックしてください。

image

後続の pai-cc secure コマンドで使用するサービスエンドポイントとトークンを記録します。

2. 単一の機密推論の実行

pai-cc secure run は、必要な TNG コンポーネントを自動的にダウンロードして設定します。ゲートウェイによって、curl コマンドが送信するすべての推論リクエストが透過的に暗号化されます:

pai-cc secure run -- \
    curl -sS -X POST http://<service-url>/v1/chat/completions \
        -H "Authorization: <your-token>" -H "Content-Type: application/json" \
        -d '{"model":"Qwen3.8-27B","messages":[{"role":"user","content":"Hello"}],"max_tokens":100,"stream":false}'

-- 以降は、URL と Authorization ヘダーを含む、完全な元のコマンドです。実際の出力:

{"id":"chatcmpl-b1df6ef135765608","object":"chat.completion","created":1716199200,"model":"Qwen3.8-27B","choices":[{"index":0,"message":{"role":"assistant","content":"The user said \"Hello\" - a simple greeting. I should respond warmly and concisely, offering to help.\n```\n\n\nHello! How can I help you today?","refusal":null,"annotations":null,"audio":null,"function_call":null,"reasoning":null},"logprobs":null,"finish_reason":"stop","stop_reason":null,"token_ids":null,"routed_experts":null}],"service_tier":null,"system_fingerprint":"vllm-0.25.0-fb7f4d0a","usage":{"prompt_tokens":53,"total_tokens":90,"completion_tokens":37,"prompt_tokens_details":null},"prompt_logprobs":null,"prompt_token_ids":null,"prompt_text":null,"kv_transfer_params":null,"metrics":null}

3. SDK 互換性の検証

次のコマンドを実行して、すべての TNG クライアント SDK がこの推論サービスに対して機密呼び出しを行えることを確認してください。このコマンドは、プロキシモード、プロセスインジェクション、Python SDK、Go SDK、および JS SDK をカバーします。

pai-cc secure test \
  --endpoint http://<service-url>/v1/chat/completions \
  --token <your-token> --builtin-as -m all
── tng-launch ──────────────────────────────────
PASS	tng-launch
── tng-exec ──────────────────────────────────
PASS	tng-exec
── python-sdk ──────────────────────────────────
PASS	python-sdk
── go-sdk ──────────────────────────────────
PASS	go-sdk
── js-sdk ──────────────────────────────────
PASS	js-sdk
summary: 5 passed, 0 failed, 0 skipped