re:Invent 2024: AWSのConfidential Computing機能と実践的ユースケース
はじめに
海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!
📖 AWS re:Invent 2024 - Protect sensitive data in use with AWS Confidential compute (CMP324)
この動画では、AWSのConfidential Computing機能について、AWS Nitro SystemとNitro Enclavesを中心に解説しています。AWS Nitro Systemは、EC2の仮想化基盤として10年以上かけて開発され、オペレーターアクセスを完全に排除する保護機能を提供します。また、Nitro Enclavesは、機密データを処理する分離された環境を提供し、AWS KMSと連携して暗号化キーの管理を実現します。1Passwordのユースケースでは、5人のチームがNitro Enclavesを活用して12倍のパフォーマンス向上を達成した事例が紹介されています。さらに、AdTechでのトークン化や、複数者間コラボレーション、AIモデルでの機密データ処理など、実践的なユースケースについても詳しく解説されています。
※ 画像をクリックすると、動画中の該当シーンに遷移します。
re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!
本編
AWS Confidential Computeセッションの概要
おはようございます。re:Inventへようこそ。そして「AWS Confidential Computeによる使用中の機密データの保護」というセッションにお越しいただき、ありがとうございます。私はAWSのConfidential Compute事業を担当しているArvindです。本日は、Principal Product ManagerのWilliam Yapと、1PasswordのエンジニアリングリーダーであるAndrew Niculescuと共同でプレゼンテーションを行います。始める前に、今朝この時間を私たちのセッションに割いていただいた皆様に感謝申し上げます。re:Inventのような大規模なイベントでは、多くの選択肢がある中で私たちのセッションを選んでいただき、本当にありがとうございます。
クラウドジャーニーのどの段階にいらっしゃるにせよ、機密データを扱うアプリケーションを構築されているビジネスの方で、そのデータを処理中も保護するメカニズムをお探しの方は、まさに適切なセッションにお越しいただきました。本日の内容についてお話しさせていただきます。まず、Confidential Computingとその様々な側面について、私たちの見解を共有させていただきます。次に、EC2の仮想化の基盤であるNitro Systemと、オペレーターアクセスを完全に排除する保証についてお話しします。さらにAWS Nitro Enclavesについて詳しく説明し、その頃には、まさにLas Vegasにふさわしく「Enclaveで起こることは、Enclaveの中に留まる」ということを学んでいただけるでしょう。
その後、話題を変えて、お客様である1Passwordから、Nitro EnclavesとAWS Confidential Compute機能を活用してソリューションを構築した journey についてお話しいただきます。続いて、人気のユースケースについて説明します。2024年ですので、人気のユースケースが何かは想像に難くないでしょう。AIとConfidential Computingの交点について、そして私たちがお客様のソリューション構築をどのように支援しているかについてお話しします。最後に、Confidential Computeについてさらに学べるリソースや、私たちが用意したその他のワークショップについてご紹介して締めくくります。
Confidential Computingの定義と重要性
Confidential Computingについての私の見解を共有する前に、このトピックをご存知の方がどれくらいいらっしゃるか確認させてください。すでにConfidential Computeを使用してソリューションを構築されている方、あるいは検討されている方は、手を挙げていただけますでしょうか?以前より明らかに多くの手が挙がりましたね。最前列の方々は使用されているのに手を挙げていないことも分かっています。以前は小さなグループだけが取り組んでいて、私はそれを「カルト」と呼んでいましたが、今では大きな「部族」に成長しています。このトピックはますます一般的になり、注目を集めています。
AWSにおけるConfidential Computeに対する私たちの見解は、専用のハードウェアと関連ファームウェアを使用して、使用中のデータを不正アクセスから保護することと定義しています。ここでの重要なポイントは、使用中のデータの保護です。データの扱い方を振り返ってみると、すべての操作は3つに分類できます:データの保存、データの移動、そしてデータの処理です。保存中や転送中のデータを保護するメカニズムは長年存在し、成熟したプロセスとなっています。Confidential Computingにより、使用中のデータを保護する機能が追加され、データの保存、移動、処理の全段階でデータを保護する包括的な機能が提供されることになります。お客様やパートナーとの対話を通じて、Confidential Computingについて語る際に最も重視される2つのセキュリティとプライバシーの側面が明らかになりました。1つ目の側面は、お客様のコンテンツ、コード、データを、この場合はAWSというクラウドプロバイダーのオペレーターから確実に保護することです。
2つ目の側面は、お客様が取り扱う機密性の高いコードやデータを隔離し、自分たち自身からさえも保護したいというケースです。これには、お客様側の管理者レベルのユーザーや、不正にデータにアクセスしようとする管理者を装った悪意のある人物からの保護も含まれます。まとめると、Confidential Computingとは、使用中のデータを2つの対象から保護することです:1つ目は私たち(AWS)から、2つ目はお客様自身からです。
すべてのデータが同じように作られているわけではありませんし、同じように扱う必要もありません。無害なデータもあれば、機密性の高いデータもあります。Confidential Computingについて語るとき、多くの場合は既存の保護に加えて、さらなる保護が必要な機密データについて話しています。画面には、お客様がConfidential Computingアプリケーションを構築する際に重要視するデータタイプの例が表示されています。これには、社会保障番号、メールアドレス、実際の住所などの個人を特定できる情報(PII)が含まれます。その他の機密データには、トランザクションの署名やデータの復号化に使用する暗号化キー、保護が必要な医療情報、残高や電子資産、暗号通貨などの金融情報、そして最後に知的財産が含まれます。知的財産には、機械学習モデル、半導体回路、デバイスモデル、あるいはエミュレーションやライセンス供与時に保護が必要な企業の機密情報などが該当します。
ここで、Confidential Computingの活用について重要な点を強調させていただきたいと思います。Confidential Computingの検討を始める際は、2つの質問を自分に投げかけることをお勧めします:何を保護するのか、そして誰から保護するのか?これらの質問への回答が、皆様の選択の指針となります。これまでConfidential Computing、その異なる側面、保護の対象、そして何を保護するのかについて説明してきました。AWSでは、AWS Nitro SystemとNitro Enclavesという2つのソリューションを提供しています。 AWS Nitro Systemは、最新のEC2インスタンスを支える仮想化の基盤です。Nitro Systemでは、オペレーターアクセスを完全に排除することで、デフォルトで第1の側面に対応しています。Nitro Enclavesでは、データを安全に処理し、お客様自身からも隔離できる独立したコンピューティング環境を提供することで、第2の側面に対応しています。
AWS Nitro Systemの仕組みと進化
では、Nitro Systemとは何かを詳しく見ていきましょう。先ほど述べたように、Nitro SystemはEC2の仮想化の基盤です。これを理解するには、時間を遡る必要があります。これはEC2の仮想化インフラを再構築した10年に及ぶ取り組みの歴史です。 Nitro Systemを理解するには、まず従来の仮想化がどのようなものだったかを理解する必要があります。画面に表示されている従来の仮想化の図は、AWS以外の世界中の大規模な本番環境の仮想化デプロイメントの大半で、現在でも使用されている方式を示しています。10年前、これは私たちにとっても最先端の技術であり、うまく機能していました。しかし、私たちはさらなる改善の余地がないか検討しました。パフォーマンス、リソース利用率の配分、セキュリティの強化など、さまざまな角度から検討を行いました。これらの課題に対応するため、従来の仮想化スタックから特定の要素を抽象化することを決定しました。先ほど言及したパフォーマンス、リソース利用率、セキュリティについてです。
このホストを見ると、上部にある小さなオレンジ色のボックスであるVMがたくさんあり、XenハイパーバイザーがこれらのVM内のすべての仮想化機能を制御しています。そして、ネットワーキング、EBSストレージ、ローカルストレージ、メンテナンス、モニタリング、セキュリティなど、多くの仮想化機能があり、これらはすべてDom0に接続されています。
私たちは仮想化機能をホストから分離することを決定しました。 まず、ネットワーク機能を移行してその効果を確認したところ、非常にうまく機能しました。汎用CPUが処理するトラフィックを削減し、リソースを解放することができました。同時に、特定の機能をホスト自体から分離し始めることもできました。 次にEBSストレージを移行し、その後インスタンスストレージも移行しました。最後に、すべての管理タスクをホストからNitroと呼ばれる別のボックスに移行しました。これらはすべてカスタムシリコンで実行され、ホストとは別のボックスに搭載された個別のPCカード上で運用されています。
これにより、汎用CPUリソースをVMのみに割り当てるという最初の目標を達成しました。図を見ると、Dom0が不要になっているのがわかります。また、必要以上の機能を持つXenのような汎用ハイパーバイザーも必要なくなりました。そこで、両方を取り除き、Nitroハイパーバイザーと呼ばれる独自のカスタムハイパーバイザーを作成しました。これは汎用のXenハイパーバイザーよりもはるかに軽量で、システムに組み込まれています。これにより、ホストCPU上にはVMと軽量なハイパーバイザーだけが存在することになりました。すべてのリソースを解放し、VM自体により多くのリソースを割り当てることができるようになりました。
また、AWSが管理する仮想化機能をすべてホストから取り除き、別のボックスに移行することで、セキュリティ分離という重要な目標も達成しました - つまり、完全にホストから自分たちを切り離したのです。これがNitro Systemによる分離の仕組みです。Nitro Systemは実際には3つのコンポーネントで構成されています。 まず、カスタムシリコンで実行される仮想化機能を担当し、ホストから切り離して別のボックスのカードに搭載されたNitroカードがあります。次に、Nitroセキュリティチップがあり、これによってNitroボックスでハウスキーピングを処理するNitroコントローラーカードがシステムにトラストルートをマッピングできます。システム起動時、Nitroセキュリティチップが介入してシステムをリセット状態に保持し、Nitroコントローラーがホストの不揮発性コンポーネントからすべてのコードを検証し、信頼できるコードのみが起動するようにします。最後に、メモリとCPUの割り当てとリングフェンシングのみを担当する、薄く軽量なNitroハイパーバイザーがあります。
ハイパーバイザーが非常に軽量なため、ベアメタルに近いパフォーマンスを提供できるようになりました。同じタイプのインスタンスとベアメタルインスタンスを比較して実行すると、パフォーマンスの差はごくわずかです。このように、Nitro Systemによって、より優れたパフォーマンス、より効率的なリソース利用、そして強化されたセキュリティを実現しました。分離を行うことで、デフォルトでディメンション1からのディメンション保護を提供します。また、他の重要な機能も備えています。NitroTPM(Trusted Platform Module)は、 インスタンスの状態を収集して証明し、プラットフォームのアイデンティティを証明することができます。また、本日後ほど詳しく説明するNitro Enclavesという機能もあり、これによってデータを安全に処理するための分離されたコンピューティング環境を構築することができます。
Nitro SystemがAWSにおけるConfidential Computingの基盤であることを理解することが重要です。 現在NitroベースのEC2インスタンスを実行している場合、すでに意識することなくConfidential Computingを活用しています。これはデフォルトで常時オンのConfidential Computingであり、オペレーターによるアクセスは一切ありません。現在NitroベースのEC2インスタンスを実行していて、AWSオペレーターからコードやデータを保護することが懸念事項である場合、すでに万全の状態です。追加の作業は必要なく、EC2インスタンスを起動するだけでConfidential Computeを活用できています。
デフォルトで分離が提供されています。SSHや一般的なアクセスは一切ありません。私たちにとって、すべての運用タスクは認証され、承認され、ログが記録され、監査された管理APIを通じてのみ実行され、これらのAPIはお客様のデータへのアクセスを一切提供しません。これらの保護機能はCPUだけでなく、 すべてのAI/MLアクセラレーターにも適用されます。推論ベースのインスタンス、トレーニングベースのインスタンス、そして異なるベンダーのGPUなど、すべてのアクセラレーテッドコンピューティングインスタンスは、Nitroスタックの上に構築されているため、同じ機能を活用しており、提供する内容は一貫しています。
ここでの説明を締めくくる前に、Attestationについて触れたいと思います。 Attestationは、Confidential Computingにおいて非常に重要な概念で、本日さらに詳しくお話しする予定です。EC2インスタンスには、NitroTPM(Nitro Platform Module)と呼ばれるデバイスが搭載されており、これはTPM 2.0仕様に準拠したEC2インスタンスに接続されているものです。これにより、Measured Bootを実行し、システムのアイデンティティとインスタンスのアイデンティティを他のパーティに証明するための暗号化されたAttestationを実行することができます。Measured Bootでは、NitroTPMから署名されたPCR値を取得し、それを使用してシステムのブートコードの整合性を証明することができます。
これで主要な概念を理解し、共通の認識を持つことができましたので、これからNitro Enclavesとより深い概念についてお話を聞いていただきます。 私たちはNitro Systemのセキュリティ設計に関するWhitepaperを公開しており、このトピックについて詳しく説明しています。第三者の視点については、NCC Groupが公開したレポートがあり、Nitro Systemのセキュリティ設計について議論し、オペレーターアクセスなしという私たちのセキュリティ主張を損なうようなギャップがないことを確認しています。さらに一歩進んで、デフォルトでオペレーターアクセスがないことをService Termsに反映させました。現在Nitroベースのインスタンスをご利用の場合、これが第一の次元に対する私たちの対応方法です。
Nitro Enclavesの概要と1Passwordの活用事例
ここで、第二の次元とNitro Enclavesについてより深く掘り下げるため、William Yapをステージにお招きしたいと思います。Nitro Systemは、デフォルトで常時オンを実現するという原則のもと、ハードウェア、ソフトウェア、ファームウェアを構築してきた10年以上の開発の成果を表しています。 私はWilliam Yapと申します。AWSのConfidential Computingのリードプロダクトマネージャーを務めており、Nitro Enclavesのリードも担当しているため、ゼロからの構築に携わってきました。本日は、過去を振り返り、当時の製品に関する決定について考え、また、Nitro Enclavesの未来についても見ていきたいと思います。
それでは始めましょう。 AWSでは、お客様との対話を大切にしています。お客様とお話しし、お客様の声に耳を傾けることを私たちは大切にしており、もしまだご存じない方は、今週末までにはきっとお分かりいただけると思います。 この取り組みを始めた時、私たちはお客様が何を求めているのかを尋ねました。ArvindがすでにAWSのオペレーターがアクセスできない境界について説明しましたが、お客様としては、そこでワークロードを実行する必要があります。お客様自身のユーザー、自身で書いたソフトウェアコード、書いていないコード、サードパーティのライブラリなどを配置することになります。
私たちが発見したのは、顧客が自身のデータ、特にヘルスケアデータや社会保障番号、金融データなどの非常にセンシティブなデータを持ち込む際、データが処理のために復号化される環境を自身の環境から分離したいと考えているということです。これこそがNitro Enclavesが解決している問題です。 Nitro Enclavesを使用すると、EC2インスタンスを信頼された環境と信頼されていない環境に分割することができます。信頼された環境がEnclaveであり、そこに暗号化されたデータを送信すると、Enclaveのみがそれを処理のために復号化でき、その他すべてはEC2インスタンス内に残ります。EnclaveはCPUとメモリの分離を備えており、インスタンスからはデフォルトでアクセスやメモリダンプを実行することができず、インスタンスの管理者であってもSSHの仕組みはありません。これがNitro Enclavesによって得られる分離です。
AWS Nitro Enclavesの特徴とメリットについてお話ししましょう。 追加の分離とセキュリティに関して、保護されたEnclaveを手に入れることができます。これはコンテナではなく、強化された制約のある分離された仮想マシンです。EC2インスタンスとは異なり、意図的に多くの機能が省かれています。EBSもなく、ストレージもなく、ネットワーキングもありません - そこにTCPはありません。これはすべて、Enclaveの攻撃対象領域を減らすための設計です。Enclaveには最小限のコードを配置し、それが正しいコードであることを確認し、必要な機密処理を行うべきです。
2018年から2019年にかけてNitro Enclavesを検討していた際、多くの顧客に必要な機能について話を聞いていました。繰り返し出てきたテーマの1つが柔軟性でした。特にいくつかのカテゴリーにおいてです。まず、センシティブなワークロードを実行している顧客はプロセッサーのオプションを求めていました - Intelで実行したい人もいれば、ARM系のGravitonや、AMDで実行したい人もいて、中にはすべてで実行したい人もいました。そこで、私たちはNitro Enclavesを、Intel、AMD、Gravitonプロセッサーをサポートする大多数のNitroベースのEC2インスタンスで利用できるようにしました。
柔軟性の2つ目の側面は、顧客がCPUやメモリの制約なく、多数のCPUコアを実行したいと望んでいたことでした。これは非常に重要でした。なぜなら、当時の既存技術は非常に制限されており、1つのコアと最小限のメモリしか提供していなかったからです。これは実際の本番環境で実行されるエンタープライズクラスのワークロードには対応できませんでした。私たちは、最大のEC2インスタンスを使用し、10、20、30、あるいは50のCPUコアを割り当ててEnclaveを作成できるソリューションを構築することで、メモリ割り当ても同様に柔軟な解決策を提供しました。
Attestationについて説明しましょう。次のように考えてみてください:分離された安全な計算環境があり、暗号化された機密データをEnclaveに送信したいとします。送信する前に、そのEnclaveが本当に自分のものなのか、EnclaveAが実際にEnclaveAなのか、そして配置したコードが変更されることなく正確に実行されているのかを確認する必要があります。これがAttestationが役立つところです。Nitro Enclavesには、Enclaveイメージのハッシュを含む、Enclaveのプロパティに関するハッシュを含むAttestationドキュメントを生成する機能があります。これは特に1Passwordのユースケースにとって重要なポイントですので、覚えておいてください。
Enclaveを作成する際には、入力としてEnclaveイメージ(つまりあなたのソフトウェア)が必要で、これによってPCR0と呼ばれるハッシュが生成されます。PCRは業界用語でPlatform Configuration Registersの略です。重要なのは、コードを1行でも変更すると、そのハッシュが変わってしまうということです。Attestationドキュメントには、親インスタンスに関する様々な特性などが含まれています。Attestationを活用したいというお客様は、このAttestationをご自身のKey Management Serviceに送信してファイルを復号化する必要がありました。 多くのお客様がAttestationドキュメントの生成とKey Management Systemとの連携という同じ課題に取り組んでいることに気づき、これはAWSがお客様に代わって解決すべき課題だと判断しました。そこで、Nitro EnclavesがAWS KMSと緊密に連携できるよう、多大な努力を投じました。この連携により、EnclaveがAttestationドキュメントを生成してAWS KMSに送信すると、AWS KMSはそのAttestationドキュメントを処理できるようになりました。
AWS KMSは、Attestationドキュメントを読み取り、ハッシュを設定したKMSキーポリシーと照合することができます。KMSキーポリシーに正しい値を設定すれば、KMSがその検証を行います。Nitroハイパーバイザーによって適切に署名されていることを確認し、検証プロセスを完了させ、データキーを復号化して、機密性の高い処理を実行できるようにします。このKMSとの緊密な連携により、AWSでのConfidential Computingの実用的な活用が可能になり、多くのユースケースが実現されました。
大まかに言うと、ユースケースは以下の通りです。復号化、トークン化、マスキング、推論など、自分の環境から分離したい処理は、すべてEnclaveに配置します。これは非常に大まかな説明ですが、後ほどユースケースについて詳しく説明する際に、より詳細をお話しします。Nitroの柔軟性、KMSとの緊密な連携、そして幅広い機能により、私たちはNitro Enclavesがどのように使われるかについてある程度の予想を持っていました。しかし、現在の活用状況は私たちの当初の想像をはるかに超えています。
これは、Nitro Enclavesを利用しているお客様の一部をご紹介したものです。私たちは大変光栄に思い、感謝しています。金融サービス、ヘルスケア、銀行、パスワード管理など、あらゆる分野のお客様がNitro Enclavesを活用しています。これらのユースケースを最もよく説明できるのは、実際にご利用いただいているお客様に、その journey についてお話しいただくことでしょう。そこで、1Passwordの Andrew Niculescu さんをお招きして、彼らの journey についてお話しいただけることを大変嬉しく思います。
1Passwordにおける Confidential Computing プラットフォームの構築
こんにちは、おはようございます。お越しいただき、ありがとうございます。William さん、Arvind さん、ありがとうございます。私は1Passwordのエンジニアリングリーダーの Andrew Niculescu です。本日は1PasswordにおけるConfidential Computingについてお話しできることを大変嬉しく思います。始める前に少しお聞きしたいのですが、職場で1Passwordを使用している方は何人いらっしゃいますか?手を挙げてください。おお、すごい。これなら7枚くらいスライドを省略できそうですね。素晴らしい。
まずは完全を期すために、1Passwordについて少しご説明させていただき、その後で、なぜConfidential Computingが必要なのかについてお話しします。そして、1PasswordでどのようにしてConfidential Computingのプラットフォームを構築したのかをご紹介します。1Passwordはアイデンティティセキュリティのリーダーであり、15万社の企業と何百万人もの個人ユーザーから信頼を得ています。私たちは、皆様のような方々の働き方や生活スタイルに合わせたアイデンティティセキュリティとアクセス管理機能を提供しています。 簡単に言えば、Extended Access Managementは、お客様の組織が情報と人材の両方を保護するためのソリューションです。
この機能により、アイデンティティ、アプリケーション、デバイスの包括的な可視性を実現し、設定可能なポリシーとアクセス管理コントロールを提供します。 つまり、生産性を損なうことなく、あらゆるデバイスのあらゆるアプリケーションのサインインを安全に保護する方法を提供しているのです。 包括的な可視性の例として、ここでご覧いただいているのは、SSOで管理されているアプリケーションと管理されていないアプリケーションを示すレポートです。ここで明確にしておきたいのは、これは1Passwordを使用している企業が見るレポートであり、1Password自体がその組織内でアクセスできる情報ではありません。基本的に、管理者ユーザーがこのようなレポートを利用することになります。
はい、これが例となります。
それでは、1Passwordがどのように発展してきたかについてお話しします。1Passwordは、すでにそのコアにConfidential Computingが約束する機能、つまり分離と運用者アクセスの制限を備えています。しかし、先ほどの例のように、そのレポートは主にクライアント側で処理を行っており、パフォーマンスの面で課題がありました。お客様からより良い方法を求められていたのです。この顧客の要望に応えつつ、私たちの基盤を損なわないようにするために、Confidential Computingが必要でした。
先ほど申し上げたように、具体的には、処理をクライアントからサーバーに移行する必要がありました。ただし、このデータへのアクセスを持たないという方針は維持したまま、プライバシーやセキュリティを損なうことなく実現する必要がありました。 そこで、AWS Nitro EnclavesとAWS KMSを使用してプラットフォームを構築しました。このスライドでお分かりの通り、1Passwordのコアとなる基本的な約束と全く同じ要件を持つプラットフォームを構築しています。また、後ほど説明するData Persistenceと呼ばれる機能も含めています。
それでは、先ほどの例に戻りましょう。1Passwordを使用している組織で、管理者ユーザーが管理対象アプリと非管理対象アプリのレポートを閲覧するという、先ほどと同じ状況のレポートを見てみましょう。1Passwordでの Confidential Computing を使用しない場合の動作を確認してみましょう。 基本的な流れはシンプルです。1Passwordアカウントの各ユーザーが、自分のデバイス上でレポートに関連するデータを生成し、私たちがアクセスできない鍵で暗号化して、その暗号化されたデータが私たちのサーバーに送られます。反対側から見るとこうなります。管理者ユーザーは このデータを復号化して表示するための適切な鍵を持っているわけです。
クライアントはここでかなりの処理を行っています。ご覧の通り、データの取得、復号化、集計、処理、そして最終的な表示まで行う必要があります。特に Enterprise のお客様は膨大なデータセットを扱うため、パフォーマンスの問題が顕在化してきました。当然ながら、データセットが大きくなればなるほど、この処理は遅くなります。そこで次のステップとして、これらのワークロードをクラウドサーバーに移行する方法を検討し、その解決策を見ていきましょう。
まず、分離から始めます。これは簡単で、ArvindとWilliamが既に説明してくれた通りです。AWS Nitro Enclaveから始めて、隣にEC2親インスタンスがあり、そしてレポーティングサービスがあります。赤色は、まだ完了していないことを示しています。このプレゼンテーションのために、 コードが書かれ、サービスが構築されています。しかし、これをデプロイする必要があります。デプロイの最初のステップとして、Nitro Enclaveのワークフローで標準的な Enclave Image File を構築します。Williamが指摘した重要なポイントは、この Enclave Image File の一部として、Platform Configuration Register、特に私たちが重要視するPCR0を取得することです。PCR0は基本的に、Enclaveで実行されている実際のコードのハッシュ値による測定値です。
1Passwordの Confidential Computing 実装の詳細
次に、透明性に取り組みます。標準的な証明書を生成しましたが、その後、PCR0を証明書の1つで署名し、公開する必要がありました。 このために、Linux FoundationのオープンソースプロジェクトでホストされているサービスであるRekorを選択しました。改ざん防止の透明性ログとして必要な機能をすべて提供してくれます。1Passwordがホストしておらず、私たちの管理下にないため、私たちのニーズを満たしています。
このステップでは、署名されたPCR0で透明性ログを更新しています。 そして最後に、レポーティングサービスをデプロイします。ここで少し時間を取って、次のステップである検証を実現するために、AWSやRekor、そして私たち自身の適切な証明書をクライアントにハードコードしていることを強調しておきたいと思います。
復習しましょう。現在、私たちはサービスを持ち、それを実行するための隔離環境があり、さらには透明性も確保しています - それも公開された透明性です。しかし、まだそのEnclaveとの通信が必要で、ここでは2つの通信に関する部分について説明します。先ほど学んだように、Enclaveにはネットワーク機能がないため、親インスタンスからReportingサービスへの通信方法、そしてクライアントからReportingサービスへの通信方法を考える必要があります。
最初の課題に対して、私たちはService Proxyと呼ぶものを構築しました。その核心は、親EC2とEnclaveの間の通信を処理することです。プラットフォームとしての機能を充実させたかったため、標準のProxyを使用する代わりに、より柔軟性を持たせるために独自のProxyを構築しました。これには、優れた可観測性を実現するテレメトリーが含まれています。また、実行時にEnclave Serviceに設定をブートストラップする機能も備えています。なぜこれが重要かと思われるかもしれません。先ほど説明したように、コードを1行変更するとPCR0が変更され、全プロセスをやり直す必要があります。実行時に設定できることは非常に便利なのです。
そこまでは対応できました。最後の課題は、クライアントとEnclaveの間の通信を確立することです。この通信チャネルは非常に安全である必要があります。特に、クライアントが持つ復号化キーが最終的にEnclaveに到達する必要があり、その際に1PasswordやAmazonがアクセスできないようにする必要があるためです。多くの方が考えるように、最初の解決策はTLSを使用することでした。しかし、ブラウザを扱う場合、証明書のピン留めができないため、代わりにNoise Protocol Frameworkを使用することにしました。
その仕組みを見てみましょう。この通信の最初の部分では、Noiseハンドシェイクが行われ、Enclaveがクライアントに必要な情報をすべて送信して、通信チャネルを確立すべきかどうかを検証し、証明します。これには、Attestation Document、EnclaveのPublic Key、そして重要な点として、Public Transparencyの包含が含まれます。クライアントは今度は検証を行う必要があります。先ほど述べたように、組み込まれた証明書がここで重要なツールとなります。検証について説明すると、本質的に2つの質問に答えることです:私は1Passwordが所有・運営するサービスと通信しているのか?このサービスは、1Passwordが透明性ログに展開したと記録したものと同じものなのか?これら両方の答えが「はい」で、暗号による証明があれば、安全な通信チャネルが確立されます。
これですべての要件を満たしたようです。Application Insightsレポートに話を戻して、Confidential Computingでどのように機能するか見てみましょう。最初のステップに戻ると、安全な通信チャネルが確立された今、クライアントは安全に復号化キーをReportingサービスに送信できます。キーを手に入れたReportingサービスは、データを取得し、復号化し、集計して処理することができます - 少し見覚えがありますね?今度は反対側で処理が行われるのです。最後に、クライアントは本来の役割を果たします:表示用のデータを受け取るのです。
ここで、私たちが得た成果について少し立ち止まって考えてみたいと思います。パフォーマンスだけを見ても驚くべき結果で、12倍という数字はどの基準で見ても素晴らしく、私たちにとってはこれが始まりに過ぎません。最も大きな成果の一つは、セキュリティとプライバシーに関する私たちの核となる約束を損なうことなく、これらのワークロードをサーバー上で実行できるようになったことです。これは私たちにとって大きな達成です。エンドツーエンドの暗号化システムによって、これまで不可能だった多くの機能を実現することができました。
追加サービスを提供するには、パフォーマンスの高いプラットフォームが必要です。そのために、Enclave Gatewayと呼ばれる特別なサービスを構築しました。これは基本的にAPIゲートウェイとして機能します。トラフィックのロードバランシング以外にも、3番目の項目にある「attestation deputy」という非常に優れた機能を備えています。基本的に、クライアントとゲートウェイ間で一度だけAttestationを行い、その後はゲートウェイが、クライアントが通信する必要のある任意のEnclaveサービスに対してAttestationを代行することで、大幅な時間短縮を実現しています。
さて、最後のセクションに到達しました。冒頭で、要件として1Passwordが重視する全ての要素に加えて、データの永続化についても触れました。データの永続化は、私たちのユースケースを拡大するための手段です。 先ほどの例で見たように、これまではクライアントが存在するリクエストサイクル、つまり同期的な呼び出しで、クライアントがデータを受信して表示するために存在する必要がありました。これを分離して非同期にするにはどうすればよいでしょうか?私たちのデータ永続化もEnclaveサービスです。AWS KMSを活用し、Enclaveサービスが使用する鍵材料を安全かつセキュアに永続化します。
もう一度例を見てみましょう。管理者ユーザーが初めてログインしてこの機能をオンにする場合を想像してください。この機能の設定の一環として、鍵材料は再度セキュアな通信チャネルを通じて渡され、データ永続化サービスに保存されます。 サーバーの観点から見ると、この場合Reportingサービスが独立してデータをフェッチし、処理し、クライアントが表示したり必要な操作を行ったりできるよう準備することが可能になります。この図からわかるように、クライアントは関与せず、サービスが全てを自力で処理できます。ここで強調しておきたいのは、これは依然として1Passwordがデータや関連する鍵材料にアクセスできない世界での話だということです。
クライアント側から見ると、非常にシンプルになります。クライアントがデータを取得して使用する時点では、もはやプラットフォームが何かを行う必要がないため、バックグラウンドで動作しているのが見えます。データ永続化サービスにより、クライアントとサーバーのプロセスの分離に大きな成功を収めました。先ほどの12倍という数字も素晴らしかったですが、この時点でのパフォーマンス向上は、それをさらに大きく上回るものとなっています。 最後に、これが私たちのプラットフォーム全体を高レベルで示したものです。Enclave Gatewayと同様に、データ永続化サービスもAWS KMSとの単一の接点として、プラットフォームにおいて非常に重要で中心的な役割を果たしています。AttestationとAWS KMSがAttestationとどのように連携するかについて学んできましたが、データ永続化が単一のAWS KMSルートキーを管理できるようにすることで、非常に重要なパフォーマンスの向上を実現しています。
このアプローチにより、複数のキーを管理するオーバーヘッドが解消されます。これは、このサービスを構築する上での多くのメリットの1つに過ぎません。これが私たちのプラットフォームであり、私たちの歩みです。私たちは非常にセキュアでプライベートな状態からスタートし、その状態を維持しながら、Confidential Computingを活用することで、さらなる機能とパフォーマンスを追加してきました。
Confidential Computingの具体的なユースケース
ここで少しお時間をいただいて、1Passwordでのこの旅に参加できたことへの感謝の気持ちをお伝えしたいと思います。わずか5人のチームが、メモ書きのような文書から、極めて短期間で本番稼働可能なプラットフォームを作り上げたことを目の当たりにできたことを、大変嬉しく思います。もしよろしければ、彼らに拍手をお願いします。先ほども申し上げましたが、こちらが参考資料となる2つのリソースです。ご清聴ありがとうございました。今日は何か学びを得ていただけたのではないかと思います。
それでは、Williamにバトンを渡します。ありがとう、Andrew。わずか5人とは、驚きですね。Nitro Enclavesについて考える時、私たちは顧客が実際に使える実用的なソリューションを作ることを考えていました。暗号の専門家である必要はありません。もっとも、彼らは確かに暗号の専門家ですが、この機能を活用するのに専門家である必要はないということです。では、具体的なユースケースについて話しましょう。今はまさに最後の締めくくりの部分です。この最後のパートでの私の目標は、主要な概念とテーマをユースケースに結びつけ、皆さんが今週末にLas Vegasを離れる際に、自身のワークロードについて考える時に、適切な質問ができるようお手伝いすることです。
ここでソリューションについてご説明します。AdTechにおけるトークン化が主要な目標です。ご存知の通り、サードパーティCookieは廃止される方向にあります。その代わりに、よりプライバシーを保護するトークンやUnified IDが注目されています。この処理の多くは、個人データやPIIデータをトークンに変換するトークン化が重要です。なぜなら、トークン化エンジン、つまり変換プロセスを持っていれば、そのプロセスを逆にすることができるからです。これが、顧客がNitro Enclavesで使用している処理のタイプです。自社の環境だけでなく、他のすべての環境から処理を分離できる、隔離されたコンピューティング環境での実行が可能です。
AdTechについて言及しましたが、これはAdTechだけに限った話ではありません。トークン化は金融サービスでも使える非常に一般的なプロセスです。クレジットカード番号をトークンに変換することを考えてみてください。医療業界でも医療データをトークンに変換するのに使用されています。Enclaveの中でトークン化エンジンを実行し、それを隔離しておくことには、多くの応用があります。Enclaveでは最小限のコードでアプリケーションを実行したいものです。そうすることで、実際に何が処理されているかを検証し、それを証明することができます。
最も単純な形での複数者間コラボレーションとは、お互いを完全には信頼していない2つの当事者が存在する状況です。両者とも非常にセンシティブで有用なデータを持っており、それらを組み合わせて処理できれば、さらに価値が高まります。これは新しい問題ではなく、従来は両者間のプライバシー契約や、相手を信頼するしかないという形で解決されてきました。一方が強い交渉力を持っている場合は、選択の余地はあまりありません。ここには多くの非効率性が存在します。Nitro Enclavesが解決するのはまさにこの問題です。 複数者間コラボレーションを実現する実用的な方法を提供します。どちらの当事者もアクセスできない隔離されたコンピュート環境、つまりEnclaveを用意し、Party 1とParty 2のデータセットをそれぞれ独自のKMSデータキー(Key Management Service)で暗号化し、Enclaveに送信します。Attestationの過程でKMSを呼び出すことで、Enclaveのみがそのデータを復号化できます。そしてEnclave内で平文データを使用して処理を行うことができ、KMSとの優れた統合によって非常に実用的で簡単に実現できます。皆さんが所属する組織に戻られた際は、Confidential Computingで改善できる複数者間の状況がないか検討してみてください。
Confidential Inferencingとは、特定の予測を行うためにデータを使用することです。具体的には、ユーザーデータを使用して特定の結論を導き出します。顧客の間では、AIモデルでユーザーデータを使用することへの関心が高まっています。この場合、エンドユーザーにサービスを提供するサービスプロバイダーは、ユーザーデータがクラウドプロバイダーと顧客自身の両方から保護されていることを保証する必要があります。
これら2つの要件が見られます。最初の部分、つまりクラウドプロバイダーからの保護と分離については、先ほど説明した通りです。これはNitroベースのEC2インスタンスではデフォルトで常に有効になっており、AWSのオペレーターがその内容にアクセスする手段はありません。この保護は、GPU、Trainium、InferentiaなどのAIアクセラレーターにも適用されます。2つ目の部分は、顧客のユーザーデータを自分自身から分離する方法です。ここでは、信頼できるHermeticなコードを構築することになります。Hermeticなコードとは、オペレーターアクセスやインタラクティブアクセス、SSHなどのアクセスを提供しないアプリケーションを意味します。このように独自のNitroを構築し、NitroTPMを使用してエンドユーザーに信頼できるコードを実行してデータを処理していることを証明します。
AWSでは、このフローを設定するためのBuilding Blocksを用意しており、顧客もそれを使用しています。しかし、先ほど申し上げたように、すべての顧客が同じフローを何度も構築・設定しなければならない状況は、ある種のシグナルです。今年、私たちはNitro SystemのEnd-to-End保護をMLアクセラレーターにまで拡張する計画を発表しました。この発表は今年初めにNVIDIAと共同で行いました。LLMでは、さらに機密性の高いデータをモデルに持ち込むことになります。財務データ、RAG資料、拡張生成、ユーザーデータなど、バケット、データベース、データレイク、オンプレミスなど、さまざまなソースや場所からのデータを扱います。私たちは、データソースからGPUやMLアクセラレーターまでEnd-to-Endの保護を実現する方法を構築しています。これにより、KMSや他のAWSサービスとの統合の力を活用し、皆さんが慣れ親しんでいるSDKやツールを活用することができます。
Confidential Computingの今後と学習リソース
Confidential Computingの分野ではまだまだやるべきことがあります。私たちはまだ表面をなぞっているだけだと思います。Arvindは2つの次元について話していますが、私は3つ目、4つ目もあると考えており、さらに多くの可能性があります。私たちは顧客の皆様と積極的に関わり、皆様の声に耳を傾け、喜んでいただける方法を探っています。今週を通じて、ぜひ私たちと交流し、お話しください。Confidential Computingに精通したソリューションアーキテクトの優れたチームが、この journey をサポートします。私にも直接連絡していただければと思います。このプレゼンテーションから、re:Inventから1つだけ持ち帰っていただきたいことがあります。それは、単に「Confidential Computing」というラベルがついているからという理由だけでConfidential Computingを使用しないということです。今日のプレゼンテーションでご覧いただいたように、非常に異なる問題を解決する多くの異なるツールが存在します。具体的に何を解決しようとしているのかを理解することが重要です。もしAWSのオペレーター、つまりクラウドオペレーターからデータを隔離することだけがユースケースであれば、NitroベースのEC2インスタンスを使用するだけで十分です。Nitro Enclavesは必要ありません。
戻られましたら、2つの質問について考えてみてください:私が保護しているデータは何か、そして誰からそのデータを保護しているのか、ということです。AWSと関わる際も、より深く理解するために、同じようにこの2つの質問をさせていただくことになります。
2つ目のポイントは、Nitro Systemによって、AWSでNitroベースのインスタンスを起動するだけで、Confidential Computingが簡単に実現できるように見えたということです。私たちは異なるアプローチで、これを実現するために10年以上かけてソフトウェア、チップ、ハードウェアの開発に多大な努力を費やしてきました。そして、今もなお投資を続けています。様々なユースケースに対応するための幅広いソリューションを用意しており、そのポートフォリオを継続的に拡大しています。
本日は皆様のご参加とご協力に感謝いたします。最後に、AWS Nitro Enclavesについてより詳しく学べるリソースをご紹介させていただきます。re:Inventでは、実際に体験してEnclaveを構築できる複数のワークショップを用意しています。 LLMのユースケースを実装するものと、一般的なEnclaveの構築に関するものがあります。これらのセッションに参加できない方のために、自己ペースで進められるワークショップもご用意しています。
こちらが AWSについてより詳しく学び、スキル認定を取得するためのリソースです。皆様、ありがとうございました。特に、1Passwordの皆様には、ユースケースを共有していただき、感謝申し上げます。 素晴らしいre:Inventをお過ごしください。
※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。
Discussion