すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:TDX 機密コンピューティング環境の構築とリモートアテステーションの検証

最終更新日:Sep 02, 2026

このトピックでは、Intel® Trusted Domain Extension (Intel® TDX) ベースの Elastic Compute Service (ECS) インスタンス (以下、TDX インスタンス) で TDX 機密コンピューティング環境を構築し、テストケースを実行して TDX 機能を検証する方法について説明します。

背景情報

Intel® TDX は、ECS インスタンス向けのハードウェアベースの保護技術です。TDX インスタンスでは、CPU ハードウェアが CPU レジスタ、メモリデータ、割り込み処理、その他のランタイム状態を機密情報として保護します。クラウドプロバイダーも外部の攻撃者も、実行中のプロセスや計算中の機密データなど、TDX インスタンスの内部ランタイム状態を監視したり改ざんしたりすることはできません。詳細については、「Intel® Trusted Domain Extension (Intel® TDX)」をご参照ください。

Intel® TDX は、デフォルトでインスタンスとアプリケーションを保護します。既存のアプリケーションは、再開発することなく TDX インスタンスに移行できます。

image

前提条件

コンソール

TDX インスタンスの作成は、標準インスタンスの作成と同様です。ここでは、TDX 固有の設定についてのみ説明します。一般的な設定については、「カスタム購入でインスタンスを作成する」をご参照ください。

  1. ECS コンソール - インスタンスに移動します。

  2. 上部メニューで、対象リソースのリージョンとリソースグループを選択します。 地域

  3. インスタンスの作成 をクリックし、次のパラメーターを設定します。

    パラメータ

    説明

    リージョンとゾーン

    サポートされているリージョンとゾーンは、インスタンスタイプによって異なります。詳細については、「サポートされているリージョン、インスタンスタイプ、イメージ」をご参照ください。

    この例では、中国 (北京) ゾーン I と ecs.g8i.xlarge を使用します。

    インスタンスタイプ

    イメージ

    機密 VM チェックボックスを選択し、次に Alibaba Cloud Linux 3.2104 LTS 64 ビット イメージを選択します。

  4. 残りの設定を完了して、インスタンスを作成します。

CLI と API

RunInstances API を呼び出すか、Alibaba Cloud CLI を使用して、TDX が有効な ECS インスタンスを作成します。次のパラメータを設定します。

パラメータ

説明

例

RegionId

中国 (北京)

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_20240315.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_20240315.vhd' \
  --InstanceType 'ecs.g8i.2xlarge' \
  --SecurityGroupId 'sg-<YourSecurityGroupId>' \
  --VSwitchId 'vsw-<YourVSwitchId>' \
  --KeyPairName <YourKeyPairName> \
  

操作手順

ステップ 1:TDX の有効化確認

次に進む前に、インスタンスで TDX が有効になっていることを確認してください。

  1. TDX が有効になっているかどうかを確認します。

    lscpu |grep -i tdx_guest

    出力に 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 アテステーションレポート (TD Report と Quote) をユーザーモードに公開します。インターフェイスはカーネルバージョンによって異なります。イメージのカーネルバージョンに合った確認コマンドを選択してください。いずれかのコマンドで確認できれば十分です。

    インターフェイス

    適用可能なイメージとカーネル

    確認コマンド

    ConfigFS TSM /sys/kernel/config/tsm/report

    Alibaba Cloud Linux 4、Ubuntu 24.04、Debian 13.1、Rocky 9.5 以降 (アップストリームカーネル 6.7 以降)

    ls -d /sys/kernel/config/tsm/report

    キャラクタデバイス /dev/tdx_guest

    Alibaba Cloud Linux 3 (kernel 5.10.134-16.al8 or later)

    ls -l /dev/tdx_guest

ステップ 2:TDX 機密コンピューティング機能の使用

TDX は、ユーザーモードに 4 つのアトミックな機能を提供します。これらは、ローカル測定からリモート検証までの完全なチェーンを形成します。

機能

説明

目的

TD Report 生成

TDX モジュールによって返されるローカルアテステーション構造体です。サイズは 1,024 バイトに固定されており、呼び出し元によって提供される 64 バイトの REPORTDATA をバインドできます。

ローカル測定を取得し、ノンスまたは公開鍵ハッシュを使用して鮮度を保証します。

Quote 生成

Quoting Enclave が TD Report に署名し、PCK 証明書チェーンを埋め込むことで、リモート側が独立して検証できるクレデンシャルを生成します。

インスタンスの ID とランタイム状態をリモート側に証明します。

Quote 検証

ECDSA 署名と証明書チェーンを検証し、必要に応じて TCB Info、QE Identity、PCK CRL などのコラテラルを取得して、プラットフォーム TCB レベルと失効ステータスを確認します。

Quote が本物であることを検証します。

測定レジスタの読み取りと拡張

MRTD と RTMR[0-3] を読み取り、ACPI CCEL イベントログを解析し、比較のために RTMR[0-3] に対してリプレイし、カスタム測定値を RTMR[2] と RTMR[3] に拡張します。

