赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 实例
  6. ECS安全能力
  7. 安全能力最佳实践
  8. 使用Enclave CLI管理阿里云虚拟化Enclave应用
  9. 快速使用Enclave CLI

快速使用Enclave CLI

  • 使用Enclave CLI管理阿里云虚拟化Enclave应用
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何在支持阿里云虚拟化Enclave的实例中使用CLI构建、启动和停止一个Enclave,以帮助您快速掌握其操作方法。

操作步骤

  1. 创建一个支持Enclave的实例并为Enclave进行资源预分配。

    具体操作,请参见安装Enclave CLI。

  2. 构建Enclave镜像文件。

    安装Enclave CLI后,在/usr/share/ali-enclaves/examples/hello目录中包含一个Dockerfile示例,可用于构建Enclave镜像文件。

    1. 执行如下命令,构建名为hello、标签为latest的Docker镜像。

      sudo docker build /usr/share/ali-enclaves/examples/hello -t hello
    2. 执行如下命令,检查Docker镜像是否已构建成功。

      sudo docker images hello:latest

      当返回信息中有名为hello、标签为latest的Docker镜像的相关信息时,表示Docker镜像已构建成功。

      image.png

    3. 执行如下命令,使用Enclave CLI构建名为hello.eif的Enclave镜像文件。

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

      若Enclave CLI未报错,则Enclave镜像文件hello.eif构建成功。Enclave CLI输出的PCR值为Enclave的特征哈希值,可用于远程证明。返回示例如下所示:

      Start building the Enclave Image...
      Enclave Image successfully created.
      {
        "Measurements": {
          "HashAlgorithm": "Sha256 { ... }",
          "PCR11": "dc5dcd841f87e2b6c0e65a11b46b25ebe2999a8a5f0318e10c0175b60000****",
          "PCR8": "2c6944f47864f1f8ab276000a9f057fcdf9f56a015c0bc5e2339f24b0000****",
          "PCR9": "8ef5fe53a7709cc1c1a0aa7b5149a55bcd524cccc9f43e7a3baf44ca0000****"
        }
      }
  3. 执行如下命令,启动Enclave。

    使用创建完成的hello.eif镜像文件启动一个Enclave,以下命令会基于此Enclave镜像文件以调试模式启动一个Enclave。该Enclave拥有2 vCPU和1024 MiB内存。更多参数说明,请参见运行Enclave。

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

    以下返回信息表示Enclave启动成功。在以下输出样例中,该Enclave的ID为4f39d839-0f7a-4bee-a09d-93b8b1d6****-enc1,后续使用Enclave CLI管理该Enclave时需指定此ID。

    说明

    该Enclave的CID(context identifier,即vsock地址)为4,为系统自动分配。此CID在vsock通信中类似于标准网络通信中的IP地址,vsock是实例与非调试模式Enclave之间唯一的可用信道。

    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. 执行如下命令,查看Enclave运行状态。

    enclave-cli describe-enclaves

    返回信息中会展示Enclave ID、vCPU数量、内存大小和状态等信息,其状态为RUNNING,表示Enclave运行正常。

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

    此外,由于该Enclave以调试模式运行,您还可以通过如下命令查看Enclave的调试输出。

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

    当Enclave运行正常时,其输出应为如下所示内容。

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

    本示例中Enclave会每五秒打印一句Hello from the enclave side!,方括号中的数字表示打印的当前次数。

  5. 执行如下命令,终止Enclave。

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

    以下返回信息表示终止Enclave成功。

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

Enclave CLI子命令说明 2025-04-01 11:58

本文介绍Enclave CLI所有子命令的详细用法,以帮助您更好地理解和使用Enclave CLI。 您也可以在安装Enclave CLI后分别运行如下命令来查看Enclave CLI所有子命令的列表和各子命令的用法说明。 enclav

安装Enclave CLI 2025-04-01 11:58

本文介绍如何在支持Enclave的ECS实例上安装阿里云虚拟化Enclave管理工具Enclave CLI。 准备工作 创建支持Enclave的ECS实例。

快速使用Enclave CLI 2025-04-01 11:58

本文介绍如何在支持阿里云虚拟化Enclave的实例中使用CLI构建、启动和停止一个Enclave,以帮助您快速掌握其操作方法。 操作步骤

错误码 2025-04-01 11:58

本文列举Enclave CLI可能返回的所有错误码并对其进行说明。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号