全部产品
Search
文档中心

云服务器 ECS:构建TDX机密计算环境

更新时间:Jul 15, 2026

本文介绍如何在基于Intel® Trusted Domain Extension(Intel® TDX)技术的ECS实例(下文简称为TDX实例)中构建TDX机密计算环境,并演示如何运行实例代码以验证TDX功能。

背景信息

Intel® TDX是一项基于CPU硬件的云服务器ECS保护技术,TDX实例的CPU寄存器、内存数据、中断处理等均受到CPU硬件的机密保护,云厂商和外部攻击者均无法监控或篡改TDX实例的内部运行状态(如运行的进程、计算中的敏感数据等)。关于Intel® TDX技术的更多信息,请参见Intel® Trusted Domain Extension(Intel® TDX)

Intel® TDX可以为您的实例和应用提供默认的安全保护,即您可以将现有应用直接迁移至TDX实例上并获得TDX能力带来的安全保护,而无需重新开发现有的应用程序。

image

创建TDX实例

通过控制台创建

在控制台创建具备TDX特性的实例步骤与创建普通实例类似,但需要注意一些特定选项。本步骤重点介绍TDX实例相关的特定配置,如果您想了解其他通用配置,请参见自定义购买实例

  1. 访问ECS控制台-实例

  2. 在页面左侧顶部,选择目标资源所在的资源组和地域。

  3. 单击创建实例,按照以下配置创建对应实例。

    配置项

    说明

    地域与可用区

    支持的地域与可用区与实例规格有关。请参见支持的地域、规格与镜像

    本文以华北2(北京)可用区I、ecs.g8i.xlarge规格为例。

    实例规格

    镜像

    选中机密虚拟机复选框,然后选择Alibaba Cloud Linux 3.2104 LTS 64位镜像

  4. 根据界面提示,完成创建实例。

通过OpenAPI或阿里云CLI创建

您可以调用RunInstances或阿里云CLI创建支持TDX安全特性的ECS实例,需要注意的参数如下表所示。

参数

说明

示例

RegionId

华北2(北京)

cn-beijing

ZoneId

机密计算目前仅在部分地域的特定可用区开放,且不同可用区适配的实例规格存在差异。请参见支持的地域、规格与镜像

cn-beijing-i

InstanceType

ecs.g8i.2xlarge

ImageId

指定支持TDX的镜像ID,当前仅内核版本大于等于5.10.134-16.al8.x86_64的Alibaba Cloud Linux 3.2104 LTS 64位 UEFI 版镜像支持。

aliyun_3_x64_20G_alibase_20241218.vhd

SecurityOptions.ConfidentialComputingMode

配置机密计算模式。

TDX

CLI示例

aliyun ecs RunInstances \
  --SecurityOptions.ConfidentialComputingMode TDX \
  --Region cn-beijing \
  --ZoneId cn-beijing-i \
  --SystemDisk.Category cloud_essd \
  --ImageId 'aliyun_3_x64_20G_alibase_20241218.vhd' \
  --InstanceType 'ecs.g8i.2xlarge' \
  --SecurityGroupId 'sg-[SecurityGroupId]' \
  --VSwitchId 'vsw-[VSwitchID]' \
  --KeyPairName [KEY_PAIR_NAME] \
  

操作步骤

步骤一:检查TDX的启用状态

在使用TDX机密计算环境前,建议您先检查对应实例的TDX的启用状态,以确保对应实例处于安全保护中。

  1. 检查TDX的启用状态。

    lscpu |grep -i tdx_guest

    如以下命令输出所示,Flags 列表中包含 tdx_guest 则表示 TDX 已被正确启用。

    [root@iZwzxxxxxxxx:~]# lscpu |grep -i tdx_guest
    Flags:           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc bts rep_good nopl xtopology tsc_known_freq pni pclmulqdq dtes64 ds_cpl ssse3 sdbg fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single sbd ibrs ibpb stibp ibrs_enhanced tdx_guest fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopts clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni avx512_bf16 wbnoinvd avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect cldemote movdiri movdir64b _vp2intersect md_clear serialize tsxldtrk amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities
  2. 检查TDX相关驱动安装情况。

    ls -l /dev/tdx_guest

    如以下命令输出所示表示已经安装 TDX 相关驱动。

    [root@iZ2ze          ~]# ls -l /dev/tdx_guest
    crw------- 1 root root 10, 125 Jan 30 16:51 /dev/tdx_guest

