All Products
Search
Document Center

Elastic Compute Service:Subperintah CLI Enclave

Last Updated:Apr 28, 2026

Buat, jalankan, periksa, debug, dan hentikan enklaf pada Instance ECS menggunakan Enclave CLI.

Setelah menginstal Enclave CLI, jalankan perintah berikut untuk melihat daftar subperintah beserta penggunaannya:

enclave-cli --help                      # Menampilkan semua subperintah
enclave-cli <sub-command> --help        # Menampilkan penggunaan untuk subperintah tertentu

build-enclave

Membuat file image enklaf (.eif) dari image Docker. Anda dapat menentukan direktori lokal yang berisi Dockerfile atau nama image dari repositori Docker.

Output mencakup ukuran garis dasar (baseline measurements) dari image enklaf. Selama remote attestation, ukuran ini dibandingkan dengan nilai waktu proses (runtime) untuk memverifikasi integritas enklaf.

Catatan

Dalam enklaf virtualisasi Alibaba Cloud, ukuran (Platform Configuration Registers atau PCRs) dihasilkan oleh vTPM saat runtime dan sesuai dengan standar TPM 2.0.

Penggunaan

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> ]

Parameter

Parameter

Wajib

Tipe

Deskripsi

--docker-uri

Ya

String

URI image Docker dalam format <repository>:<tag>.

Jika --docker-dir juga ditentukan, image Docker lokal akan dibuat menggunakan URI dari --docker-uri dan digunakan untuk menghasilkan image enklaf.

--docker-dir

Tidak

String

Jalur ke direktori lokal yang berisi Dockerfile. Digunakan untuk membuat image Docker guna menghasilkan image enklaf.

--output-file

Ya

String

Nama file output untuk image enklaf.

--private-key

Tidak

String

File kunci privat dalam format PEM untuk menandatangani image enklaf.

Memerlukan --signing-certificate. CLI menghasilkan image enklaf yang telah ditandatangani dan mengeluarkan nilai tambahan PCR12 — yaitu ukuran garis dasar dari sertifikat penandatangan, yang digunakan dalam remote attestation untuk memverifikasi pembuat image.

--signing-certificate

Tidak

String

File sertifikat dalam format PEM untuk menandatangani image enklaf. Harus digunakan bersama --private-key.

Contoh

Buat image enklaf sample.eif dari image Docker sample:latest:

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

Output

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

Bidang output

Parameter

Deskripsi

Measurements

Ukuran garis dasar dari image enklaf dalam format JSON.

HashAlgorithm

Algoritma hash yang digunakan untuk menghasilkan ukuran.

PCR8

Ukuran citra enklaf.

PCR9

Pengukuran kernel dan bootloader.

PCR11

Ukuran aplikasi.

run-enclave

Menjalankan enklaf dari file image dengan jumlah vCPU dan memori yang ditentukan.

Catatan

Hanya satu enklaf yang dapat berjalan pada satu Instance ECS dalam satu waktu.

Sintaks

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> ]

Atau, tentukan semua parameter dalam file konfigurasi 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
}

Parameter

Parameter

Wajib

Tipe

Deskripsi

--config

Tidak

String

Jalur ke file konfigurasi JSON yang berisi parameter startup enklaf.

Jika ditentukan, jangan gunakan parameter lain. Semua parameter harus didefinisikan dalam file ini dalam format JSON.

--cpu-count

Tidak

int

Jumlah vCPU yang dialokasikan untuk enklaf. Harus kurang dari total vCPU pada instans.

Apakah parameter ini wajib tergantung pada apakah Anda menentukan --cpu-ids:

  • Jika Anda tidak menentukan --cpu-ids, maka --cpu-count wajib.

  • Jika Anda menentukan --cpu-ids, jangan tentukan --cpu-count.

Catatan

Jika Hyper-threading dinonaktifkan, enklaf dapat menggunakan 1 vCPU. Jika Hyper-threading diaktifkan (default), enklaf memerlukan jumlah vCPU genap (minimal 2), sehingga instans harus memiliki setidaknya 4 vCPU. Jalankan lscpu dan periksa bahwa Thread(s) per core bernilai 2 untuk memverifikasi Hyper-threading.

