Tous les produits
Search
Centre de documentation

Elastic Compute Service:Get started with the Enclave CLI

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment utiliser l'Enclave CLI pour créer, démarrer et arrêter une enclave sur une instance compatible avec les enclaves.

Procédure

  1. Créez une instance activée pour les enclaves et préallouez les ressources nécessaires à l'enclave.

    Pour plus d'informations, consultez la rubrique Configurer un environnement de calcul confidentiel pour les enclaves.

  2. Générez un fichier image d'enclave.

    Après avoir installé l'Enclave CLI, utilisez le Dockerfile d'exemple situé dans le répertoire /usr/share/ali-enclaves/examples/hello pour générer un fichier image d'enclave.

    1. Exécutez la commande suivante pour construire une image Docker nommée hello avec le tag latest.

      sudo docker build /usr/share/ali-enclaves/examples/hello -t hello
    2. Vérifiez la construction de l'image Docker.

      sudo docker images hello:latest

      Si la sortie contient l'image Docker hello avec le tag latest, la construction a réussi.

      [test@i22ze8kho0z4u_ ~]$ sudo docker images hello:latest
      REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
      hello         latest    66d39ebd3dbc   22 seconds ago   4.26MB
    3. Générez un fichier image d'enclave nommé hello.eif.

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

      En l'absence d'erreurs, la génération aboutit et crée le fichier image d'enclave hello.eif. Les valeurs PCR (Platform Configuration Register) affichées correspondent aux hachages de mesure de l'enclave et servent à l'attestation à distance. Voici un exemple de sortie :

      Start building the Enclave Image...
      Enclave Image successfully created.
      {
        "Measurements": {
          "HashAlgorithm": "Sha256 { ... }",
          "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
          "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
          "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
        }
      }
  3. Démarrez l'enclave.

    Cette commande démarre une enclave à partir du fichier image hello.eif en mode débogage, avec 2 vCPU et 1 024 MiB de mémoire. Pour plus d'informations sur les paramètres, consultez la section Exécuter une enclave.

    sudo enclave-cli run-enclave --cpu-count 2 --memory 1024 --eif-path hello.eif --debug-mode

    La sortie suivante confirme le démarrage de l'enclave. Dans cet exemple, l'ID de l'enclave est 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1. Vous devez spécifier cet ID pour gérer l'enclave via l'Enclave CLI.

    Remarque

    Le CID (Context Identifier) de cette enclave est 4, attribué automatiquement par le système. Le protocole vsock constitue le seul canal de communication entre l'instance et une enclave qui ne s'exécute pas en mode débogage.

    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
    }
  4. Consultez l'état de l'enclave.

    enclave-cli describe-enclaves

    La sortie affiche l'ID de l'enclave, le nombre de vCPU, la taille de la mémoire et l'état. L'état RUNNING indique que l'enclave est en cours d'exécution.

    [
      {
        "EnclaveID": "4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1",
        "ProcessID": 1234,
        "EnclaveCID": 4,
        "NumberOfCPUs": 2,
        "CPUIDs": [
          2,
          3
        ],
        "MemoryMiB": 1024,
        "State": "RUNNING",
        "Flags": "DEBUG_MODE"
      }
    ]

    Étant donné que l'enclave s'exécute en mode débogage, vous pouvez également afficher sa sortie console.

    enclave-cli console --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1

    Si l'enclave est en cours d'exécution, la sortie ressemble à ce qui suit :

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

    Dans cet exemple, l'enclave affiche le message Hello from the enclave side! toutes les cinq secondes. Le nombre entre crochets indique le compteur de messages.

  5. Arrêtez l'enclave.

    sudo enclave-cli terminate-enclave --enclave-id 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1

    La sortie suivante confirme l'arrêt de l'enclave.

    Successfully terminated enclave 4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1.
    {
      "EnclaveID": "12345678-1234-5678-1234-12345678****-enc1",
      "Terminated": true
    }