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

Elastic Compute Service:Enclave を使用したコンフィデンシャルコンピューティング環境の構築

最終更新日:Aug 21, 2026

Enclave を使用して ECS インスタンス内に信頼性の高い分離空間を作成し、使用中のアプリケーションとデータを保護します。

背景情報

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

  • 暗号化によって、保管中のデータ転送中のデータが保護されます。

  • 使用中のデータを保護するには、コンフィデンシャルコンピューティングが必要です。

エンクレーブは、ECS インスタンス内に信頼性の高い分離空間を作成し、そのエンクレーブ内で正当なソフトウェアを実行することで、マルウェアからコードとデータの機密性および完全性を保護します。 これは、金融、インターネット、ヘルスケアなど、強力なデータ保護を必要とする業界に適しています。

Enclave の仕組み

ECS インスタンス (プライマリ VM) 内のコンピューティングリソース (vCPU とメモリ) を分割して、高信頼実行環境として Enclave VM (EVM) を作成します。 EVM は、以下によって保護されます:

  • 仮想化ベースの分離: EVM は、プライマリ VM や他の ECS インスタンスから分離されます。

  • 最小限の攻撃対象領域: EVM は、永続ストレージ、対話型接続、または外部ネットワーキングを持たず、独立した信頼済み OS を実行します。 vsock ベースのローカルセキュアチャネルを介してのみプライマリ VM と通信します。

以下の図は、Enclave の仕組みを示しています。

image

Enclave は多層的なセキュリティを提供します。 第 3 世代の SHENLONG アーキテクチャは、TPM または TCM チップを搭載し、EVM に vTPM または vTCM デバイスを装備して信頼性を強化します。 SDK を使用して、Enclave 環境を構築および管理できます。 アテステーションでは、機密アプリケーションが実行時にプラットフォームデータ、アプリケーション情報、署名などのアテステーション資料を生成し、Key Management Service (KMS) と連携可能なリモートアテステーションサーバーを介してそれらを検証します。 プライマリ VM が EVM にリソースを割り当てると、基盤となるレイヤーがそれらを分離するため、プライマリ VM は EVM の vCPU またはメモリリソースにアクセスできません。

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

image

制限事項

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

  • 各 ECS インスタンスは 1 つのエンクレーブのみをサポートします。

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

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

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

Enclave が有効なインスタンスの作成は、通常のインスタンスの作成と似ています。 このセクションでは、Enclave 固有のパラメーターのみを説明します。 その他のパラメーターについては、「カスタム起動によるインスタンスの作成」をご参照ください。

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

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

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

    パラメーター

    説明

    インスタンスタイプ

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

    イメージ

    [Enclave] を選択し、イメージとして [Alibaba Cloud Linux 2.1903 LTS 64-bit (UEFI)] を選択します。

    説明

    [Enclave] を選択すると、信頼済み OS が自動的にインストールされます。

    インスタンス RAM ロール

    [AliyunECSInstanceForYundunSysTrustRole] (Alibaba Cloud が提供するサービスリンクロール) を選択します。

Enclave CLI のインストール

  1. Enclave が有効なインスタンスに Docker をインストールします

  2. Workbench を使用して SSH 経由で Enclave が有効なインスタンスに接続します

  3. Enclave CLI 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 --version

      バージョン番号が表示された場合、インストールは成功です。

      [test@iz2zebt88ixxx          ~]$ enclave-cli --version
      Enclave CLI 1.0.8
  4. 現在のユーザーを de グループと docker グループに追加します。

    1. 現在のユーザーを de グループに追加します:

      sudo usermod -aG de <username>
      説明

      <username> を実際のユーザー名 (例: test) に置き換えます。

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

      sudo usermod -aG docker <username>
      説明

      <username> を実際のユーザー名 (例: test) に置き換えます。

    3. インスタンスに再接続して変更を適用します。

  5. エンクレーブ用の vCPU とメモリを事前に割り当てます。

    1. allocator.yaml を開きます。

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

    3. 次のパラメーターを設定します:

      • memory_mib: エンクレーブに割り当てるメモリ。 単位: MiB。

      • cpu_count: エンクレーブに割り当てる vCPU。

      次の例では、1,024 MiB のメモリと 2 つの vCPU をエンクレーブに割り当てます。

      # エンクレーブ設定ファイル。
      #
      # エンクレーブに割り当てるメモリ容量 (MiB 単位)。
      memory_mib: 1024
      #
      # エンクレーブ用に予約する CPU 数。
      cpu_count: 2
    4. Esc キーを押し、:wq と入力し、Enter キーを押して、ファイルを保存して閉じます。

  6. リソース割り当てサービスを起動し、自動起動を有効にします。

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

    このサービスは、エンクレーブ専用の vCPU プールを作成します。 このプールはエンクレーブ専用であり、ホストインスタンスでは使用できません。

    説明

    割り当てられたリソースを変更するには、allocator.yaml を変更してサービスを再起動します:

    sudo systemctl restart ali-enclaves-allocator.service
  7. サービスの状態を確認します。

    systemctl status ali-enclaves-allocator.service

    次の出力は、サービスが実行中であることを示しています。

    [test@iZ2zebt88    ~]$ systemctl status ali-enclaves-allocator.service
    ● ali-enclaves-allocator.service - Nitro Enclaves Resource Allocator
       Loaded: loaded (/usr/lib/systemd/system/ali-enclaves-allocator.service; enabled; vendor preset: disabled)
       Active: active (exited) since Tue 2023-06-20 10:39:57 CST; 46min ago
     Main PID: 1960 (code=exited, status=0/SUCCESS)
  8. Docker を起動し、自動起動を有効にします。

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

    Enclave CLI をアンインストールするには、sudo yum remove enclave-cli を実行します。

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

関連ドキュメント

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