Topik ini menjelaskan cara menggunakan Enclave CLI untuk membuat enklaf di dalam instance Elastic Compute Service (ECS). Setelah enklaf dibuat, Anda dapat memulai atau menghentikan enklaf sesuai kebutuhan bisnis Anda.
Prosedur
Buat instance ECS yang mendukung Enklaf dan alokasikan sumber daya untuk enklaf tersebut.
Untuk informasi lebih lanjut, lihat Bangun Lingkungan Komputasi Rahasia dengan Menggunakan Enklaf.
Buat file gambar enklaf.
Setelah menginstal Enclave CLI, Anda dapat menemukan contoh Dockerfile di direktori
/usr/share/ali-enclaves/examples/hello. Gunakan Dockerfile tersebut untuk membuat file gambar enklaf.Jalankan perintah berikut untuk membuat gambar Docker bernama
hellodengan taglatest:sudo docker build /usr/share/ali-enclaves/examples/hello -t helloJalankan perintah berikut untuk memeriksa apakah gambar Docker telah dibuat:
sudo docker images hello:latestJika keluaran perintah mencakup informasi tentang gambar Docker
hellodengan taglatest, maka gambar Docker berhasil dibuat.
Jalankan perintah berikut untuk menggunakan Enclave CLI guna membuat file gambar enklaf
hello.eif:sudo enclave-cli build-enclave --docker-uri hello:latest --output-file hello.eifJika tidak ada kesalahan yang dikembalikan, file gambar enklaf
hello.eifberhasil dibuat. Register konfigurasi platform (PCRs) yang dikembalikan oleh Enclave CLI menunjukkan hash spesifik untuk enklaf. Hash ini dapat digunakan untuk remote attestation. Contoh keluaran perintah:Mulai membangun Gambar Enklaf... Gambar Enklaf berhasil dibuat. { "Measurements": { "HashAlgorithm": "Sha256 { ... }", "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****", "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****", "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****" } }
Jalankan perintah berikut untuk menjalankan enklaf.
Gunakan file gambar
hello.eifyang telah dibuat untuk memulai enklaf. Perintah berikut memulai enklaf dalam mode debug berdasarkan file gambar enklaf. Enklaf memiliki 2 vCPU dan 1.024 MiB memori. Untuk informasi lebih lanjut tentang parameter lainnya, lihat bagian "run-enclave" di Subperintah dari Enclave CLI.sudo enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path hello.eif --debug-modeKeluaran perintah serupa dengan berikut menunjukkan bahwa enklaf sedang berjalan. Dalam contoh keluaran berikut, ID enklaf adalah
4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1. Anda harus menentukan ID ini saat menggunakan Enclave CLI untuk mengelola enklaf.CatatanPengenal konteks (CID) enklaf adalah 4. CID secara otomatis ditetapkan untuk mendefinisikan alamat vsock enklaf. Anda hanya dapat menggunakan alamat vsock untuk membentuk koneksi antara enklaf dalam mode non-debug dan instance tempat enklaf dibuat.
Mulai mengalokasikan memori... Enklaf dimulai dengan enclave-cid: 4, memori: 1024 MiB, cpu-ids: [2, 3] { "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1", "ProcessID": 1234, "EnclaveCID": 4, "NumberOfCPUs": 2, "CPUIDs": [ 2, 3 ], "MemoryMiB": 1024 }Jalankan perintah berikut untuk memeriksa status enklaf:
enclave-cli describe-enclavesPerintah mengembalikan informasi seperti ID enklaf, jumlah vCPU, ukuran memori, dan status enklaf. Jika enklaf bekerja sesuai harapan, status yang dikembalikan adalah
RUNNING.[ { "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1", "ProcessID": 1234, "EnclaveCID": 4, "NumberOfCPUs": 2, "CPUIDs": [ 2, 3 ], "MemoryMiB": 1024, "State": "RUNNING", "Flags": "DEBUG_MODE" } ]Anda juga dapat menjalankan perintah berikut untuk melihat keluaran debug dari enklaf yang berjalan dalam mode debug:
enclave-cli console --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1Jika enklaf bekerja sesuai harapan, keluaran perintah serupa dengan berikut akan dikembalikan:
[ 1] Halo dari sisi enklaf! [ 2] Halo dari sisi enklaf! [ 3] Halo dari sisi enklaf! ...CatatanDalam contoh keluaran perintah ini, pesan
[ N] Halo dari sisi enklaf!dikembalikan untuk enklaf setiap lima detik. N menunjukkan jumlah kali pesan tersebut dikembalikan.Jalankan perintah berikut untuk menghentikan enklaf:
sudo enclave-cli terminate-enclave --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1Keluaran perintah serupa dengan berikut menunjukkan bahwa enklaf telah dihentikan:
Berhasil menghentikan enklaf 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1. { "EnclaveID": "12345678-1234-5678-1234-12345678****-enc1", "Terminated": true }