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

Elastic Compute Service:Enclave CLI のクイックスタート

最終更新日:Apr 28, 2026

Enclave CLI を使用して、ECS インスタンスでエンクレーブを作成、起動、停止します。

操作手順

  1. エンクレーブが有効な ECS インスタンスを作成し、エンクレーブ用のリソースを事前に割り当てます。

    詳細については、「Alibaba Cloud Enclave を使用したコンフィデンシャルコンピューティング」をご参照ください。

  2. エンクレーブイメージファイルを作成します。

    Enclave CLI には、/usr/share/ali-enclaves/examples/hello にサンプルの Dockerfile が含まれています。これを使用してエンクレーブイメージファイルを作成します。

    1. hello という名前で latest というタグが付いた Docker イメージを作成します。

      sudo docker build /usr/share/ali-enclaves/examples/hello -t hello
    2. Docker イメージが作成されたことを確認します。

      sudo docker images hello:latest

      出力に latest タグの付いた hello イメージが表示された場合、イメージは作成されています。

      image.png

    3. hello.eif エンクレーブイメージファイルを作成します。

      sudo enclave-cli build-enclave --docker-uri hello:latest --output-file hello.eif

      エラーが返されなければ、hello.eif が作成されます。出力内のプラットフォーム設定レジスタ (PCR) には、リモートアテステーション用のエンクレーブ固有のハッシュが含まれています。出力例:

      Start building the Enclave Image...
      Enclave Image successfully created.
      {
        "Measurements": {
          "HashAlgorithm": "Sha256 { ... }",
          "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
          "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
          "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
        }
      }
  3. エンクレーブを起動します。

    このコマンドは、hello.eif から 2 vCPU と 1024 MiB のメモリを使用して、デバッグモードでエンクレーブを起動します。すべてのパラメーターについては、「Enclave CLI のサブコマンド」の「run-enclave」セクションをご参照ください。

    sudo enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path hello.eif --debug-mode

    次の出力は、エンクレーブが実行中であることを示します。エンクレーブ ID 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1 は、後続の Enclave CLI 操作で必要になります。

    説明

    コンテキスト識別子 (CID) 4 は、エンクレーブの vsock アドレスとして自動的に割り当てられます。非デバッグモードでは、vsock がエンクレーブとホストインスタンス間で通信する唯一の方法です。

    Start allocating memory...
    Started enclave with enclave-cid: 4, memory: 1024 MiB, cpu-ids: [2, 3]
    {
        "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1",
        "ProcessID": 1234,
        "EnclaveCID": 4,
        "NumberOfCPUs": 2,
        "CPUIDs": [
            2,
            3
        ],
        "MemoryMiB": 1024
    }
  4. エンクレーブの状態を確認します。

    enclave-cli describe-enclaves

    出力には、エンクレーブ ID、vCPU 数、メモリサイズ、および状態が表示されます。状態が RUNNING であれば、エンクレーブは動作しています。

    [
      {
        "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1",
        "ProcessID": 1234,
        "EnclaveCID": 4,
        "NumberOfCPUs": 2,
        "CPUIDs": [
          2,
          3
        ],
        "MemoryMiB": 1024,
        "State": "RUNNING",
        "Flags": "DEBUG_MODE"
      }
    ]

    エンクレーブのデバッグ出力を表示します。

    enclave-cli console --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1

    期待される出力:

    [   1] Hello from the enclave side!
    [   2] Hello from the enclave side!
    [   3] Hello from the enclave side!
    ...
    説明

    [ N] Hello from the enclave side! メッセージは 5 秒ごとに出力されます。 N はメッセージ数です。

  5. エンクレーブを終了します。

    sudo enclave-cli terminate-enclave --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1

    次の出力は、エンクレーブが終了したことを示します。

    Successfully terminated enclave 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1.
    {
      "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1",
      "Terminated": true
    }