AWS Nitro Enclaves

EC2 インスタンス内の高度な機密情報の保護をさらに改善する、追加の分離機能を作成

AWS Nitro Enclaves では、高度な機密情報の保護や安全措置を向上する、分離されたコンピューティング環境を、お客様が作成することができます。これにより、Amazon EC2 インスタンスに保存する、個人が特定可能な情報 (PII) 、医療、金融、知的財産データなどに対応します。Nitro Enclaves では、EC2 インスタンスで CPU とメモリの分離を行っているのと同じ、Nitro Hypervisor テクノロジーを採用しています。

Nitro Enclaves は、最も機密性の高いデータを処理するアプリケーションにおいて、お客様が攻撃対象領域を削減するのに役立ちます。Enclaves は、重要機密を扱うアプリケーションをホストするための、強力かつ分離され、高度な強制力を持つ環境を提供します。Nitro Enclaves には、ソフトウェア用の暗号化証明書が含まれています。これにより、認証のあるコードだけが正確に実行されるようにできます。同時に、AWS Key Management Service との統合も行え、自身のエンクレーブからのみ機密情報にアクセスできるようにします。

Amazon EC2 インスタンスの使用、および Nitro Enclaves で利用するその他の AWS のサービスの使用以外に、AWS Nitro Enclaves の使用に追加料金はかかりません。

Nitro Enclaves の紹介
AWS Nitro Enclaves の概要
AWS コンフィデンシャルコンピューティングで使用中の機密データを保護

メリット

追加的分離とセキュリティ

エンクレーブは完全に分離された仮想マシンで、強化され、高度に制約されています。エンクレーブに永続的なストレージ、インタラクティブなアクセス、外部ネットワークはありません。お客様のインスタンスとエンクレーブの間の通信は、安全なローカルチャネルを通じて行われます。インスタンスの root ユーザーまたは管理者ユーザーでさえ、エンクレーブにアクセスしたり、SSH で接続したりすることはできません。

Nitro Enclaves は、実績のある Nitro Hypervisor の分離を使用して、エンクレーブの CPU とメモリを、親インスタンス上のユーザー、アプリケーション、およびライブラリからさらに分離します。これらの機能が、エンクレーブとお客様のソフトウェアの分離を助けるので、攻撃対象領域を大幅に削減できます。

暗号化証明

Attestation では、エンクレーブの ID を検証し、認証されたコードのみがエンクレーブ内で正確に実行されるようにすることができます。証明プロセスは、Nitro Hypervisor を通じて完了され、提供されるエンクレーブに関する署名付きの証明ドキュメントが、外部のパーティーやサービスに対し ID を保証します。証明ドキュメントには、エンクレーブの公開キー、エンクレーブイメージとアプリケーションのハッシュ、その他の、主要な詳細情報が記載されます。Nitro Enclaves は AWS KMS との統合も含まれ、KMS において、エンクレーブが送信した証明ドキュメントの読み込みと検証が可能です。

柔軟性

Nitro Enclaves には柔軟性があります。エンクレーブの作成には、CPU コアとメモリに関する多様な組合せが使えます。これにより、現在 EC2 インスタンスで実行しているのと同じメモリおよび計算量の多いアプリケーションを、同様に実行するための十分なリソースが確保できます。Nitro Enclaves はプロセッサに依存せず、さまざまな CPU ベンダーが提供するインスタンス間で使えます。また、プログラミング言語やフレームワークとも互換性があります。さらに、Nitro Enclaves の多くのコンポーネントはオープンソースであるため、お客様はコードを検査して自分で検証することもできます。

仕組み

Nitro Enclaves の仕組み

図 1: Nitro Enclaves の仕組みプロセスフロー

図 2: Nitro Enclaves では、EC2 インスタンスにおいて CPU とメモリの分離を行っているのと同じ、Nitro Hypervisor テクノロジーが採用されています。これにより、Enclave と EC2 インスタンスの分離が実現されています。

図 3: エンクレーブは、親インスタンスと呼ばれる EC2 インスタンスの CPU とメモリをパーティション化することによって作成されます。エンクレーブの作成には、CPU コアとメモリに関する多様な組合せが使えます。上記は、親インスタンス (14 vCPU、32 GiB メモリ) とエンクレーブ (2 vCPU、32 GiB メモリ) に分割された m5.4xlarge を使用した例です。親インスタンスとエンクレーブ間の通信は、vsock と呼ばれる安全なローカル接続を介して行われます。

ユースケース

プライベートキーの保護

お客様は、エンクレーブでプライベートキー (SSL/TLS など) を分離して使用できるようになった一方、親インスタンス上のユーザー、アプリケーション、およびライブラリからこのようなプライベートキーを表示できなくなりました。通常、このようなプライベートキーはプレーンテキストで EC2 インスタンスに保存されます。

Nitro Enclaves 用の AWS Certificate Manager (ACM) は、AWS Nitro Enclaves を使って Amazon EC2 インスタンスで実行されているウェブアプリケーションおよびサーバーで、パブリックおよびプライベート SSL/TLS 証明書を使用できるようにするエンクレーブアプリケーションです。

トークン化

トークン化は、クレジットカード番号や医療データなどの機密性の高いデータをトークンに変換するプロセスです。Nitro Enclaves を使用すると、お客様はこの変換を行うアプリケーションをエンクレーブ内で実行できます。暗号化されたデータはエンクレーブに送信され、そこで復号化されてから処理されます。親 EC2 インスタンスは、このプロセス全体を通じて機密データを表示またはアクセスできなくなります。

マルチパーティー計算

Nitro Enclaves の暗号認証機能を使用して、お客様はマルチパーティー計算をセットアップできます。これにより、実際のデータを個々の関係者に開示または共有することなく、複数の関係者が参加して機密性の高いデータを処理できます。同じ組織内でマルチパーティー計算を実行して、職務の分離を確立することもできます。

お客様事例