All Products
Search
Document Center

Elastic Compute Service:Subperintah CLI Enclave

Last Updated:Jun 26, 2025

Tema ini menjelaskan subperintah yang tersedia di CLI Enclave untuk membantu Anda memahami dan menggunakannya.

Setelah menginstal CLI Enclave, jalankan perintah berikut untuk melihat semua subperintah CLI Enclave beserta catatan penggunaan masing-masing:

enclave-cli --help # Menampilkan semua subperintah CLI Enclave.
enclave-cli <sub-command> --help # Menampilkan catatan penggunaan untuk perintah yang ditentukan.

build-enclave

Mengonversi gambar Docker menjadi file gambar enclave dalam format .eif. Untuk menentukan gambar Docker, gunakan direktori lokal yang berisi Dockerfile atau tentukan gambar Docker dari repositori Docker.

Subperintah ini mengembalikan serangkaian pengukuran dari file gambar enclave. Sistem akan membandingkan pengukuran ini dengan pengukuran yang dihasilkan saat enclave berjalan. Jika kedua set pengukuran cocok, enclave diverifikasi.

Catatan

Dalam CLI Enclave Alibaba Cloud, pengukuran ini disediakan dalam bentuk register konfigurasi platform (PCR). PCR ini dihasilkan oleh modul platform tepercaya virtual (vTPM) dan sesuai dengan standar TPM 2.0.

Sintaksis

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

Pengenal sumber daya seragam (URI) dari gambar Docker di repositori Docker. URI dalam format <repository>:<tag>.

Jika Anda menentukan parameter --docker-dir, gambar Docker lokal dibuat menggunakan URI yang ditentukan oleh parameter --docker-uri untuk membantu menghasilkan gambar enclave.

--docker-dir

Tidak

String

Path direktori lokal yang berisi Dockerfile. Path digunakan untuk membuat gambar Docker berdasarkan mana gambar enclave dihasilkan.

--output-file

Ya

String

Nama file gambar enclave.

--private-key

Tidak

String

File kunci privat dalam format .pem yang ingin Anda gunakan untuk menandatangani file gambar enclave.

Jika Anda menentukan parameter ini, Anda juga harus menentukan parameter --signing-certificate. Jika Anda menentukan parameter ini, perintah membuat file gambar enclave yang ditandatangani. Output perintah mencakup nilai tambahan PCR12 yang dapat Anda gunakan untuk memverifikasi pembuat file yang ditandatangani selama proses verifikasi. PCR12 adalah pengukuran sertifikat penandatanganan yang ditentukan untuk file yang ditandatangani.

--signing-certificate

Tidak

String

File kunci dalam format .pem yang ingin Anda gunakan untuk menandatangani file gambar enclave. Jika Anda menentukan parameter ini, Anda juga harus menentukan parameter --private-key.

Contoh perintah

Dalam contoh ini, gambar Docker dengan URI sample:latest dikonversi menjadi file gambar enclave bernama sample.eif.

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

Contoh output

Mulai membangun Gambar Enclave...
Gambar Enclave berhasil dibuat.
{
  "Measurements": {
    "HashAlgorithm": "Sha256 { ... }",
    "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
    "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
    "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
  }
}

Parameter

Parameter

Deskripsi

Measurements

Pengukuran file gambar enclave dalam format JSON.

HashAlgorithm

Algoritma hashing yang digunakan untuk menghasilkan pengukuran.

PCR8

Pengukuran file gambar enclave.

PCR9

Pengukuran kernel dan bootloader.

PCR11

Pengukuran aplikasi.

run-enclave

Memulai enclave baru berdasarkan file gambar enclave. Selama proses ini, vCPU dan memori yang dialokasikan diberikan ke enclave baru.

Catatan

Hanya satu enclave yang dapat dijalankan pada Instance ECS.

Sintaksis

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

File konfigurasi JSON untuk subperintah ini memiliki format berikut:

{
    "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

Path file konfigurasi JSON yang berisi parameter startup enclave.

Jika Anda menentukan parameter ini, tidak ada parameter lain yang dapat ditentukan karena semua parameter ditentukan dalam file konfigurasi JSON.

--cpu-count

Tidak

int

Jumlah vCPU yang akan dialokasikan ke enclave. Jumlah tersebut harus kurang dari jumlah total vCPU instance. Jika tidak, instance tidak dapat bekerja seperti yang diharapkan karena kurangnya vCPU yang tersedia.

  • Jika Anda tidak menentukan parameter --cpu-ids, Anda harus menentukan parameter --cpu-count.

  • Jika Anda menentukan parameter --cpu-ids, Anda tidak dapat menentukan parameter --cpu-count.

Catatan

Jika hyper-threading dinonaktifkan untuk instance, Anda dapat mengalokasikan setidaknya satu vCPU ke enclave. Jika hyper-threading diaktifkan untuk instance (pengaturan default), jumlah vCPU harus genap, yaitu minimal dua untuk enclave dan minimal empat untuk instance. Anda dapat menjalankan perintah lscpu dan melihat nilai Thread(s) per core dalam output perintah untuk memeriksa apakah hyper-threading diaktifkan untuk instance. Jika nilainya 2, hyper-threading diaktifkan.

--cpu-ids

Tidak

int

ID vCPU yang akan dialokasikan ke enclave. Jumlah vCPU harus kurang dari jumlah total vCPU instance. Jika tidak, instance tidak dapat bekerja seperti yang diharapkan karena kurangnya vCPU yang tersedia.

Jika hyper-threading diaktifkan untuk instance, jumlah vCPU harus genap. Untuk informasi lebih lanjut, lihat deskripsi parameter --cpu-count.

  • Jika Anda tidak menentukan parameter --cpu-count, Anda harus menentukan parameter --cpu-ids.

  • Jika Anda menentukan parameter --cpu-count, Anda tidak dapat menentukan parameter --cpu-ids.

--memory

Ya

int

Jumlah memori yang akan dialokasikan ke enclave. Unit: MiB. Ukuran memori harus lebih besar dari atau sama dengan 64 MiB dan kurang dari ukuran memori total instance. Ukuran memori juga harus cukup besar untuk mendukung operasi enclave.

--eif-path

Ya

String

Path file gambar enclave dalam format .eif.

--enclave-cid

Tidak

int

Pengidentifikasi konteks (CID) enclave, yang digunakan untuk menentukan alamat VM Sockets (vsock) enclave. Hanya CID 4 atau lebih yang dapat ditentukan.

Jika Anda tidak menentukan parameter ini, sistem menetapkan CID yang tersedia ke enclave.

--debug-mode

Tidak

String

Menentukan apakah akan menjalankan enclave dalam mode debug. Tentukan parameter ini untuk mengaktifkan mode debug, atau biarkan parameter ini kosong untuk menonaktifkan mode debug.

Anda dapat menjalankan perintah enclave-cli console untuk mendapatkan output runtime enclave hanya jika enclave berjalan dalam mode debug. Pengukuran yang dihasilkan saat enclave berjalan dalam mode debug semuanya nol. Anda tidak dapat memverifikasi enclave.

Contoh perintah

Dalam contoh ini, file gambar sample.eif digunakan untuk menjalankan enclave dengan alokasi 2 vCPU dan 1.024 MiB memori serta CID 10.

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

Contoh output

Mulai mengalokasikan memori...
Enclave dimulai dengan enclave-cid: 10, memori: 1.024 MiB, cpu-ids: [2, 3]
{
    "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
    "ProcessID": 1234,
    "EnclaveCID": 10,
    "NumberOfCPUs": 2,
    "CPUIDs": [
        2,
        3
    ],
    "MemoryMiB": 1024
}

Parameter

Parameter

Deskripsi

EnclaveID

ID unik enclave.

ProcessID

Pengidentifikasi proses (PID) dari proses yang mengelola sumber daya enclave.

EnclaveCID

CID enclave.

NumberOfCPUs

Jumlah vCPU yang dialokasikan ke enclave dari instance.

CPUIDs

ID vCPU yang dialokasikan ke enclave dari instance.

MemoryMiB

Jumlah memori yang dialokasikan ke enclave dari instance. Unit: MiB.

describe-enclaves

Meminta informasi tentang enclave yang sedang berjalan.

Sintaksis

enclave-cli describe-enclaves

Contoh perintah

Dalam contoh ini, informasi tentang enclave yang sedang berjalan diminta.

enclave-cli describe-enclaves

Contoh output

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

Parameter

Parameter

Deskripsi

EnclaveID

ID unik enclave.

ProcessID

PID proses yang mengelola sumber daya enclave.

EnclaveCID

CID enclave.

NumberOfCPUs

Jumlah vCPU yang dialokasikan ke enclave dari instance.

CPUIDs

ID vCPU yang dialokasikan ke enclave dari instance.

MemoryMiB

Jumlah memori yang dialokasikan ke enclave dari instance. Unit: MiB.

State

Status enclave. Nilai valid: RUNNING dan TERMINATING.

Flags

Menunjukkan apakah enclave berjalan dalam mode debug. Nilai valid: DEBUG_MODE dan NONE.

console

Meminta output dari enclave yang sedang berjalan. Ini membantu Anda mendiagnosis aplikasi di dalam enclave.

Output perintah adalah output standar enclave saat berjalan. Tidak ada informasi tambahan, sehingga output perintah tidak dijelaskan.

Catatan

Subperintah ini hanya dapat dijalankan pada enclave yang dijalankan dengan parameter --debug-mode ditentukan.

Sintaksis

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

Parameter

Parameter

Wajib

Tipe

Deskripsi

--enclave-id

Ya

String

ID enclave.

Contoh perintah

Dalam contoh ini, output dari enclave yang berjalan dalam mode debug dengan ID 12345678-1234-5678-1234-12345678****-enc1 diminta.

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

Contoh output

Output perintah mencakup log startup kernel dan output runtime aplikasi. Jika enclave berjalan seperti yang diharapkan, output serupa dengan berikut ini dikembalikan:

[   1] Halo dari sisi enclave!
[   2] Halo dari sisi enclave!
[   3] Halo dari sisi enclave!
...

terminate-enclave

Mengakhiri enclave yang sedang berjalan.

Sintaksis

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

Parameter

Parameter

Wajib

Tipe

Deskripsi

--enclave-id

Ya

String

ID enclave.

Contoh perintah

Dalam contoh ini, enclave yang sedang berjalan dengan ID 12345678-1234-5678-1234-12345678****-enc1 diakhiri.

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

Contoh output

Enclave 12345678-1234-5678-1234-123456781234-enc1 berhasil diakhiri.
{
  "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
  "Terminated": true
}

Parameter

Parameter

Deskripsi

EnclaveID

ID unik enclave.

Terminated

Menunjukkan apakah enclave telah diakhiri. Nilai valid: true dan false.

Referensi

Kode kesalahan mungkin dikembalikan saat menggunakan subperintah CLI Enclave. Untuk informasi lebih lanjut, lihat Kode Kesalahan.