Buat, mulai, dan hentikan enklaf di instans ECS menggunakan Enclave CLI.
Prosedur
-
Buat instans ECS yang mendukung Enclave dan alokasikan sumber daya untuk enklaf tersebut.
-
Buat file image enklaf.
Enclave CLI menyertakan Dockerfile contoh di
/usr/share/ali-enclaves/examples/hello. Gunakan file tersebut untuk membuat file image enklaf.-
Buat image Docker bernama
hellodengan taglatest:sudo docker build /usr/share/ali-enclaves/examples/hello -t hello -
Verifikasi bahwa image Docker telah dibuat:
sudo docker images hello:latestJika output menampilkan image
hellodengan taglatest, berarti image tersebut telah berhasil dibuat.
-
Buat file image enklaf
hello.eif:sudo enclave-cli build-enclave --docker-uri hello:latest --output-file hello.eifJika tidak ada error yang ditampilkan, file
hello.eiftelah berhasil dibuat. Register konfigurasi platform (PCRs) dalam output berisi hash khusus enklaf untuk keperluan remote attestation. Contoh output:Start building the Enclave Image... Enclave Image successfully created. { "Measurements": { "HashAlgorithm": "Sha256 { ... }", "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****", "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****", "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****" } }
-
-
Mulai enklaf.
Perintah ini menjalankan enklaf dalam mode debug dengan 2 vCPU dan memori 1.024 MiB dari file
hello.eif. Untuk semua parameter, lihat bagian "run-enclave" di Subcommands of the Enclave CLI.sudo enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path hello.eif --debug-modeOutput berikut menunjukkan bahwa enklaf sedang berjalan. ID enklaf
4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1diperlukan untuk operasi Enclave CLI selanjutnya.CatatanIdentifier konteks (CID) 4 secara otomatis ditetapkan sebagai alamat vsock enklaf. Dalam mode non-debug, vsock merupakan satu-satunya cara berkomunikasi antara enklaf dan instans host.
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 } -
Periksa status enklaf:
enclave-cli describe-enclavesOutput menampilkan ID enklaf, jumlah vCPU, ukuran memori, dan statusnya. Status
RUNNINGmenunjukkan bahwa enklaf sedang berjalan.[ { "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1", "ProcessID": 1234, "EnclaveCID": 4, "NumberOfCPUs": 2, "CPUIDs": [ 2, 3 ], "MemoryMiB": 1024, "State": "RUNNING", "Flags": "DEBUG_MODE" } ]Lihat output debug enklaf:
enclave-cli console --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1Output yang diharapkan:
[ 1] Hello from the enclave side! [ 2] Hello from the enclave side! [ 3] Hello from the enclave side! ...CatatanPesan
[ N] Hello from the enclave side!dicetak setiap lima detik. N adalah nomor urut pesan tersebut. -
Hentikan enklaf:
sudo enclave-cli terminate-enclave --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1Output berikut menunjukkan bahwa enklaf telah dihentikan:
Successfully terminated enclave 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1. { "EnclaveID": "12345678-1234-5678-1234-12345678****-enc1", "Terminated": true }