

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Nitro 如何通过 SAP 帮助保护 RISE？
<a name="aws-nitro"></a>

 AWS Nitro System 是使用 SAP 的 RISE 中用于[亚马逊弹性计算云](https://aws.amazon.com/ec2/) (Amazon EC2) 实例的底层技术。 AWS Nitro System 提供了一组独特的功能，可支持多租户、超大规模云环境中最敏感的工作负载。

传统虚拟化架构包括“虚拟机监控程序”[又称“虚拟机监视器（VMM）”] 以及在 Xen 项目中通常称为[“Dom0”](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/traditional-virtualization-primer.html#:~:text=Xen%20Project%20calls%20the%20system%E2%80%99s%20dom0)或在 Hyper-V 中被称为[“父分区”](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-architecture)的组件。有关传统虚拟化架构的更多详细信息，请参阅[此处](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/traditional-virtualization-primer.html)。

在 Nitro System 虚拟化架构中，管理域或控制域组件（具有对硬件和设备驱动程序的特权访问权限）被拆分到独立的专用服务处理器单元（SoC - 片上系统）中，这些单元被称为 Nitro 卡。尽管仍保留“虚拟机监控程序”层，但该层设计已极度精简，仅包含完成其任务所必需的服务与功能。此外，还引入了“Nitro 安全芯片”，以便增强安全性，并确保不会产生性能开销。

以下是 Nitro 高级架构

![\[Nitro 高级架构\]](http://docs.aws.amazon.com/zh_cn/sap/latest/general/images/rise-nitro-1.png)


生成的 Nitro 系统已分为以下组件：

 **Nitro 卡** 

Nitro 控制器 - 它是物理服务器与 EC2、Amazon EBS 和 Amazon VPC 的控制面板之间唯一的对外管理接口，以被动式 API 端点形式实现，其中每项操作均会被记录，所有 API 调用尝试均通过精细访问控制模型进行加密的身份验证与授权。Nitro 控制器还为整个系统提供硬件信任根，并负责管理服务器系统的所有其他组件（包括系统中加载的固件）。系统固件存储在直接连接至 Nitro 控制器的加密 SSD 上，该 SSD 的加密密钥设计为通过可信平台模块（TPM）与 SoC 的安全启动功能协同保护。专为特定功能设计的 Nitro 卡：

联网 - 适用于 VPC 的新一代 Nitro 卡可以透明方式对发往其他 EC2 实例的所有 VPC 流量进行加密，这些实例运行于的主机也配备了支持加密功能的 Nitro 卡。它使用关联数据的身份验证加密（AEAD）算法，采用 256 位加密。在 RISE with SAP 中，根据客户的要求，选择不同系列的计算实例。虽然在所有类型的 EC2 实例之间 AWS 提供安全的私有连接，但传输中流量加密仅在下一代实例之间可用。有关此功能是否适用于您的 RISE with SAP 实例，请参阅[此处](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit)。

EBS（SSD）存储 - 用于 EBS 的 Nitro 卡可对远程 EBS 卷进行加密，而不会对其性能产生任何实际影响。

本地实例存储（临时性）- 与用于 EBS 的 Nitro 卡类似，用于实例存储的 Nitro 卡可对本地实例存储进行加密。并非所有 EC2 实例都拥有本地实例存储，这取决于为 RISE with SAP 工作负载选择的实例类型。有关详细信息，请参阅[此处](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)。

用于 VPC、EBS 和实例存储的加密密钥只能以纯文本形式存在于 Nitro 卡的受保护内存中。

 **Nitro 安全芯片** 

Nitro 控制器与其他 Nitro 卡构成第一个域，而运行 SAP 工作负载的系统主板构成第二个域。Nitro 控制器及其安全启动流程为 Nitro 系统各组件之间提供硬件信任根，Nitro 安全芯片用于将信任和控制权延伸至系统主板。作为这两个域之间的信任桥梁，Nitro 安全芯片将 Nitro 控制器的控制权扩展至系统主板，使其成为系统的从属组件，从而延伸 Nitro 控制器的信任链以覆盖整个系统主板。为了维护信任根，硬件层面将阻断所有对非易失性存储的写入访问。

以下是 Nitro 阻断对非易失性存储的写入访问的场景

![\[Nitro 阻断对非易失性存储的写入访问\]](http://docs.aws.amazon.com/zh_cn/sap/latest/general/images/rise-nitro-2.png)


 **Nitro 虚拟机监控器** 

与传统虚拟机监控程序不同，Nitro 虚拟机监控器并非通用型系统，它既没有 Shell，也没有任何类型的交互式访问模式。Nitro 虚拟机监控器通过排除以下关键组件来强化其安全态势：网络堆栈、通用文件系统实现、外围设备驱动程序支持、SSH 服务器、Shell 等。Nitro 虚拟机监控器的主要功能仅限于：

1. 接收来自 Nitro 控制器的虚拟机管理命令（例如启动、停止等）

1. 利用服务器处理器的硬件虚拟化特性，对内存和 CPU 资源进行分区

1. 将 Nitro 硬件接口提供的 SR-IOV 虚拟功能（用于 EBS 和实例存储的NVMe 块存储、用于网络的弹性网络适配器 [ENA] 等）分配给相应的虚拟机 PCIe 

与传统虚拟机监控程序相比，Nitro 虚拟机监控器的极简架构为其带来了显著的安全优势。

 ** AWS 硝基系统的主要优点** 
+ Nitro 芯片将虚拟化任务从主芯片中卸载 CPUs，从而减少了攻击面并提高了整体系统的安全性。
+  AWS 人员无权在 AWS Nitro System EC2 实例上访问您的内容。没有技术手段或 AWS 人员 APIs 可以访问您在 Nitro System EC2 实例或连接到 AWS Nitro System EC2 实例的加密 EBS 卷上的内容。 AWS 对 AWS Nitro System EC2 实例 APIs 的访问始终会被记录，该实例允许 AWS 人员在不访问您的内容的情况下操作系统，并且需要身份验证和授权。有关更多信息，请参阅[此处](https://aws.amazon.com/service-terms/)。
+ 租赁保护和侧信道攻击防护 - Nitro 虚拟机监控器在 Nitro 控制器的指令下，为实例分配一整套物理内核和内存。这些硬件资源会“固定”到该特定实例。CPU 内核不会用于运行其他客户工作负载，实例的内存页也不会以任何形式在不同实例间共享。不共享 CPU 内核意味着，实例之间绝不会共享特定于 CPU 内核的资源（包括 1 级或 2 级缓存），从而能够有力地缓解侧信道攻击。有关更多信息，请参阅[此处](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/the-ec2-approach-to-preventing-side-channels.html)。
+ Nitro 架构允许安全启动和运行时完整性验证，确保 AWS 基础架构在可信和经过验证的状态下运行。
+ Nitro 卡固件和虚拟机监控程序均设计为支持实时更新（客户实例的停机时间为零）。这使得无需围绕更新进行精细的权衡，提升了安全态势。有关更多信息，请参阅[此处](https://d1.awsstatic.com/events/Summits/awsreinforce2023/DAP401_Security-design-of-the-AWS-Nitro-System.pdf)。
+ 使用硬件卸载引擎与集成在 SoC 中的安全密钥存储对静态数据和传输中的数据进行数据加密。