本文介绍如何在基于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能力带来的安全保护,而无需重新开发现有的应用程序。
创建TDX实例
通过控制台创建
在控制台创建具备TDX特性的实例步骤与创建普通实例类似,但需要注意一些特定选项。本步骤重点介绍TDX实例相关的特定配置,如果您想了解其他通用配置,请参见自定义购买实例。
访问ECS控制台-实例。
在页面左侧顶部,选择目标资源所在的资源组和地域。
-
单击创建实例,按照以下配置创建对应实例。
配置项
说明
地域与可用区
支持的地域与可用区与实例规格有关。请参见支持的地域、规格与镜像。
本文以华北2(北京)可用区I、ecs.g8i.xlarge规格为例。
实例规格
镜像
选中机密虚拟机复选框,然后选择Alibaba Cloud Linux 3.2104 LTS 64位镜像
-
根据界面提示,完成创建实例。
通过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的启用状态,以确保对应实例处于安全保护中。
-
检查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 -
检查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。
-
导入阿里云机密计算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
-
-
安装编译工具及相关示例代码。
sudo yum groupinstall -y "Development Tools" sudo yum install -y sgxsdk libtdx-attest-devel -
编译示例代码TDXReportParse。
-
进入TDXReportParse目录。
cd /opt/alibaba/teesdk/intel/sgxsdk/SampleCode/TDXReportParse -
编译TDXReportParse。
sudo make
-
-
运行编译出的可执行文件。
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等)。
-
安装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 -
配置阿里云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 -
进入tdx-quote-generation-sample目录并编译tdx-quote-generation-sample。
cd /opt/alibaba/tdx-quote-generation-sample sudo make -
生成远程证明报告(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 -
-
验证远程证明报告(Quote)。
-
配置评估策略(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 -
-
编译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 -
验证远程证明报告(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 |
|
|
华东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。
-
-