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

Elastic Compute Service:機密コンピューティング環境を Enclave を使用して構築する

最終更新日:Jul 03, 2025

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

背景情報

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

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

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

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

Enclave のしくみ

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

  • 基盤となる仮想化テクノロジーは、セキュリティのための隔離を提供します。EVM は、プライマリ VM および他の ECS インスタンスから隔離されています。

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

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

image

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

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

image

制限事項

  • g8i、c8i、および r8i インスタンスファミリーの 4 つ以上の vCPU を搭載したインスタンスタイプのみが Enclave 機能をサポートしています。

  • 各 ECS インスタンスに対して作成できるエンクレーブは 1 つだけです。

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

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

Enclave 対応インスタンスを作成する

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

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

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

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

    パラメーター

    説明

    インスタンスタイプ

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

    イメージ

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

    説明

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

    image

    インスタンス RAM ロール

    [AliyunECSInstanceForYundunSysTrustRole] を選択します。これは、Alibaba Cloud によって提供されるサービスロールです。

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. 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 が割り当てられていることを示しています。

      # Enclave 構成ファイル。
      #
      # エンクレーブに割り当てるメモリの量 (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 数に基づいて、エンクレーブ用の vCPU プールを生成します。 vCPU プールは、エンクレーブにのみ使用でき、エンクレーブが属する ECS インスタンスには使用できません。

    説明

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

    sudo systemctl restart ali-enclaves-allocator.service
  7. 次のコマンドを実行して、エンクレーブリソース割り当てサービスのステータスを確認します。

    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 をアンインストールします。

関連情報

Enclave CLI の使用方法については、「Enclave CLI をすばやく使用する」をご参照ください。