AWS Nitro Enclaves
EC2 インスタンス内に分離された仮想マシンを作成し、暗号化証明 (Attestation) と KMS 統合により機密データを安全に処理するための機能
概要
AWS Nitro Enclaves は、EC2 インスタンスの CPU とメモリの一部を切り出して完全に分離された仮想マシン (Enclave) を生成する機能です。Enclave にはネットワークインターフェースもストレージも持たず、親インスタンスとの通信は vsock という仮想ソケットに限定されるため、管理者であっても内部のデータに直接アクセスできません。暗号化証明 (Attestation) ドキュメントを KMS の条件キーとして利用することで、特定の Enclave イメージだけが復号鍵を取得できる仕組みを構築でき、PII 処理や金融データの暗号演算など高い機密性が求められるワークロードに適しています。
Nitro Hypervisor の分離モデルがもたらす信頼境界の再定義
従来のセキュリティモデルでは、OS やハイパーバイザーの管理者はメモリ上のデータにアクセスできる前提で設計されていました。Nitro Enclaves はこの前提を覆し、親インスタンスの OS からも隔離された実行環境を提供します。Enclave は Nitro Hypervisor によって直接管理され、親インスタンスのカーネルやドライバーとは独立したメモリ空間で動作します。外部ネットワークへの接続は一切なく、親インスタンスとの唯一の通信経路は vsock (Virtio Socket) です。この設計により、たとえ親インスタンスが侵害されたとしても、Enclave 内のデータは保護されます。Azure では Confidential Computing が類似の機密計算機能を提供していますが、Nitro Enclaves は既存の EC2 インスタンスに追加する形で利用でき、専用ハードウェアの調達が不要な点が実務上の導入障壁を下げています。Enclave の起動には nitro-cli ツールを使い、Docker イメージから Enclave Image File (EIF) をビルドして実行するワークフローが標準です。
Attestation と KMS 条件キーで実現するゼロトラスト復号
Nitro Enclaves の核心は暗号化証明 (Attestation) にあります。Enclave が起動すると、Nitro Hypervisor が Enclave イメージの PCR (Platform Configuration Register) 値を含む署名付き Attestation ドキュメントを生成します。PCR0 はイメージのハッシュ、PCR1 はカーネルのハッシュ、PCR2 はアプリケーションのハッシュを表し、これらの値が改ざんされていないことを暗号的に証明します。KMS のキーポリシーに kms:RecipientAttestation:PCR0 などの条件キーを設定すると、指定した PCR 値に一致する Enclave だけが Decrypt API を呼び出せるようになります。つまり、正規のコードが正規の環境で動いている場合にのみ復号が許可される「ゼロトラスト復号」が実現します。機密計算の関連書籍 (Amazon) では、Attestation ベースの鍵管理パターンが詳しく解説されています。実務では、CI/CD パイプラインで EIF をビルドし、その PCR 値を自動的に KMS ポリシーに反映する仕組みを構築することで、デプロイのたびに手動でポリシーを更新する手間を排除できます。
PII 処理と金融ワークロードにおける実装パターン
Nitro Enclaves の代表的なユースケースは、個人識別情報 (PII) のトークナイゼーションと金融データの暗号演算です。PII 処理では、親インスタンスが暗号化された個人情報を vsock 経由で Enclave に送信し、Enclave 内で KMS から復号鍵を取得してデータを復号・処理した後、トークン化された結果だけを親インスタンスに返します。この設計により、平文の PII が親インスタンスのメモリやディスクに一切残りません。金融分野では、HSM (Hardware Security Module) の代替として暗号鍵の演算に利用されるケースがあります。ACM for Nitro Enclaves を使えば、SSL/TLS 証明書の秘密鍵を Enclave 内に閉じ込めた状態で Web サーバーを運用でき、秘密鍵の漏洩リスクを大幅に低減できます。Enclave のリソース割り当ては親インスタンスの CPU コアとメモリから切り出す形になるため、親インスタンスのサイジングでは Enclave 分のリソースを上乗せして計画する必要があります。Nitro Enclaves は Nitro ベースのインスタンスであれば追加料金なしで利用でき、コスト面での導入障壁が低い点も実務上の利点です。