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

Elastic Compute Service:Build a confidential computing environment by using Enclave

最終更新日:Dec 13, 2025

このトピックでは、Alibaba Cloud Enclave 機能を使用して信頼できる隔離スペースを作成し、アプリケーションとデータを保護する方法について説明します。

背景情報

データは、保存データ転送中データ使用中データに分類されます。

  • 保存データ転送中データのセキュリティは、暗号化によって確保できます。

  • 使用中データのセキュリティを確保することは困難です。通常、このデータを保護するために機密コンピューティングが使用されます。

Enclave 機能は、Elastic Compute Service (ECS) インスタンス内に信頼できる隔離スペースとして Enclave を提供し、正規のソフトウェアのセキュアな操作を Enclave 内にカプセル化することで、コードとデータの機密性と完全性をマルウェア攻撃から保護します。金融、インターネット、ヘルスケアなどの業界のように、機密性の高いデータを強力に保護する必要があるビジネスに適しています。

Enclave の仕組み

ECS インスタンス (プライマリ VM) 内のコンピューティングリソース (vCPU とメモリを含む) を分割して、信頼できる実行環境として機能する Enclave VM (EVM) を作成します。以下の要因が EVM のセキュリティに貢献しています。

  • 基盤となる仮想化技術がセキュリティのための隔離を提供します。EVM はプライマリ VM や他の ECS インスタンスから隔離されます。

  • EVM は、独立したカスタマイズ済みの信頼できるオペレーティングシステム (OS) を実行します。永続ストレージ、対話型接続、外部ネットワークチャネルを持たず、プライマリ VM とは vsock に基づくローカルセキュアチャネルを介してのみ通信することで、攻撃対象領域を最小限に抑えます。機密データを含むアプリケーションを EVM で実行し、プライマリ VM 内で実行されるアプリケーションと安全にやり取りできます。

次の図は、Enclave 機能の仕組みを示しています。

image

Enclave 機能は多層的なセキュリティを提供します。基盤レイヤーでは、第 3 世代 SHENLONG アーキテクチャが Trusted Platform Module (TPM) または Trust Cryptography Module (TCM) チップとともに、EVM に vTPM または vTCM デバイスを提供し、セキュリティと信頼機能を強化します。上位レイヤーでは、互換性の高い SDK が提供され、Enclave 環境を迅速に構築して使用できます。リモートアテステーション機能については、SDK を使用するなどして、機密実行環境で実行されているコードを検証できます。機密アプリケーションは、実行時にプラットフォームデータ、アプリケーション情報、署名などの証明マテリアルを生成し、Key Management Service (KMS) と連携する可能性のあるリモートアテステーションサーバーを使用してそれらを検証できます。プライマリ VM が EVM にリソースを割り当て、EVM が実行を開始すると、基盤レイヤーがリソースを隔離し、プライマリ VM が EVM の vCPU やメモリリソースにアクセスできないようにします。これにより、EVM の操作とプライバシーが保護されます。

次の図は、Enclave 機能のアーキテクチャを示しています。

image

制限事項

  • hfg9i、hfc9i、hfr9i、g8i、c8i、r8i インスタンスファミリーの 4 つ以上の vCPU を持つインスタンスタイプのみが Enclave 機能をサポートします。

  • 各 ECS インスタンスに対して作成できる Enclave は 1 つだけです。

  • Enclave を使用する前に、プライマリ VM 用に少なくとも 1 つの物理プロセッサコアといくらかのメモリを予約する必要があります。残りは Enclave に柔軟に割り当てることができます。ハイパースレッディングが有効な場合、同じ物理プロセッサコアから 2 つのハイパースレッドが予約されます。したがって、Enclave 機能が有効になっている ECS インスタンスには、少なくとも 4 つの vCPU が必要です。

その他の制限事項については、「制限事項」をご参照ください。

Enclave が有効なインスタンスの作成

