机密计算 - 使用 AWS Nitro Enclaves 隔离保护处理中的数据
讲解使用 AWS Nitro Enclaves 对机密数据进行隔离处理。介绍加密证明、KMS 集成以及 PII 处理 / 加密密钥管理的用例。
机密计算的必要性
在传统的安全模型中,数据保护是通过静态(at rest)加密和传输中(in transit)加密来实现的。但是,在处理数据时需要将其解密并加载到内存中,这种“处理中的数据”就会成为攻击目标。由于 OS 或虚拟机管理程序的漏洞、内存转储、侧信道攻击等,存在处理中的数据被泄露的风险。AWS Nitro Enclaves 是构建在 AWS Nitro System 之上、可在基于 Intel、AMD、AWS Graviton 的许多 EC2 实例类型上使用的 EC2 功能。它会创建与 EC2 实例隔离的执行环境(Enclave),并在其中处理机密数据。Enclave 的 vCPU 和内存由 Nitro Hypervisor 与父实例隔离,Enclave 没有持久存储、交互式访问和外部网络,也无法通过 SSH 进入。父实例的进程、应用程序和用户(包括 root 和管理员)也无法访问 Enclave 中的数据和应用程序。
Enclave 的机制与证明
Enclave 是通过分割父 EC2 实例的一部分 vCPU 和内存来创建的。与父实例的通信仅限于 vsock(虚拟套接字),不能使用 TCP/IP 网络。应用程序以 Docker 镜像的形式部署到 Enclave,并通过 Nitro CLI 启动。加密证明(Attestation)是验证 Enclave 完整性的机制。Enclave 启动时,Nitro Hypervisor 会生成包含 Enclave 镜像(代码、配置)哈希值的证明文档。该文档由 AWS Nitro Attestation PKI 签名,用于确认 Enclave 的身份以及其中只运行着您所允许的代码。KMS 可以验证证明文档,并应用仅允许使用特定 Enclave 镜像进行解密的加密密钥策略。
用例与 KMS 集成
Nitro Enclaves 的主要用例是处理 PII(个人信息)。在 Enclave 内处理医疗数据、金融数据和个人身份信息,只将汇总结果返回给父实例,就可以减少原始数据离开 Enclave 的情况。在加密密钥管理方面,作为 CloudHSM 的替代方案,在 Enclave 内生成 / 使用加密密钥,使密钥不会离开 Enclave。在与 KMS 的集成中,将 Enclave 的镜像哈希(PCR 值)设置为 KMS 密钥策略的条件。这样,KMS 的操作只会在 Enclave 的测量值与密钥策略的条件一致时执行。在多方计算中,可以将其用于这样的模式:多个组织各自将数据发送到 Enclave,在 Enclave 内执行联合计算并只返回结果。无需额外费用,只需支付 EC2 实例的费用即可使用。
Nitro Enclaves 的费用
Nitro Enclaves 本身不产生额外费用。成本在于父实例的资源会按分配给 Enclave 的 vCPU 和内存相应减少。例如,在 m5.2xlarge(8 vCPU、32 GB)上为 Enclave 分配 2 vCPU、8 GB 时,父实例以 6 vCPU、24 GB 运行。如果需要为 Enclave 选择大型实例,那么该实例费用的差额就是实际的成本。与 KMS 集成时使用的 KMS 密钥的费用(每个密钥每月 1 美元)也会产生(截至 2026 年 8 月)。
保护处理中数据这一领域
数据保护通常采用静态加密和传输中加密,但处理中的数据存在容易被忽视的缺口。数据在内存中处理时处于明文状态,对在该服务器上拥有广泛权限的人来说是可能看到的。机密计算对应的是保护这种处理中数据的第三个领域。Nitro Enclaves 会创建与常规处理环境隔离的专用空间,并在其中处理机密数据。由于隔离空间连父实例也无法访问,因此即使在处理过程中也能保持数据的机密性。这是在存储和通信之外,也保护处理阶段的思路。
引入时的考虑与限制
Nitro Enclaves 会隔离处理中的数据,但需要理解由这种隔离性带来的限制再使用。隔离空间没有持久存储,也不会直接连接外部网络。它与父实例之间只通过受限的安全通信通道交换数据。因此,设计上将其处理的对象限定为机密性特别重要的处理,其他处理则在常规环境中进行。通过名为证明的机制,在验证是正确的隔离环境之后再交付密钥,从而建立信任链。以限制为前提,判断真正需要保护的处理并加以应用,会带来有效的利用。
总结 - Nitro Enclaves 的使用指南
AWS Nitro Enclaves 是在隔离环境中处理处理中数据的 EC2 机密计算功能。其主要优势是 Nitro Hypervisor 的隔离、加密证明以及通过 KMS 集成保护加密密钥。它适合于 PII 处理、加密密钥管理、多方计算等法规或安全策略要求保护处理中数据的用例。它无需额外费用即可使用,并且可以通过在现有 EC2 工作负载中添加 Enclave 的方式引入。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。