概要
Nitroは結構興味があるのでセッションがあると良く聞くのですが、今回はAWS Summitで下記のセッションを聞きました。忘れないうちに聞いた内容をまとめておきたいと思います。
Amazon EC2がセキュアな理由を、専用チップの設計から徹底解説 — EC2インスタンスの裏で動くAWS Nitro System
EC2の裏側で動いているNitro Systemについて、ハードウェアの設計思想からネットワーキングまで幅広くカバーする内容でした。
シリコンイノベーションの歴史
AWSのカスタムチップ開発の歴史です。Nitro V1から始まり、現在はNitro V6まで進化しています。並行してGravitonプロセッサも初代からGraviton5まで、さらにML向けのInferentia/Trainiumシリーズも開発されてきました。
Nitro Systemの全体像
Nitro Systemは3つのコンポーネントで構成されています:
- Nitro Card — ネットワーク(VPC)、ストレージ(EBS)、ローカルNVMeなどのI/Oを処理する専用ハードウェア
- Nitro Security Chip — マザーボード上で信頼の起点(Root of Trust)を担う。起動時にファームウェアの整合性を暗号検証する
- Nitro Hypervisorファームウェア — 最小限の機能だけを持つ軽量ハイパーバイザー
Nitro以前のXenベースではソフトウェアでやっていた仮想化周りの処理を、全部専用ハードウェアにオフロードした形です。これによってホストCPUのリソースをゲストに丸ごと渡せますし、パフォーマンスも改善します。
SRD
AWSのサーバ間の通信で使用されるAWSが開発したSRDプロトコルの説明です。従来のTCPだと1フローが1パスに固定されるので、特定の経路に負荷が集中してしまいます。SRDはこの「1フロー1パス」の制約をマルチパス通信で解決します。パケット単位で複数経路に分散し、輻輳制御とパケットの並べ替えをNitro Cardがハードウェアで処理します。
ENA Expressでのネットワークフロー
ENA Expressのネットワークフローです。図では、インスタンス→ENA→AWSネットワーク内の複数ノード→対向ENA→インスタンスという流れが描かれていて、SRDによって複数のパスにフローが分散されている様子が見て取れます。
コンフィデンシャルコンピューティング
ここからセキュリティの話です。「処理中のデータの保護」として2つの観点が提示されました。まずは一つめの「① クラウドプロバイダからの保護」です。
「クラウド事業者の社員がうちのデータ見れるのでは?」という疑問に対して、Nitro Systemでは「ポリシーで禁止している」のではなく、そもそもアクセスする仕組み自体がハードウェア設計上存在しないという作りになっています。
Nitro Systemによるセキュリティの強化
クラウドプロバイダーからの保護を実現する4つの仕組みです。
- 移動時・保管時の暗号化 — Nitro System内部の通信チャネルはすべて暗号化
- 人間のログイン手段なし — サーバーへのアクセスは暗号化されたAPI経由のみ。SSHもコンソールもない
- ファームウェアのライブアップデート — 利用者の操作なしでセキュリティパッチ適用が可能
- セキュアブート — 起動時に全コンポーネントを暗号検証。改ざんされていたら起動しない
つまりAWSの社員であってもゲストのデータにアクセスする手段が物理的に存在しないということです。
Nitro Enclaves: 機密コードの分離実行
続いて2つ目の「② お客様組織内での保護」の話です。
Nitro EnclavesはEC2インスタンスの中にさらに隔離された実行環境を作る仕組みです。CPUとメモリが親インスタンスから完全に分離されていて、通信は親インスタンスとのvsock(ローカルソケット)のみ。ネットワークアクセスもインタラクティブなログインもできません。暗号化データをEnclaves内で復号・処理するような用途で使います。