--cpu-ids

Tidak

int

Daftar ID vCPU yang dialokasikan untuk enklaf. Jumlahnya harus kurang dari total vCPU pada instans.

Jika Hyper-threading diaktifkan, jumlah vCPU harus genap. Lihat --cpu-count untuk detail selengkapnya.

Apakah parameter ini wajib tergantung pada apakah Anda menentukan --cpu-count:

  • Jika Anda tidak menentukan --cpu-count, maka --cpu-ids wajib.

  • Jika Anda menentukan --cpu-count, jangan tentukan --cpu-ids.

--memory

Ya

int

Ukuran memori untuk enklaf dalam satuan MiB. Nilai valid: 64 MiB hingga kurang dari total memori instans. Harus juga memenuhi persyaratan minimum waktu proses enklaf.

--eif-path

Ya

String

Jalur ke file image enklaf .eif.

--enclave-cid

Tidak

int

CID vsock untuk enklaf. Harus minimal 4.

Jika diabaikan, sistem akan menetapkan CID yang tersedia.

--debug-mode

Tidak

String

Mengaktifkan mode debug. Abaikan untuk menjalankan dalam mode normal.

Dalam mode debug, gunakan enclave-cli console untuk melihat output waktu proses. Semua ukuran attestation bernilai nol dalam mode debug dan tidak dapat lolos remote attestation.

Contoh: Jalankan dengan parameter inline

Jalankan enklaf dari sample.eif dengan 2 vCPU, memori 1.024 MiB, dan CID 10:

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

Output:

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
}

Bidang output

Bidang

Deskripsi

EnclaveID

ID enklaf.

ProcessID

PID proses management enklaf.

EnclaveCID

CID enklaf.

NumberOfCPUs

Jumlah vCPU.

CPUIDs

ID vCPU.

MemoryMiB

Memori yang dialokasikan dalam satuan MiB.

describe-enclaves

Menampilkan informasi tentang enklaf pada instans saat ini.

Sintaks

enclave-cli describe-enclaves

Contoh

enclave-cli describe-enclaves

Output:

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

Bidang output

Bidang

Deskripsi

EnclaveID

ID enklaf.

ProcessID

PID proses management enklaf.

EnclaveCID

CID enklaf.

NumberOfCPUs

Jumlah vCPU.

CPUIDs

ID vCPU.

MemoryMiB

Memori yang dialokasikan dalam satuan MiB.

State

Status enklaf. Nilai valid: RUNNING, TERMINATING.

Flags

Flag mode debug. Nilai valid: DEBUG_MODE, NONE.

console

Membaca output waktu proses dari enklaf yang sedang berjalan untuk troubleshooting, termasuk log startup kernel dan output aplikasi.

Catatan

Memerlukan enklaf yang dijalankan dengan --debug-mode.

Sintaks

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

Parameter

Parameter

Wajib

Tipe

Deskripsi

--enclave-id

Ya

String

ID enklaf. Diperoleh dari output run-enclave atau describe-enclaves.

Contoh

Baca output dari enklaf dalam mode debug dengan ID 12345678-1234-5678-1234-12345678****-enc1:

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

Output:

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

terminate-enclave

Menghentikan enklaf yang sedang berjalan dan melepaskan sumber dayanya.

Sintaks

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

Parameter

Parameter

Wajib

Tipe

Deskripsi

--enclave-id

Ya

String

ID enklaf. Diperoleh dari output run-enclave atau describe-enclaves.

Contoh

Hentikan enklaf 12345678-1234-5678-1234-123456781234-enc1:

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

Output:

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

Bidang output

Bidang

Deskripsi

EnclaveID

ID enklaf yang dihentikan.

Terminated

Apakah enklaf berhasil dihentikan. Nilai valid: true, false.

Referensi

Subperintah CLI Enclave dapat mengembalikan kode kesalahan.