步骤二:构建TDX机密计算环境

说明

正常情况下,运行于非TDX环境下的程序可直接迁移至TDX实例中,而无需额外开发,且您可以像使用普通实例一样使用TDX实例。阿里云建议您利用下文所述的相关功能,以充分利用TDX所提供的额外安全能力,并更好地保护实例的安全。

TDX Report是由CPU硬件直接生成的代表了TDX实例身份的数据结构,其包含了TDX实例的属性(ATTRIBUTES)动态度量值(RTMR)TCB SVN等关键信息,并以密码学方法保护其完整性。更多信息,请参见Intel TDX Module

  1. 导入阿里云机密计算yum软件源。

    • 公网地址格式:https://enclave-[Region-ID].oss-[Region-ID].aliyuncs.com/repo/alinux/enclave-expr.repo

    • VPC内网地址格式:https://enclave-[Region-ID].oss-[Region-ID]-internal.aliyuncs.com/repo/alinux/enclave-expr.repo

      请将上述地址中的[Region-ID]替换为TDX实例所在地域的ID。以下为通过实例元数据获取地域ID的示例:

      token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token")
      region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id)
      
      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://enclave-${region_id}.oss-${region_id}-internal.aliyuncs.com/repo/alinux/enclave-expr.repo
  2. 安装编译工具及相关示例代码。

    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y sgxsdk libtdx-attest-devel
  3. 编译示例代码TDXReportParse。

    1. 进入TDXReportParse目录。

      cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/TDXReportParse
    2. 编译TDXReportParse。

      sudo make
  4. 运行编译出的可执行文件。

    sudo ./tdx_report_parse

    运行后输出 TD info 信息,其中 attributes 字段值为 0x0000000010000000 (NO_DEBUG SEPT_VE_DISABLE),表示 TDX 实例运行在非调试模式。完整输出示例:

    [  xxx@iZ2ze5zodrxxx:TDXReportParse]# make
    make: 'tdx_report_parse' is up to date.
    [  xxx@iZ2ze5zocxxx:TDXReportParse]# ./tdx_report_parse
    TD info
    attributes: 0x0000000010000000 (NO_DEBUG SEPT_VE_DISABLE)
    xfam: 0x00000000000642e7
    mr_td: 705ee9381b8633a9fbe532b52345e8433d3d2868959f57889d84ca377c395b689cac1599ccea1b7d420483a9ce5f031
    mr_config_id: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    mr_owner: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    mr_owner_config: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    rtmr0: 579cfd3c465db8258cc941a9f375d0a8a79cd2724f23d4e6745427ec04996f8e3eed55e614bd9de20a4fb9717f9f52a4
    rtmr1: 3745ce36d1ca347cd25487d918f161deca5aea924edcffabf8e1f528482aec34a7b9c16618293b4ce8e4014d3248bea
    rtmr2: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    rtmr3: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

验证TDX远程证明

