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

Elastic Compute Service:CLI サブコマンド

最終更新日:Apr 28, 2026

Enclave CLI を使用して、ECS インスタンス上でエンクレーブのビルド、実行、検査、デバッグ、および終了を行います。

Enclave CLI をインストールした後、次のコマンドを実行してサブコマンドと使用法を確認できます。

enclave-cli --help # すべてのサブコマンドを一覧表示
enclave-cli <sub-command> --help # 特定のサブコマンドの使用法を表示

build-enclave

Docker イメージからエンクレーブイメージファイル (.eif) をビルドします。ローカルの Dockerfile ディレクトリまたは Docker リポジトリのイメージ名を指定します。

出力には、エンクレーブイメージのベースライン測定値が含まれます。リモートアテステーション中に、これらの測定値が実行時の値と比較され、エンクレーブの整合性を検証します。

説明

Alibaba Cloud の仮想化エンクレーブでは、測定値 (プラットフォームコンフィグレーションレジスタ (PCR)) は実行時に vTPM によって生成され、TPM 2.0 に準拠します。

使用法

enclave-cli build-enclave \
  --docker-uri <repository>:<tag> \
  --output-file <enclave-image-filename> \
  [ --docker-dir <path-to-dockerfile-directory> ] \
  [ --private-key <private-key> --signing-certificate <certificate> ]

パラメーター

パラメーター

必須

説明

--docker-uri

はい

String

<repository>:<tag> 形式の Docker イメージ URI。

--docker-dir も指定した場合、--docker-uri の URI を使用してローカル Docker イメージがビルドされ、エンクレーブイメージの生成に使用されます。

--docker-dir

いいえ

String

Dockerfile を含むローカルディレクトリへのパス。エンクレーブイメージ生成用の Docker イメージをビルドするために使用します。

--output-file

はい

String

エンクレーブイメージの出力ファイル名。

--private-key

いいえ

String

エンクレーブイメージの署名に使用する PEM 形式の秘密鍵ファイル。

--signing-certificate が必要です。CLI は署名付きエンクレーブイメージを生成し、追加の PCR12 値 (署名証明書のベースライン測定値) を出力します。この値は、リモートアテステーションでイメージビルダーを検証するために使用されます。

--signing-certificate

いいえ

String

エンクレーブイメージの署名に使用する PEM 形式の証明書ファイル。--private-key と併用する必要があります。

Docker イメージ sample:latest からエンクレーブイメージ sample.eif をビルドします:

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

出力

Start building the Enclave Image...
Enclave Image successfully created.
{
  "Measurements": {
    "HashAlgorithm": "Sha256 { ... }",
    "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
    "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
    "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
  }
}

出力フィールド

フィールド

説明

Measurements

JSON 形式のエンクレーブイメージのベースライン測定値。

HashAlgorithm

測定値の生成に使用するハッシュアルゴリズム。

PCR8

エンクレーブイメージの測定値。

PCR9

カーネルとブートローダーの測定値。

PCR11

The application measurement.

run-enclave

指定した vCPU とメモリで、イメージファイルからエンクレーブを起動します。

説明

1 つの ECS インスタンスで同時に実行できるエンクレーブは 1 つだけです。

構文

enclave-cli run-enclave \
  --cpu-count <vcpu-count> \
  --cpu-ids <list-of-vcpu-ids> \
  --memory <amount-of-memory-in-MiB> \
  --eif-path <enclave-image-file-path> \
  [ --enclave-cid <enclave-cid> ] \
  [ --debug-mode ] \
  [ --config <json-config-file> ]

または、JSON 設定ファイルで全パラメーターを指定します:

{
    "cpu_count": <vcpu-count>,
    "cpu_ids": <list-of-vcpu-ids>,
    "memory_mib": <amount-of-memory-in-MiB>,
    "eif_path": "<enclave-image-file-path>",
    "enclave_cid": <enclave-cid>,
    "debug_mode": true|false
}

パラメーター

パラメーター

必須

説明

--config

いいえ

String

エンクレーブ起動パラメーターを含む JSON 設定ファイルへのパス。

指定した場合、ほかのパラメーターは使用しないでください。すべてのパラメーターを JSON 形式でこのファイルに定義する必要があります。

--cpu-count

いいえ

int

エンクレーブに割り当てる vCPU 数。インスタンスの合計 vCPU 数未満である必要があります。

このパラメーターが必須かどうかは、--cpu-ids を指定するかどうかによって異なります:

  • --cpu-ids を指定しない場合、--cpu-count は必須です。

  • --cpu-ids を指定する場合、--cpu-count は指定しないでください。

説明

ハイパースレッディングが無効の場合、エンクレーブは 1 vCPU を使用できます。ハイパースレッディングが有効 (デフォルト) の場合、エンクレーブには偶数の vCPU 数 (最小 2) が必要なため、インスタンスには少なくとも 4 vCPU が必要です。lscpu を実行し、Thread(s) per core が 2 であることを確認して、ハイパースレッディングを検証してください。

