Enclave CLI を使用して、ECS インスタンスでエンクレーブを作成、起動、停止します。
操作手順
-
エンクレーブが有効な ECS インスタンスを作成し、エンクレーブ用のリソースを事前に割り当てます。
詳細については、「Alibaba Cloud Enclave を使用したコンフィデンシャルコンピューティング」をご参照ください。
-
エンクレーブイメージファイルを作成します。
Enclave CLI には、
/usr/share/ali-enclaves/examples/helloにサンプルの Dockerfile が含まれています。これを使用してエンクレーブイメージファイルを作成します。-
helloという名前でlatestというタグが付いた Docker イメージを作成します。sudo docker build /usr/share/ali-enclaves/examples/hello -t hello -
Docker イメージが作成されたことを確認します。
sudo docker images hello:latest出力に
latestタグの付いたhelloイメージが表示された場合、イメージは作成されています。
-
hello.eifエンクレーブイメージファイルを作成します。sudo enclave-cli build-enclave --docker-uri hello:latest --output-file hello.eifエラーが返されなければ、
hello.eifが作成されます。出力内のプラットフォーム設定レジスタ (PCR) には、リモートアテステーション用のエンクレーブ固有のハッシュが含まれています。出力例:Start building the Enclave Image... Enclave Image successfully created. { "Measurements": { "HashAlgorithm": "Sha256 { ... }", "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****", "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****", "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****" } }
-
-
エンクレーブを起動します。
このコマンドは、
hello.eifから 2 vCPU と 1024 MiB のメモリを使用して、デバッグモードでエンクレーブを起動します。すべてのパラメーターについては、「Enclave CLI のサブコマンド」の「run-enclave」セクションをご参照ください。sudo enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path hello.eif --debug-mode次の出力は、エンクレーブが実行中であることを示します。エンクレーブ ID
4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1は、後続の Enclave CLI 操作で必要になります。説明コンテキスト識別子 (CID) 4 は、エンクレーブの vsock アドレスとして自動的に割り当てられます。非デバッグモードでは、vsock がエンクレーブとホストインスタンス間で通信する唯一の方法です。
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 } -
エンクレーブの状態を確認します。
enclave-cli describe-enclaves出力には、エンクレーブ ID、vCPU 数、メモリサイズ、および状態が表示されます。状態が
RUNNINGであれば、エンクレーブは動作しています。[ { "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1", "ProcessID": 1234, "EnclaveCID": 4, "NumberOfCPUs": 2, "CPUIDs": [ 2, 3 ], "MemoryMiB": 1024, "State": "RUNNING", "Flags": "DEBUG_MODE" } ]エンクレーブのデバッグ出力を表示します。
enclave-cli console --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1期待される出力:
[ 1] Hello from the enclave side! [ 2] Hello from the enclave side! [ 3] Hello from the enclave side! ...説明[ N] Hello from the enclave side!メッセージは 5 秒ごとに出力されます。 N はメッセージ数です。 -
エンクレーブを終了します。
sudo enclave-cli terminate-enclave --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1次の出力は、エンクレーブが終了したことを示します。
Successfully terminated enclave 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1. { "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1", "Terminated": true }