ある医薬品研究機関が、EC2インスタンス上で機密性の高い遺伝子配列データの解析処理を実行しています。セキュリティ部門から以下の厳格な要件が課されました。 ・解析処理中(メモリ上)のデータに、EC2インスタンスのOSおよびroot権限を持つ管理者がアクセスできないこと ・処理を実行するコードが改ざんされていないことを暗号的に証明できること(コード完全性の検証) ・KMSの復号権限は、正規のコードが動作している環境にのみ付与すること これらの要件をネイティブなAWSサービスのみで実現する最も適切なアーキテクチャはどれですか?
AWS Nitro Enclavesは、EC2インスタンスから完全に分離された独立したコンピューティング環境(エンクレーブ)を作成するサービスです。エンクレーブはメモリとCPUが親インスタンスから暗号学的に隔離されており、root権限を持つ管理者を含む親インスタンス側からエンクレーブのメモリに直接アクセスすることは技術的に不可能です。 エンクレーブはAttestation Document(測定値ドキュメント)を生成します。このドキュメントには実行中のコードイメージのハッシュ(PCR値:Platform Configuration Register、コードの整合性を数値として記録するセキュア測定レジスタ)が含まれ、AWS Nitro Security Chipによって署名されています。AWS KMSはこのAttestation DocumentをキーポリシーのConditionキー(`kms:RecipientAttestation:ImageSha384`)で検証し、事前に登録した正規コードのハッシュと一致する場合にのみ復号を許可します。これにより3つの要件がすべて実現されます。 選択肢AのDedicated Instanceは他のAWSテナントとの物理ハードウェア共有を防ぎますが、同一インスタンス内のOSからメモリへのアクセスを防ぐことはできず、コード完全性の証明機能もありません。 選択肢CのEBS暗号化+Dedicated Hostはデータの静止時保護と物理分離を提供しますが、処理中(インメモリ)のデータへのOS側からのアクセスを防ぐことはできず、Attestationによるコード完全性検証機能もありません。 選択肢DのPrivateLinkとVPCエンドポイントポリシーはネットワークレベルのアクセス制御であり、インスタンス内のOSからのメモリアクセスを防いだり、コードの完全性を暗号的に証明したりする機能を持っていません。