Todos os produtos
Search
Central de documentação

Elastic Compute Service:Subcomandos da CLI do Enclave

Última atualização: Jul 03, 2026

Compile, execute, inspecione, depure e encerre enclaves em instâncias ECS com a Enclave CLI.

Após instalar a Enclave CLI, execute os comandos abaixo para visualizar os subcomandos e o modo de uso:

enclave-cli --help                      # List all subcommands
enclave-cli <sub-command> --help        # Show usage for a specific subcommand

build-enclave

Gera um arquivo de imagem de enclave (.eif) a partir de uma imagem docker. Especifique um diretório local contendo o Dockerfile ou o nome de uma imagem em um repositório docker.

A saída inclui medições de base da imagem do enclave. Durante o atestado remoto, essas medições são comparadas com os valores de tempo de execução para verificar a integridade do enclave.

Nota

Nos enclaves de virtualização do Alibaba Cloud, as medições (Platform Configuration Registers ou PCRs) são geradas por um vTPM em tempo de execução e estão em conformidade com o TPM 2.0.

Uso

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

Parâmetros

Parâmetro

Obrigatório

Tipo

Descrição

--docker-uri

Sim

String

URI da imagem docker no formato <repository>:<tag>.

Caso --docker-dir também seja especificado, uma imagem docker local é compilada com a URI de --docker-uri e utilizada para gerar a imagem do enclave.

--docker-dir

Não

String

Caminho para um diretório local que contém um Dockerfile. Utilizado para compilar a imagem docker necessária à geração da imagem do enclave.

--output-file

Sim

String

Nome do arquivo de saída para a imagem do enclave.

--private-key

Não

String

Arquivo de chave privada no formato PEM para assinar a imagem do enclave.

Requer --signing-certificate. A CLI gera uma imagem de enclave assinada e produz um valor adicional de PCR12 — a medição de base do certificado de assinatura, usada no atestado remoto para verificar o criador da imagem.

--signing-certificate

Não

String

Arquivo de certificado no formato PEM para assinar a imagem do enclave. Deve ser usado em conjunto com --private-key.

Exemplo

Crie uma imagem de enclave sample.eif a partir da imagem docker sample:latest:

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

Saída

Start building the Enclave Image...
Enclave Image successfully created.
{
  "Measurements": {
    "HashAlgorithm": "Sha256 { ... }",
    "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
    "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
    "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
  }
}

Campos de saída

Parâmetro

Descrição

Measurements

Medições de base da imagem do enclave em formato json.

HashAlgorithm

Algoritmo de hash utilizado para gerar as medições.

PCR8

Medição da imagem do enclave.

PCR9

Medição do kernel e do bootloader.

PCR11

Medição da aplicação.

run-enclave

Inicia um enclave a partir de um arquivo de imagem, utilizando as vCPUs e a memória especificadas.

Nota

Apenas um enclave pode ser executado por vez em uma instância ECS.

Sintaxe

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

Alternativamente, especifique todos os parâmetros em um arquivo de configuração json:

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

Parâmetros

Parâmetro

Obrigatório

Tipo

Descrição

--config

Não

String

Caminho para um arquivo de configuração json com os parâmetros de inicialização do enclave.

Se especificado, não utilize outros parâmetros. Todos os parâmetros devem estar definidos neste arquivo em formato json.

--cpu-count

Não

int

Quantidade de vCPUs a serem atribuídas ao enclave. Deve ser inferior ao total de vCPUs da instância.

A obrigatoriedade deste parâmetro depende da especificação de --cpu-ids:

  • Se você não especificar --cpu-ids, --cpu-count será obrigatório.

  • Se você especificar --cpu-ids, não especifique --cpu-count.

Nota

Com o hyper-threading desativado, o enclave pode usar 1 vCPU. Com o hyper-threading ativado (padrão), o enclave requer um número par de vCPUs (mínimo de 2), portanto a instância deve ter pelo menos 4 vCPUs. Execute lscpu e verifique se Thread(s) per core é igual a 2 para confirmar o hyper-threading.

--cpu-ids

Não

int

Lista de IDs de vCPU a serem atribuídos ao enclave. A quantidade deve ser inferior ao total de vCPUs da instância.