ブートチェーンの完全性を検証し、アプリケーション層のイベントを測定に含めます。

OpenAnolis コミュニティは、go-tdx-guest で tdx-lab コマンドラインツールを提供しています。そのテストケースは、上記の 4 つの機能に対応しています。以降の手順では、それらのテストケースの実行方法を説明します。

  1. ツールを取得し、ビルドします。

    sudo yum install -y git golang
    git clone https://gitee.com/anolis/go-tdx-guest.git
    cd go-tdx-guest/tools/tdx-lab
    GOPROXY='https://goproxy.cn,direct' go build -o tdx-lab .
    説明

    Debian および Ubuntu イメージの場合は、代わりに sudo apt install -y git golang-go を実行します。

  2. インスタンスが存在するリージョンの Alibaba Cloud PCCS アドレスを取得します。

    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)
    PCCS_HOST=sgx-dcap-server-vpc.${region_id}.aliyuncs.com
  3. テストケースを実行します。

    # すべてのテストケースを実行
    ./tdx-lab --skip-early --pccs-url ${PCCS_HOST}
    説明

    TCB ステータスが UpToDate であることは保証されていないため、一部のシナリオで Strict Tcb Check が失敗することが想定されています。完全なパラメーターリストと各テストケースの説明については、「tools/tdx-lab/README.md」をご参照ください。

サポートされているリージョン、インスタンスタイプ、イメージ

リージョンとインスタンスタイプの制限

機密コンピューティングは、特定のゾーンでのみ利用可能です。サポートされているインスタンスタイプは、ゾーンによって異なります。

リージョンとゾーン

インスタンスタイプ

中国 (北京) ゾーン L

ecs.g8i.xlarge 以上

中国 (北京) ゾーン I

  • ecs.g8i.xlarge 以上

  • ecs.g9i.xlarge、ecs.c9i.xlarge、ecs.r9i.xlarge 以上

  • ebmg8i インスタンスファミリー

中国 (杭州) ゾーン 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 インスタンスは、CPU レジスタとメモリデータが CPU ハードウェアによって暗号化されるため、通常のインスタンスよりもパフォーマンスが低下する場合があります。

  • RTMR のリセット、割り込み保護、およびレジスタ状態の回復により、TDX インスタンスは OS 内での再起動をサポートしていません。OS 内で reboot コマンドを実行することはできません。

  • VNC ログオンはサポートされていません。代わりに、Workbench またはサードパーティ製クライアント経由で SSH を使用してください。ランタイムログについては、「インスタンスシステムログとスクリーンショットの表示」または「GetInstanceConsoleOutput」をご参照ください。

  • イメージの制限事項:

    • UEFI イメージのみがサポートされています。

    • Windows はサポートされていません。

    • 古いカーネルを使用したイメージはサポートされていません。カーネルバージョンは 5.10.134-16.al8.x86_64 以降である必要があります。

  • eRDMA および各種アクセラレータはサポートされていません。

  • Linux ゲストカーネル SWIOTLB バッファに関する既知の問題:

    • 通常のインスタンスと比較して、OS から認識できるメモリが少なくなります。TDX インスタンスは、周辺機器との通信用に暗号化されていないメモリ (SWIOTLB) を予約します。デフォルトでは、この領域は利用可能なメモリの 6% で、最大 1 GiB です。

    • 大規模なインスタンスに複数の Elastic Network Interface (ENI) をアタッチすると、マルチキューネットワークカードの環境では SWIOTLB メモリが不足し、クラッシュする可能性があります。コンソールでインスタンスを停止し、ENI をデタッチして回復してください。

    • 高 I/O ワークロードでは、SWIOTLB が不足してパフォーマンスが低下する可能性があります。次のコマンドで確認してください。

      dmesg| grep 'swiotlb buffer is full'
      重要

      SWIOTLB の設定が正しくない場合、起動に失敗する可能性があります。作業を進める前にスナップショットを作成して、エラーが発生した場合にロールバックできるようにしてください。

      この問題が発生した場合は、SWIOTLB サイズを増やしてください。

      • SWIOTLB サイズを 1 GiB に設定します。

        grubby --update-kernel=ALL --args=swiotlb=524288
      • 5.10.134-18.al8.x86_64 より後のカーネルバージョンでは、より大きな SWIOTLB サイズをサポートするために any パラメーターを追加します:

        grubby --update-kernel=ALL --args=swiotlb=2097152,any   # SWIOTLB を 4 GiB に設定します。
        説明

        SWIOTLB パラメータ値の計算:目標サイズ (MiB 単位) × 512。詳細については、「The kernel's command-line parameters」をご参照ください。

ベストプラクティス

TDX 機密コンピューティング環境に関する詳細なガイダンスについては、特定のビジネスシナリオに基づいて、以下のベストプラクティスをご参照ください。これらのリソースでは、アプリケーションの構築、ディスク保護、コンテナ化されたデプロイメント戦略について説明しています。