Tüm Ürünler
Search
Belge Merkezi

Elastic Compute Service:Enclave CLI subcommands

Son Güncelleme:Sep 30, 2026

ECS örneklerinde enclave'leri oluşturmak, çalıştırmak, incelemek, hata ayıklamak ve sonlandırmak için Enclave CLI'yı kullanın.

Enclave CLI'yı yükledikten sonra alt komutları ve kullanımı görüntülemek için aşağıdaki komutları çalıştırın:

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

build-enclave

Bir Docker görüntüsünden bir enclave görüntü dosyası (.eif) oluşturur. Yerel bir Dockerfile dizini veya bir Docker depo görüntüsü adı belirtin.

Çıktı, enclave görüntüsünün temel ölçümlerini içerir. Uzak doğrulama sırasında bu ölçümler, enclave bütünlüğünü doğrulamak için çalışma zamanı değerleriyle karşılaştırılır.

Not

Alibaba Cloud sanallaştırma enclave'lerinde ölçümler (Platform Yapılandırma Kaydedicileri veya PCR'ler), çalışma zamanında bir vTPM tarafından oluşturulur ve TPM 2.0 ile uyumludur.

Kullanım

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

Parametreler


Parametre


Gerekli


Tür


Açıklama


--docker-uri


Evet


Dize

Docker görüntüsü URI'si <repository>:<tag> biçimindedir.

--docker-dir ayrıca belirtilirse, yerel bir Docker görüntüsü --docker-uri içindeki URI ile oluşturulur ve enclave görüntüsü oluşturmak için kullanılır.


--docker-dir


Hayır


Dize


Dockerfile içeren yerel bir dizinin yolu. Enclave görüntüsü oluşturmak için Docker görüntüsünü derlemek üzere kullanılır.


--output-file


Evet


Dize


Enclave görüntüsü için çıktı dosya adı.


--private-key


Hayır


Dize

Enclave görüntüsünü imzalamak için PEM formatındaki özel anahtar dosyası.

--signing-certificate gerektirir. CLI, imzalı bir enclave görüntüsü oluşturur ve ek bir PCR12 değeri çıktılar; bu değer, imzalama sertifikasının temel ölçümüdür ve görüntü oluşturucuyu doğrulamak için uzak doğrulamada kullanılır.


--signing-certificate


Hayır


Dize


Enclave görüntüsünü imzalamak için PEM formatındaki sertifika dosyası. --private-key ile birlikte kullanılmalıdır.

Örnek

Docker görüntüsü sample:latest üzerinden sample.eif adlı bir enclave görüntüsü oluşturun:

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

Çıktı

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

Çıktı alanları


Parametre


Açıklama


Measurements


Enclave görüntüsünün JSON formatındaki temel ölçümleri.


HashAlgorithm


Ölçümleri oluşturmak için kullanılan karma algoritması.


PCR8


Enclave görüntüsü ölçümü.


PCR9


Çekirdek ve önyükleyici ölçümü.


PCR11


Uygulama ölçümü.

run-enclave

Belirtilen sanal CPU sayısı ve bellek miktarıyla bir görüntü dosyasından bir enclave başlatır.

Not

Bir ECS örneğinde aynı anda yalnızca bir enclave çalışabilir.

Sözdizimi

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

Alternatif olarak, tüm parametreleri bir JSON yapılandırma dosyasında belirtebilirsiniz:

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

Parametreler

Parametre

Gerekli

Tür

Açıklama

--config

Hayır

Dize

Enclave başlatma parametrelerini içeren JSON yapılandırma dosyasının yolu.

Belirtilirse diğer parametreleri kullanmayın. Tüm parametreler bu dosyada JSON formatında tanımlanmalıdır.

--cpu-count

Hayır

int

Enclave'e atanacak sanal CPU sayısı. Örnek üzerindeki toplam sanal CPU sayısından az olmalıdır.

Bu parametrenin gerekli olup olmadığı, --cpu-ids belirtip belirtmediğinize bağlıdır:

  • --cpu-ids belirtmezseniz --cpu-count gereklidir.

  • --cpu-ids belirtirseniz --cpu-count belirtmeyin.

Not

Hyper-threading devre dışı bırakılırsa enclave 1 sanal CPU kullanabilir. Hyper-threading etkinse (varsayılan) enclave çift sayıda sanal CPU (minimum 2) gerektirir, bu nedenle örneğin en az 4 sanal CPU'su olmalıdır. Hyper-threading'i doğrulamak için lscpu komutunu çalıştırın ve Thread(s) per core değerinin 2 olduğunu kontrol edin.