在阿里云TDX加密环境中,远程证明可以用于验证平台的可信度和在该平台中运行的代码的完整性和机密性。更多远程证明服务说明,请参见远程证明服务

  • 平台指阿里云所使用的硬件平台及其虚拟化软件栈。

  • 平台中运行的代码指运行在TDX环境中的操作系统(如Alibaba Cloud Linux)和应用(如Nginx、Java等)。

  1. 安装TDX远程证明所需依赖的包。

    sudo yum install -y gcc gcc-c++ make openssl-devel git jq
    sudo yum install -y tdx-quote-generation-sample tee-appraisal-tool libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel libsgx-dcap-default-qpl-devel tdx-quote-verification-sample
  2. 配置阿里云TDX远程证明服务。

    配置/etc/sgx_default_qcnl.conf文件中的PCCS_URL,以下为通过实例元数据获取地域ID并配置DCAP服务的示例。

    token=$(curl -s -X PUT -H "X-aliyun-ecs-metadata-token-ttl-seconds: 5" "http://100.100.100.200/latest/api/token")
    region_id=$(curl -s -H "X-aliyun-ecs-metadata-token: $token" http://100.100.100.200/latest/meta-data/region-id)
    
    sudo sed -i.$(date "+%m%d%y") 's|PCCS_URL=.*|PCCS_URL=https://sgx-dcap-server.${region_id}.aliyuncs.com/sgx/certification/v4/|' /etc/sgx_default_qcnl.conf
  3. 进入tdx-quote-generation-sample目录并编译tdx-quote-generation-sample。

    cd /opt/alibaba/tdx-quote-generation-sample
    sudo make
  4. 生成远程证明报告(Quote)。

    • 随机生成report_data并签发Quote。

      sudo ./app
    • 指定report_data并签发Quote。

      sudo ./app -d <report_data_in_hex>
        说明
        • <report_data_in_hex>是一个16进制字符串,长度为64字节。

        • 您可以在report_data_in_hex中指定自定义数据,该数据将被包含在生成的Quote中。

        • report_data_in_hex因其长度有限,在实践中通常是一个哈希值。例如,它是一个公钥的哈希,并可以用于后续的密钥协商流程。

        例如:

        sudo ./app -d 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
        sudo ./app -d $(cat data.dat | xxd -p)

    回显类似如下所示时,表示远程证明报告(Quote)已生成。

    00001150: 74 54 59 57 35 30 59 53 42 44 62 47 46 79 59 54
    00001160: 45 4c 4d 41 6b 47 41 31 55 45 43 41 77 43 51 30
    00001170: 45 78 43 7a 41 4a 42 67 4e 56 42 41 63 4d 41 6b
    00001180: 6c 56 54 4d 46 36 62 37 34 35 77 59 48 4b 6f 5a
    00001190: 6a 43 43 41 51 59 44 51 51 41 45 49 6b 30 44 38
    000011a0: 51 73 43 44 51 67 41 49 55 43 43 36 6e 45 57 77
    000011b0: 53 34 46 62 32 66 69 35 57 37 33 61 7a 61 36 69
    000011c0: 31 34 66 69 34 66 53 34 63 52 34 36 68 35 74 47
    000011d0: 4a 66 56 66 6e 67 62 59 33 34 37 33 34 39 36 41
    000011e0: 30 34 64 78 34 66 34 64 36 64 71 37 33 37 39 35
    000011f0: 56 59 78 38 50 67 32 37 34 61 42 34 62 35 37
    00001200: 0a 75 7a 43 42 75 44 41 31 66 42 67 4e 56 48 53
    00001210: 45 47 44 41 57 67 42 54 51 51 69 35 61 51 51 70
    00001220: 30 69 66 4f 44 74 4a 67 53 35 36 53 31 41 62 34
    00001230: 47 72 44 43 42 72 53 43 67 34 65 56 48 52 38 45
    00001240: 4a 30 4a 64 4f 43 65 37 73 61 44 35 61 66 36 66
    00001250: 52 77 63 7a 61 6e 76 4c 32 34 65 36 63 36 45 52
    00001260: 6c 6a 59 58 52 65 63 79 35 30 63 33 6e 65 56 7a
    00001270: 56 66 62 63 32 35 36 79 36 34 6d 6c 63 6a 6f 61
    00001280: 35 30 30 61 35 37 37 57 75 39 32 33 39 74 4b 30
    00001290: 47 56 73 55 30 62 34 59 55 73 76 76 76 45 4e 34
    000012a0: 6d 52 6c 63 63 6a 61 41 67 4a 34 65 56 48 51 34
    000012b0: 67 51 55 65 55 67 34 64 55 6e 71 6c 64 4e 61 65
    000012c0: 37 53 56 30 61 55 72 39 51 47 7a 6b 62 36 65 42
    000012d0: 44 67 59 59 44 46 56 32 30 35 30 41 51 48 2f 42
    000012e0: 41 67 45 47 4d 44 42 49 47 41 31 55 64 49 77 51
    000012f0: 2f 77 51 49 4d 44 41 67 45 41 42 66 38 34 33 51
    00001300: 43 67 59 59 4d 30 61 34 62 67 46 35 61 49 61 30
    00001310: 43 53 51 41 4d 77 52 67 49 68 41 4f 57 2f 35 51
    00001320: 52 32 62 53 39 34 33 69 59 53 34 43 6e 65 6f 66
    00001330: 52 34 63 73 57 47 66 32 66 39 69 39 37 34 39 33
    00001340: 67 77 54 77 67 30 41 69 64 45 41 34 61 30 36 63
    00001350: 6f 4a 73 32 62 58 38 67 46 35 72 36 46 73 58 38
    00001360: 78 48 52 52 41 76 36 41 55 47 64 52 51 37 63 76
    00001370: 52 58 52 61 66 71 49 4e 30 61 2d 2d 2d 2d 2d 45
    00001380: 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d
    00001390: 0a 00
    
    Successfully get the TD Quote
    
    Wrote TD Quote to quote.dat
  5. 验证远程证明报告(Quote)。

    1. 配置评估策略(Appraisal Policy)并签名。

      重要

      建议您在已知的安全环境下进行,而非在生产环境中按需生成。

      您可以使用JSON格式描述您所需要的安全评估策略。

      • 例如您可以配置以下安全策略以验证您的TDX ECS是否运行在加密且不可调试的状态,即安全的受保护模式。

      • 您还可以在策略中配置额外参数以实现操作系统和应用的完整性校验。关于该评估策略(Appraisal Policy)的详细说明,请参考Intel DCAP Appraisal Engine Developer Guide

        {
            "policy_array":[
                {
                    "environment":{
                        "class_id":"45b734fc-aa4e-4c3d-ad28-e43d08880e68",
                        "description":"Application TD TCB 1.5"
                    },
                    "reference":{
                        "tdx_attributes":"0000000010000000",
                        "#NOTE": "0000000010000000 means for NO_DEBUG and SPTE_VE_DISABLE"
                    }
                }
            ]
        }

      您可以使用默认策略(位于/opt/alibaba/tdx-quote-verification-sample/Policies/tenant_td_policy.json)或编写您的自定义策略,用于后续校验的策略令牌(Policy Token),该策略令牌可以被传输至任何需要验证远程证明报告的环境中以进行后续的校验流程。

      cd /opt/alibaba/tdx-quote-verification-sample
      sudo make Policies/tenant_td_policy.jwt

      回显类似如下所示时,表示已生成策略令牌(Policy Token)。

      [ecs-user@iZ2ze2o0zl9g          tdx-quote-verification-sample]$ sudo make Policies/tenant_td_policy.jwt
      openssl ecparam -name secp384r1 -genkey -out ec_priv.pem
      tee_appraisal_tool sign_policy -in Policies/tenant_td_policy.json -key ec_priv.pem -out Policies/tenant_td_policy.jwt
      The signed token:
      eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJhbGciOiJFUzM4NCIsImNsYWltcyI6eyJpbnRlbGNpSm1wM3ayI6IntcImtleXMiOltcImtleTEiXSwidmFsdWVzIjpbXX0iLCJpbnRlbGNpUmVjb21tZW5kZWRNaXhpbWFsVGNiSXNWYWxpZCI6dHJ1ZSwiSW50ZWxDaU1pbmltdW1Jc1ZhbGlkIjp0cnVlLCJpbnRlbENpVGRSZXBvcnRNYWNyb0NoZWNrIjp0cnVlLCJpbnRlbENpVGRSZXBvcnRNclNpZ25lclZlcmlmaWVkIjp0cnVlfSwiZXhwIjoxNzM4OTkzMjQ3LCJpYXQiOjE3MDc0NTcyNDcsImlzcyI6IkludGVsIFRydXN0IEF1dGhvcml0eSIsIm5iZiI6MTcwNzQ1NzI0NywicG9saWN5X2lkcyI6WyJlNjgxODE5NC1hMWUxLTRiNjctYjBjNy0zMjAxN2NhNTNiZGIiXX0.xxx
    2. 编译TDX远程证明所依赖的其他组件。

      cd /opt/alibaba/tdx-quote-verification-sample
      sudo make all

      回显类似如下所示时,所依赖的组件已编译完成

      [ecs-user@iZ2ze5yprza...    tdx-quote-verification-sample]$ sudo make all
      CXX  <=  verifier.cpp
      LINK =>  verifier
      CXX  <=  relying_party.cpp
      LINK =>  relying_party
    3. 验证远程证明报告(Quote)。

      重要

      以下命令中的<path_to_quote>请替换成实际Quote目录,如本文示例中的/opt/alibaba/tdx-quote-generation-sample/quote.dat

      • 基于Policies/tenant_td_policy.json中的策略,验证远程证明生成的quote,并将对应的验证结果以JSON Web Token (JWT)的形式输出到标准输出。

        ./verifier -quote <path_to_quote>

        回显类似如下所示。

        [ecs-user@iZ2ze5yprz2 tdx-quote-verification-sample]$ ./verifier -quote /opt/alibaba/tdx-quote-generation-sample/quote.dat
        eyJhbGciOiJub251IiwidHlwIjoiSldUIn0.eyJi...
        (大段 Base64 编码的 JWT 输出)
      • 使用RelyingParty,进一步验证JWT签名的有效性。

        ./verifier -quote <path_to_quote> |./relying_party -v |grep "json payload" |awk -F 'payload:' '{print $2}'|jq 
        说明
        • 为简单起见,您可以检查appraisal_result中的overall_appraisal_result字段以确认认证者是否满足您预先设置的评估策略(Appraisal Policy)。

          ./verifier -quote <path_to_quote> |./relying_party -v |grep "json payload" |awk -F 'payload:' '{print $2}'|jq '.[0].result.overall_appraisal_result'
        • 此外,在生成quote时所指定的report_data也会体现在远程证明的验证结果(tdx_reportdata字段)中,您可以使用该值进行密钥交换等业务逻辑的实现。

          ./verifier -quote <path_to_quote> |./relying_party -v -a|grep "json payload" |awk -F 'payload:' '{print $2}'|jq '.. | .tdx_reportdata? | select(. != null)'

        回显类似如下所示(部分字段被省略)。

        [
          {
            "result": {
              "appraisal_check_date": 1710400829000000000,
              "nonce": 502551065253582,
              "certification_data": [
                {
                  "certification_data": {
                    "qe_identity_issuer_chain": "LS0t...",
                    "root_ca_crl": "MzA4...",
                    "pck_crl": "LS0t...",
                    "pck_crl_issuer_chain": "LS0t...",
                    "tcb_info": "eyJ0...",
                    "qe_identity": "eyJl...",
                    "tcb_info_issuer_chain": "LS0t..."
                  }
                }
              ],
              "overall_appraisal_result": 1,
              "appraised_reports": [
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "td_mrownerconfig_check": true,
                      "td_xfam_check": true,
                      "td_mrservicetd_check": true,
                      "td_attributes_check": true,
                      "td_rtmr3_check": true,
                      "td_mrtd_check": true,
                      "td_mrowner_check": true,
                      "td_rtmr0_check": true,
                      "td_mrconfigid_check": true,
                      "td_rtmr1_check": true,
                      "td_rtmr2_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Application TD TCB 1.5",
                      "class_id": "45b734fc-aa4e-4c3d-ad28-e43d08880e68"
                    },
                    "signature": "-6C0-...",
                    "reference": {
                      ...
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "CeW8...",
                      "x": "NmSa..."
                    }
                  },
                  "report": {
                    "environment": {
                      "Description": "Application TD TCB",
                      "class_id": "45b734fc-aa4e-4c3d-ad28-e43d08880e68"
                    },
                    "measurement": {
                      "tdx_mrownerconfig": "0000...",
                      "tdx_mrservicetd": "3D03...",
                      "tdx_xfam": "00000000000642E7",
                      "tdx_mrtd": "0A40...",
                      "tdx_mrowner": "0000...",
                      "tdx_attributes": "0000000010000000",
                      "tdx_mrconfigid": "0000...",
                      "tdx_reportdata": "D98B...",
                      "tdx_rtmr3": "0000...",
                      "tdx_rtmr2": "0000...",
                      "tdx_rtmr1": "6368...",
                      "tdx_rtmr0": "D0FD..."
                    }
                  }
                },
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "platform_provider_id_check": true,
                      "sgx_types_check": true,
                      "cached_keys_check": true,
                      "smt_enabled_check": true,
                      "accepted_tcb_level_date_tag_check": true,
                      "advisory_ids_check": true,
                      "expiration_date_check": true,
                      "tcb_eval_num_check": true,
                      "earliest_accepted_tcb_level_date_tag_check": true,
                      "tcb_status_check": true,
                      "dynamic_platform_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Alibaba Cloud Evaluation Num Policy for TDX Platform",
                      "class_id": "f708b97f-0fb2-4e6b-8b03-8a5bcd1221d3"
                    },
                    "signature": "l00p...",
                    "reference": {
                      "accepted_tcb_status": [
                        "UpToDate"
                      ],
                      "allow_dynamic_plaform": true,
                      "min_eval_num": 16
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "7hlr...",
                      "x": "OSbD..."
                    }
                  },
                  "report": {
                    "environment": {
                      "description": "TDX Platform TCB",
                      "class_id": "f708b97f-0fb2-4e6b-8b03-8a5bcd1221d3"
                    },
                    "measurement": {
                      "earliest_issue_date": "2018-05-21T10:45:10Z",
                      "is_cached_keys_policy": true,
                      "fmspc": "90C06F000000",
                      "is_smt_enabled": true,
                      "earliest_expiration_date": "2024-04-02T10:22:51Z",
                      "root_ca_crl_num": 1,
                      "root_key_id": "9309...",
                      "pck_crl_num": 1,
                      "tcb_eval_num": 16,
                      "latest_issue_date": "2024-03-13T15:45:02Z",
                      "tcb_status": [
                        "UpToDate"
                      ],
                      "tcb_level_date_tag": "2023-08-09T00:00:00Z",
                      "is_dynamic_platform": true,
                      "sgx_types": 1
                    }
                  }
                },
                {
                  "appraisal_result": 1,
                  "detailed_result": [
                    {
                      "td_qe_expiration_date_check": true,
                      "td_qe_tcb_eval_num_check": true,
                      "td_qe_earliest_accepted_tcb_level_date_tag_check": true,
                      "td_qe_tcb_status_check": true,
                      "td_qe_accepted_tcb_level_date_tag_check": true
                    }
                  ],
                  "policy": {
                    "environment": {
                      "description": "Alibaba Cloud Num Policy for Verified TDQE",
                      "class_id": "3769258c-75e6-4bc7-8d72-d2b0e224cad2"
                    },
                    "signature": "l00p...",
                    "reference": {
                      "accepted_tcb_status": [
                        "UpToDate"
                      ],
                      "min_eval_num": 16
                    },
                    "signing_key": {
                      "kty": "EC",
                      "crv": "P-384",
                      "alg": "ES384",
                      "y": "7hlr...",
                      "x": "OSbD..."
                    }
                  },
                  "report": {
                    "environment": {
                      "Description": "RAW TDX QE Report",
                      "class_id": "3769258c-75e6-4bc7-8d72-d2b0e224cad2"
                    },
                    "measurement": {
                      "earliest_expiration_date": "2025-05-21T10:50:10Z",
                      "earliest_issue_date": "2018-05-21T10:45:10Z",
                      "root_key_id": "9309...",
                      "tcb_eval_num": 16,
                      "latest_issue_date": "2018-05-21T10:50:10Z",
                      "tcb_status": [
                        "UpToDate"
                      ],
                      "tcb_level_date_tag": "2023-08-09T00:00:00Z"
                    }
                  }
                }
              ]
            }
          }
        ]