Quando o hyper-threading estiver ativado, a contagem de vCPUs deve ser par. Consulte --cpu-count para mais detalhes.

A obrigatoriedade deste parâmetro depende da especificação de --cpu-count:

  • Se você não especificar --cpu-count, --cpu-ids será obrigatório.

  • Se você especificar --cpu-count, não especifique --cpu-ids.

--memory

Sim

int

Tamanho da memória para o enclave em MiB. Valores válidos: de 64 MiB até um valor inferior à memória total da instância. Também deve atender ao requisito mínimo de tempo de execução do enclave.

--eif-path

Sim

String

Caminho para o arquivo de imagem do enclave .eif.

--enclave-cid

Não

int

CID vsock para o enclave. Deve ser no mínimo 4.

Se omitido, o sistema atribui um CID disponível.

--debug-mode

Não

String

Ativa o modo de depuração. Omita para executar no modo normal.

No modo de depuração, use enclave-cli console para visualizar a saída de tempo de execução. Todas as medições de atestado são zeradas no modo de depuração, impossibilitando a aprovação no atestado remoto.

Exemplo: Iniciar com parâmetros inline

Inicie um enclave a partir de sample.eif com 2 vCPUs, 1.024 MiB de memória e CID 10:

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

Saída:

Start allocating memory...
Started enclave with enclave-cid: 10, memory: 1024 MiB, cpu-ids: [2, 3]
{
    "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
    "ProcessID": 1234,
    "EnclaveCID": 10,
    "NumberOfCPUs": 2,
    "CPUIDs": [
        2,
        3
    ],
    "MemoryMiB": 1024
}

Campos de saída

Campo

Descrição

EnclaveID

ID do enclave.

ProcessID

PID do processo de gerenciamento do enclave.

EnclaveCID

CID do enclave.

NumberOfCPUs

Quantidade de vCPUs.

CPUIDs

IDs das vCPUs.

MemoryMiB

Memória alocada em MiB.

describe-enclaves

Retorna informações sobre o enclave na instância atual.

Sintaxe

enclave-cli describe-enclaves

Exemplo

enclave-cli describe-enclaves

Saída:

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

Campos de saída

Campo

Descrição

EnclaveID

ID do enclave.

ProcessID

PID do processo de gerenciamento do enclave.

EnclaveCID

CID do enclave.

NumberOfCPUs

Quantidade de vCPUs.

CPUIDs

IDs das vCPUs.

MemoryMiB

Memória alocada em MiB.

State

Estado do enclave. Valores válidos: RUNNING, TERMINATING.

Flags

Sinalizador do modo de depuração. Valores válidos: DEBUG_MODE, NONE.

console

Lê a saída de tempo de execução de um enclave em funcionamento para solução de problemas, incluindo logs de inicialização do kernel e saída da aplicação.

Nota

Requer que o enclave tenha sido iniciado com --debug-mode.

Sintaxe

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

Parâmetros

Parâmetro

Obrigatório

Tipo

Descrição

--enclave-id

Sim

String

ID do enclave. Obtenha-o na saída de run-enclave ou describe-enclaves.

Exemplo

Leia a saída de um enclave em modo de depuração com o ID 12345678-1234-5678-1234-12345678****-enc1:

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

Saída:

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

terminate-enclave

Encerra um enclave em execução e libera seus recursos.

Sintaxe

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

Parâmetros

Parâmetro

Obrigatório

Tipo

Descrição

--enclave-id

Sim

String

ID do enclave. Obtenha-o na saída de run-enclave ou describe-enclaves.

Exemplo

Encerre o enclave 12345678-1234-5678-1234-123456781234-enc1:

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

Saída:

Successfully terminated enclave 12345678-1234-5678-1234-123456781234-enc1.
{
  "EnclaveID": "12345678-1234-5678-1234-123456781234-enc1",
  "Terminated": true
}

Campos de saída

Campo

Descrição

EnclaveID

ID do enclave encerrado.

Terminated

Indica se o enclave foi encerrado. Valores válidos: true, false.

Referências

Os subcomandos da Enclave CLI podem retornar códigos de erro.