--cpu-ids

Hayır

int

Enclave'e atanacak sanal CPU kimliklerinin listesi. Sayı, örnek üzerindeki toplam sanal CPU sayısından az olmalıdır.

Hyper-threading etkinse sanal CPU sayısı çift olmalıdır. Ayrıntılar için --cpu-count bölümüne bakın.

Bu parametrenin gerekli olup olmadığı, --cpu-count belirtip belirtmediğinize bağlıdır:

  • --cpu-count belirtmezseniz --cpu-ids gereklidir.

  • --cpu-count belirtirseniz --cpu-ids belirtmeyin.

--memory

Evet

int

Enclave için MiB cinsinden bellek boyutu. Geçerli değerler: 64 MiB ile örnek toplam belleğinden daha az. Ayrıca minimum enclave çalışma zamanı gereksinimini de karşılamalıdır.

--eif-path

Evet

Dize

.eif enclave görüntü dosyasının yolu.

--enclave-cid

Hayır

int

Enclave için vsock CID'si. En az 4 olmalıdır.

Atlanırsa sistem mevcut bir CID atar.

--debug-mode

Hayır

Dize

Hata ayıklama modunu etkinleştirir. Normal modda çalıştırmak için atlayın.

Hata ayıklama modunda çalışma zamanı çıktısını görüntülemek için enclave-cli console kullanın. Hata ayıklama modunda tüm doğrulama ölçümleri sıfırdır ve uzak doğrulamadan geçemez.

Örnek: Satır içi parametrelerle başlatma

2 sanal CPU, 1.024 MiB bellek ve CID 10 ile sample.eif üzerinden bir enclave başlatın:

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

Çıktı:

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
}

Çıktı alanları


Alan


Açıklama


EnclaveID


Enclave kimliği.


ProcessID


Enclave yönetim işleminin PID'si.


EnclaveCID


Enclave CID'si.


NumberOfCPUs


Sanal CPU sayısı.


CPUIDs


Sanal CPU kimlikleri.


MemoryMiB


MiB cinsinden ayrılan bellek.

describe-enclaves

Geçerli örnekteki enclave hakkında bilgi döndürür.

Sözdizimi

enclave-cli describe-enclaves

Örnek

enclave-cli describe-enclaves

Çıktı:

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

Çıktı alanları


Alan


Açıklama


EnclaveID


Enclave kimliği.


ProcessID


Enclave yönetim işleminin PID'si.


EnclaveCID


Enclave CID'si.


NumberOfCPUs


Sanal CPU sayısı.


CPUIDs


Sanal CPU kimlikleri.


MemoryMiB


MiB cinsinden ayrılan bellek.


State


Enclave durumu. Geçerli değerler: RUNNING, TERMINATING.


Flags


Hata ayıklama modu bayrağı. Geçerli değerler: DEBUG_MODE, NONE.

console

Sorun giderme amacıyla çalışan bir enclave'in çekirdek başlatma günlükleri ve uygulama çıktısı dahil olmak üzere çalışma zamanı çıktısını okur.

Not

Enclave'in --debug-mode ile başlatılmasını gerektirir.

Sözdizimi

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

Parametreler


Parametre


Gerekli


Tür


Açıklama


--enclave-id


Evet


Dize


Enclave kimliği. run-enclave veya describe-enclaves çıktısından alın.

Örnek

Kimliği 12345678-1234-5678-1234-12345678****-enc1 olan hata ayıklama modundaki bir enclave'ten çıktıyı okuyun:

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

Çıktı:

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

terminate-enclave

Çalışan bir enclave'i sonlandırır ve kaynaklarını serbest bırakır.

Sözdizimi

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

Parametreler


Parametre


Gerekli


Tür


Açıklama


--enclave-id


Evet


Dize


Enclave kimliği. run-enclave veya describe-enclaves çıktısından alın.

Örnek

12345678-1234-5678-1234-123456781234-enc1 enclave'ini sonlandırın:

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

Çıktı:

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

Çıktı alanları


Alan


Açıklama


EnclaveID


Sonlandırılan enclave kimliği.


Terminated


Enclave'in sonlandırılıp sonlandırılmadığı. Geçerli değerler: true, false.

Başvurular

Enclave CLI alt komutları hata kodları döndürebilir.