支持的地域、规格与镜像

地域与规格限制

机密计算目前仅在部分地域的特定可用区开放,且不同可用区适配的实例规格存在差异。具体的地域与规格支持情况如下表所示:

地域及可用区

规格

华北2(北京)可用区L

ecs.g8i.xlarge及以上规格

华北2(北京)可用区I

  • ecs.g8i.xlarge及以上规格;

  • ecs.g9i.xlarge、ecs.c9i.xlarge、ecs.r9i.xlarge及以上规格;

  • ebmg8i规格族。

华东1(杭州)可用区J

ecs.r9i.xlarge及以上实例规格

中国香港 可用区B

ecs.g8i.xlarge及以上实例规格

中国香港 可用区C

ecs.g8i.xlarge及以上实例规格

中国香港 可用区D

ecs.g8i.xlarge及以上实例规格

新加坡 可用区B

ecs.g8i.xlarge及以上实例规格

镜像

重要

推荐使用Alibaba Cloud Linux 3

  • Debian版本大于等于13.1:Debian 13.1、Debian 13.2、Debian 13.3。

  • Rocky版本大于等于9.5:Rocky 9.5、Rocky 9.6、Rocky 9.7、Rocky 10.0、Rocky 10.1

  • Ubuntu版本大于等于24.04:Ubuntu 24.04

  • Alibaba Cloud Linux版本大于等于3:Alibaba Cloud Linux 3、Alibaba Cloud Linux 4。