--cpu-ids

いいえ

int

エンクレーブに割り当てる vCPU ID のリスト。数はインスタンスの合計 vCPU 数未満である必要があります。

ハイパースレッディングが有効な場合、vCPU 数は偶数である必要があります。詳細は --cpu-count を参照してください。

このパラメーターが必須かどうかは、--cpu-count を指定するかどうかによって異なります:

  • --cpu-count を指定しない場合、--cpu-ids は必須です。

  • --cpu-count を指定する場合、--cpu-ids は指定しないでください。

--memory

はい

int

エンクレーブのメモリサイズ (MiB)。有効な値:64 MiB からインスタンスの合計メモリ未満まで。エンクレーブランタイムの最小要件も満たす必要があります。

--eif-path

はい

String

.eif エンクレーブイメージファイルへのパス。

--enclave-cid

いいえ

int

エンクレーブの vsock CID。4 以上である必要があります。

省略した場合、システムが使用可能な CID を割り当てます。

--debug-mode

いいえ

String

デバッグモードを有効にします。省略すると通常モードで実行します。

デバッグモードでは、enclave-cli console を使用して実行時出力を確認できます。デバッグモードではすべてのアテステーション測定値がゼロになるため、リモートアテステーションに合格できません。

例:インラインパラメーターでの起動

sample.eif から、vCPU 2、メモリ 1024 MiB、CID 10 でエンクレーブを起動します:

enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path sample.eif --enclave-cid 10

出力:

Start allocating memory...
Started enclave with enclave-cid: 10, memory: 1024 MiB, cpu-ids: [2, 3]
{
    "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
    "ProcessID": 1234,
    "EnclaveCID": 10,
    "NumberOfCPUs": 2,
    "CPUIDs": [
        2,
        3
    ],
    "MemoryMiB": 1024
}

出力フィールド

フィールド

説明

EnclaveID

エンクレーブ ID。

ProcessID

エンクレーブ管理プロセスの PID。

EnclaveCID

エンクレーブ CID。

NumberOfCPUs

vCPU 数。

CPUIDs

vCPU ID。

MemoryMiB

割り当てられたメモリ (MiB)。

describe-enclaves

現在のインスタンス上のエンクレーブに関する情報が返されます。

構文

enclave-cli describe-enclaves

enclave-cli describe-enclaves

出力:

[
  {
    "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
    "ProcessID": 1234,
    "EnclaveCID": 10,
    "NumberOfCPUs": 2,
    "CPUIDs": [
      2,
      3
    ],
    "MemoryMiB": 1024,
    "State": "RUNNING",
    "Flags": "DEBUG_MODE"
  }
]

出力フィールド

フィールド

説明

EnclaveID

エンクレーブ ID。

ProcessID

エンクレーブ管理プロセスの PID。

EnclaveCID

エンクレーブ CID。

NumberOfCPUs

vCPU 数。

CPUIDs

vCPU ID。

MemoryMiB

割り当てられたメモリ (MiB)。

State

エンクレーブの状態。有効な値:RUNNINGTERMINATING

Flags

デバッグモードのフラグ。有効な値:DEBUG_MODENONE

console

トラブルシューティングのために、実行中のエンクレーブからカーネルの起動ログやアプリケーション出力などの実行時出力を読み取ります。

説明

--debug-mode でエンクレーブを起動している必要があります。

構文

enclave-cli console --enclave-id <enclave-id>

パラメーター

パラメーター

必須

説明

--enclave-id

はい

String

エンクレーブ ID。run-enclave または describe-enclaves の出力から取得します。

ID が 12345678-1234-5678-1234-12345678****-enc1 のデバッグモードのエンクレーブから出力を読み取ります:

enclave-cli console --enclave-id 12345678-1234-5678-1234-12345678****-enc1

出力:

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

terminate-enclave

実行中のエンクレーブを終了し、リソースを解放します。

構文

enclave-cli terminate-enclave --enclave-id <enclave-id>

パラメーター

パラメーター

必須

説明

--enclave-id

はい

String

エンクレーブ ID。run-enclave または describe-enclaves の出力から取得します。

エンクレーブ 12345678-1234-5678-1234-123456781234-enc1 を終了します:

enclave-cli terminate-enclave --enclave-id 12345678-1234-5678-1234-123456781234-enc1

出力:

Successfully terminated enclave 12345678-1234-5678-1234-123456781234-enc1.
{
  "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
  "Terminated": true
}

出力フィールド

フィールド

説明

EnclaveID

終了したエンクレーブ ID。

Terminated

エンクレーブが終了したかどうか。有効な値:truefalse

関連ドキュメント

Enclave CLI のサブコマンドは エラーコード を返す場合があります。