ECS コンソールで Enclave 機能が有効な ECS インスタンスを作成するプロシージャは、通常の ECS インスタンスを作成するプロシージャと似ています。ただし、特定のパラメーターに注意する必要があります。このセクションでは、インスタンス購入ページの Enclave が有効なインスタンスに関連するパラメーターに焦点を当てます。その他のパラメーターについては、「[カスタム起動] タブでのインスタンスの作成」をご参照ください。

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

  2. 上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。地域

  3. [インスタンスの作成] をクリックし、次の表のパラメーターを設定します。

    パラメーター

    説明

    インスタンスタイプ

    hfg9i、hfc9i、hfr9i、g8i、c8i、または r8i インスタンスファミリーの 4 つ以上の vCPU を持つインスタンスタイプを選択します。

    イメージ

    [Enclave] を選択し、次に [Alibaba Cloud Linux 2.1903 LTS 64 ビット (UEFI)] イメージを選択します。

    説明

    [Enclave] を選択すると、信頼できるオペレーティングシステムが自動的にインストールされます。

    image

    インスタンス RAM ロール

    Alibaba Cloud が提供するサービスリンクロールである AliyunECSInstanceForYundunSysTrustRole を選択します。

Enclave CLI のインストール

  1. Enclave が有効なインスタンスへの Docker のインストール

  2. Workbench を使用した SSH 経由での Enclave 対応インスタンスへの接続

  3. Enclave CLI の RPM Package Manager (RPM) パッケージをインストールします。

    1. Enclave CLI の RPM パッケージをダウンロードします。

      wget https://enclave-cn-beijing.oss-cn-beijing.aliyuncs.com/download/linux/enclave-cli/x86_64/2.1903/enclave-cli-1.0.8-1.x86_64.rpm
    2. Enclave CLI をインストールします。

      sudo rpm -ivh enclave-cli-1.0.8-1.x86_64.rpm
    3. Enclave CLI のバージョンを確認します。

      enclave-cli --version

      バージョンが返された場合、Enclave CLI はインストールされています。

      image.png

  4. 現在のユーザーを de および docker グループに追加します。

    1. 次のコマンドを実行して、現在のユーザーを de グループに追加します。

      sudo usermod -aG de <username>
      説明

      <username> を実際のユーザー名に置き換えてください。例:test

    2. 現在のユーザーを docker グループに追加します。

      sudo usermod -aG docker <username>
      説明

      <username> を実際のユーザー名に置き換えてください。例:test

    3. インスタンスに再接続して設定を有効にします。

  5. Enclave に vCPU とメモリを事前に割り当てます。

    1. allocator.yaml 設定ファイルを開きます。

      sudo vim /etc/ali-enclaves/allocator.yaml
    2. i キーを押して挿入モードに入ります。

    3. 次のパラメーターを変更します。

      • memory_mib:Enclave に割り当てるメモリ量。単位:MiB。

      • cpu_count:Enclave に割り当てる vCPU の数。

      次のサンプルコードスニペットは、Enclave に 1,024 MiB のメモリと 2 つの vCPU が割り当てられていることを示します。

      # Enclave configuration file.
      #
      # How much memory to allocate for enclaves (in MiB).
      memory_mib: 1024
      #
      # How many CPUs to reserve for enclaves.
      cpu_count: 2
    4. Esc キーを押し、:wq と入力してから Enter キーを押してファイルを保存し、閉じます。

  6. Enclave リソース割り当てサービスを開始し、インスタンス起動時に実行されるように設定します。

    sudo systemctl start ali-enclaves-allocator.service && \
    sudo systemctl enable ali-enclaves-allocator.service

    リソース割り当てサービスは、指定された vCPU の数に基づいて Enclave の vCPU プールを生成します。vCPU プールは Enclave のみが利用でき、Enclave が属する ECS インスタンスは利用できません。

    説明

    Enclave に割り当てられたリソースを変更するには、allocator.yaml 設定ファイルを変更し、次のコマンドを実行して Enclave リソース割り当てサービスを再起動します。

    sudo systemctl restart ali-enclaves-allocator.service
  7. Enclave リソース割り当てサービスの状態を確認します。

    systemctl status ali-enclaves-allocator.service

    次の出力は、サービスが開始されたことを示しています。

    image.png

  8. Docker を開始し、インスタンス起動時に実行されるように設定します。

    sudo systemctl start docker && sudo systemctl enable docker
    説明

    Enclave 機能が不要になった場合は、sudo yum remove enclave-cli コマンドを実行して Enclave CLI をアンインストールします。

  9. インスタンスの再起動をして変更を適用します。

関連ドキュメント

Enclave CLI の使用方法については、「Enclave CLI のクイックスタート」をご参照ください。