已知功能限制

  • 开启TDX特性的ECS的CPU寄存器和内存中的数据会通过CPU硬件进行加密保护,因此其性能相较普通ECS实例存在一定损失。

  • 受限于TDX动态度量值(RTMR)重置/中断保护/寄存器状态恢复等设计,开启了TDX特性的ECS实例不支持内部重启(即在操作系统内部不支持执行reboot命令)。

  • 暂不支持VNC登录实例,但不影响SSH方式登录,例如可以通过Workbench或第三方客户端登录。如需获取实例运行时所打印的日志,请参见查看实例的系统日志和屏幕截图获取实例系统命令行输出

  • 镜像限制:

    • 仅支持UEFI镜像。

    • 暂不支持Windows。

    • 不支持内核版本过老的镜像,内核版本需大于等于5.10.134-16.al8.x86_64。

  • 暂不支持eRDMA和各类加速器等。

  • Linux guest kernel SWIOTLB buffer已知问题:

    • 可见内存较常规实例较小,开启了TDX特性的ECS实例内部将使用特定的非加密内存(SWIOTLB)用于外设通信,该内存区域的大小默认情况下为ECS实例可用内存的6%(但不大于1 GiB)。

    • 大规格插入多张ENI弹性网卡可能导致ECS实例崩溃,原因为网卡多队列情况下SWIOTLB内存可能不足导致内存分配失败,您可以在控制台将对应ECS实例关机并卸载对应弹性网卡以从启动失败中恢复。

    • 如果您的实例负载涉及大量的IO通信,则可能遭遇由SWIOTLB不足导致的性能下降。您可以使用以下命令检查此问题是否存在:

      dmesg| grep 'swiotlb buffer is full'
      重要

      错误配置SWIOTLB参数可能导致您的实例启动失败,建议您在操作前创建磁盘快照,以便在任何错误情况下可以安全回滚。具体操作,请参见手动创建单个快照

      如您确认该问题存在,您可以尝试调大SWIOTLB大小以改善ECS的性能,具体操作如下:

      • 将SWIOTLB的大小修改为1 GiB。

        grubby --update-kernel=ALL --args=swiotlb=524288
      • 如果您的内核版本大于5.10.134-18.al8.x86_64 ,可以额外增加参数any以支持使用更大的SWIOTLB,如:

        grubby --update-kernel=ALL --args=swiotlb=2097152,any   # 将SWIOTLB调整为4 GiB
        说明

        SWIOTLB参数取值的计算方法为:目标大小(以MiB为单位)* 512。更多信息,请参见The kernel's command-line parameters