機密コンピューティング - AWS Nitro Enclaves で処理中のデータを隔離保護する

AWS Nitro Enclaves を使った機密データの隔離処理を解説。暗号化アテステーション、KMS 統合、PII 処理・暗号鍵管理のユースケースを紹介します。

機密コンピューティングの必要性

従来のセキュリティモデルでは、データの保護は保存時 (at rest) と転送時 (in transit) の暗号化で実現されてきました。しかし、データを処理する際には復号してメモリ上に展開する必要があり、この「処理中のデータ」が攻撃対象になります。OS やハイパーバイザーの脆弱性、メモリダンプ、サイドチャネル攻撃などにより、処理中のデータが漏洩するリスクがあります。Nitro ベースの EC2 インスタンス (C5、M5、R5 以降) で利用可能な AWS Nitro Enclaves は、EC2 インスタンス内に完全に隔離された仮想マシン (Enclave) を作成し、機密データの処理を外部からアクセス不能な環境で実行する機密コンピューティングサービスです。Enclave は Nitro Hypervisor によって親インスタンスから完全に隔離され、ネットワーク接続、永続ストレージ、SSH アクセス、外部からのメモリアクセスが一切ありません。AWS のオペレーターを含む誰もが Enclave 内のデータにアクセスできません。

Enclave の仕組みとアテステーション

Enclave は親 EC2 インスタンスの vCPU (最大で親の半分) とメモリの一部を分割して作成されます。親インスタンスとの通信は vsock (仮想ソケット) のみに限定され、TCP/IP ネットワークは使用できません。アプリケーションは Docker イメージとして Enclave にデプロイし、Nitro CLI で起動します。暗号化アテステーション (Attestation) は Enclave の整合性を検証する仕組みです。Enclave の起動時に、Nitro Hypervisor が Enclave のイメージ (コード、設定) のハッシュ値を含むアテステーションドキュメントを生成します。このドキュメントは AWS Nitro Attestation PKI で署名されており、Enclave が改ざんされていないことを暗号学的に証明します。KMS はアテステーションドキュメントを検証し、特定の Enclave イメージでのみ復号可能な暗号鍵ポリシーを適用できます。

ユースケースと KMS 統合

Nitro Enclaves の主なユースケースは、 PII (個人情報) の処理です。医療データ、金融データ、個人識別情報を Enclave 内で処理し、集計結果のみを親インスタンスに返すことで、生データの漏洩リスクを排除します。暗号鍵の管理では、 CloudHSM の代替として Enclave 内で暗号鍵を生成・使用し、鍵が Enclave 外に出ないようにします。 KMS との統合では、 KMS キーポリシーに Enclave のイメージハッシュ (PCR 値) を条件として設定します。これにより、特定のコードが動作する特定の Enclave でのみ KMS キーを使用でき、親インスタンスが侵害されても KMS キーへのアクセスが不可能になります。マルチパーティ計算では、複数の組織がそれぞれのデータを Enclave に送信し、 Enclave 内で共同計算を実行して結果のみを返すパターンに活用できます。追加料金は不要で、 EC2 インスタンスの料金のみで利用できます。 Nitro Enclaves のベストプラクティスを網羅的に学ぶなら、技術書 (Amazon)を参照してください。

Nitro Enclaves の料金

Nitro Enclaves 自体に追加料金は発生しません。コストは Enclave に割り当てる vCPU とメモリの分だけ、親インスタンスのリソースが減少する点です。例えば m5.2xlarge (8 vCPU、32 GB) で Enclave に 2 vCPU、8 GB を割り当てると、親インスタンスは 6 vCPU、24 GB で動作します。Enclave 用に大きいインスタンスを選択する必要がある場合、そのインスタンス料金の差額が実質的なコストです。KMS との統合で使用する KMS キーの料金 (月額 1 ドル/キー) も発生します。

処理中データの保護という領域

データの保護は、保存時の暗号化と通信時の暗号化が一般的ですが、処理中のデータには見落としがちな隙があります。データはメモリ上で処理される際、平文の状態になり、そのサーバーに広い権限を持つ者からは見えうる状態になります。機密コンピューティングは、この処理中のデータを保護する第三の領域に対応します。Nitro Enclaves は、通常の処理環境から隔離された専用の領域を作り、そこで機密データを扱います。隔離された領域には、親のインスタンスからもアクセスできないため、処理中であってもデータの機密性を保てます。保存・通信・処理のすべての段階を守る発想です。

導入の考慮と制約

Nitro Enclaves は強力な保護を提供しますが、その隔離性ゆえの制約を理解して使う必要があります。隔離された領域は、永続的なストレージを持たず、外部のネットワークにも直接つながりません。親インスタンスとの間は、限定された安全な通信路だけでやり取りします。そのため、扱うのは機密性が特に重要な処理に絞り、それ以外は通常の環境で処理する設計にします。アテステーションという仕組みで、正しい隔離環境であることを検証してから鍵を渡すことで、信頼の連鎖を確立します。制約を前提に、本当に保護すべき処理を見極めて適用することが、効果的な活用につながります。

まとめ - Nitro Enclaves の活用指針

AWS Nitro Enclaves は、処理中のデータを完全に隔離保護する機密コンピューティングサービスです。Nitro Hypervisor による隔離、暗号化アテステーション、KMS 統合による暗号鍵の保護が主な強みです。PII の処理、暗号鍵の管理、マルチパーティ計算など、処理中のデータの保護が規制やセキュリティポリシーで求められるユースケースに適しています。追加料金なしで利用でき、既存の EC2 ワークロードに Enclave を追加する形で導入できます。