写点什么

AWS Nitro Enclaves – 隔离 EC2 环境以处理机密数据

  • 2020-11-29
  • 本文字数:3299 字

    阅读完需:约 11 分钟

AWS Nitro Enclaves – 隔离 EC2 环境以处理机密数据

AWS Nitro 系统进行的第一次介绍如下:


Nitro 系统是一个能够以多种不同方式组合的丰富构建块集合,可以让我们灵活地设计并快速交付 EC2 实例类型,并提供不断增加的计算、存储、内存和网络选项。


到目前为止,我们已经使用这些构建块实现了这一承诺,并已推出(举几个例子来说)M5C5R5T3I3A1P3dnz1d高内存实例。我们快速增长的实例集合旨在满足同样快速增长的客户需求和要求。


一项新的隔离挑战


金融服务、国防、媒体和娱乐以及生命科学各行各业的 AWS 客户都会在 AWS 云上定期处理高度敏感的数据。他们在执行此操作时,需要防止内部和外部威胁,而且需要处理涉及到多个互不信任的合作伙伴、供应商、客户和员工的复杂情况。如今,他们使用 VPC 创建连接受控、有限的高度隔离环境,仅限有限用户集访问该环境。


Nitro Enclaves


今天,我们推出 AWS Nitro Enclaves,以此来解决此重要需求。您可以使用此服务在任何由 Nitro 系统提供支持的 EC2 实例上创建隔离环境。Nitro 系统已隔离在同一硬件上运行的多个 EC2 实例。Nitro Enclaves 通过分隔单个“父级”EC2 实例的 CPU 和内存来提供额外的隔离,防止高度敏感的数据被在同一个实例上运行的其他用户或应用程序访问。该环境经证明非常安全,且不会被在父级 EC2 实例上运行的其他应用程序、用户或进程访问。它非常灵活,旨在满足要求最苛刻的生产工作负载的需求,并使您能够完全控制分配给隔离环境的内存量和处理能力。


我们在推出该服务时支持为每个 EC2 实例创建单个 Enclave,并将在未来增加对多个 Enclave 的支持。您可以将实例的所有核心(仅一个除外)(使用超线程处理器的实例上的 2 个 vCPU)以及几乎所有的内存用于您的 Enclave:



每个 Enclave 运行一个独立的内核,并且可以独占访问内存和 CPU 资源。Enclave 没有外部网络连接,没有持久存储,也没有用户访问权限(即使拥有完全 IAM 权限)。流入和流出 Enclave 的所有数据都会通过在 EC2 实例上终止的本地虚拟套接字 (vsock) 连接移动。



Nitro 管理程序在创建每个 Nitro Enclave 时会创建并签署证明文档。该文档包含(除其他外)一组平台配置注册表 (PCR),它们可提供引导过程的密码学可靠性测量值。这些值附加到 KMS 密钥策略时,用于验证是否使用了预期的映像、操作系统、应用程序、IAM 角色和实例 ID 来创建 Enclave。KMS 执行此验证步骤后,将执行在 Enclave 中运行的代码所请求的所需 API 操作(解密、生成数据密钥或生成随机值)。


创建和使用 Enclave


实例必须运行包含新 Nitro CLI 的 AMI。按设计,这些工具在托管 Enclave 的实例上运行。实例本身必须在启用 enclave-enabled 选项的情况下启动:


$ aws ec2 run-instances ...  --enclave-options Enabled=true
复制代码


为方便起见,可以将 Docker 映像用作 Enclave 映像 (*.eif) 的依据。我使用 Nitro CLI 存储库中的 hello 示例来构建 docker 映像:


$ docker build hello -t hello
复制代码


然后再构建 EIF:


$ nitro-cli build-enclave --docker-uri hello:latest --output-file hello.eif
复制代码


正如我前面提到的,PCR 用于验证预期的映像,内核和应用程序是否在 Enclave 中运行。以下是我构建 EIF 时生成的三个 PCR:


  • PCR0 – 映像的 SHA384 哈希值。

  • PCR1 – 操作系统内核和引导过程的 SHA384 哈希值。

  • PCR2 – 应用程序的 SHA384 哈希值。


Start building the Enclave Image...Start building the Enclave Image...Enclave Image successfully created.Enclave Image successfully created.{  "Measurements": {    "HashAlgorithm": "Sha384 { ... }",    "PCR0": "951f851181bb490bd112b8ab855e40e3ac60c0dcc31e408c5b8485f85c4db276b1753b401dcc0a787ff79c2fae81b3ae",    "PCR1": "aca6e62ffbf5f7deccac452d7f8cee1b94048faf62afc16c8ab68c9fed8c38010c73a669f9a36e596032f0b973d21895",    "PCR2": "242201df93225622132c9f3b0c315fbc85485c6aa7a2ced2491d5a290c015c053d5d5a7028b13f3a23a22c2e529d29de"  }}
复制代码


接下来,我启动 Enclave(我使用调试模式进行测试):


$ nitro-cli run-enclave --eif-path hello.eif --memory 512 --cpu-count 2 --debug-modeStart allocating memory...Started enclave with enclave-cid: 21, memory: 512 MiB, cpu-ids: [1, 9]{  "EnclaveID": "i-070d1d4d2f0389aea-enc1755616f36f444b",  "ProcessID": 4720,  "EnclaveCID": 21,  "NumberOfCPUs": 2,  "CPUIDs": [    1,    9  ],  "MemoryMiB": 512}
复制代码


我的 Enclave 如下所示:


$ nitro-cli describe-enclaves[  {    "EnclaveID": "i-070d1d4d2f0389aea-enc1755616f36f444b",    "ProcessID": 4720,    "EnclaveCID": 21,    "NumberOfCPUs": 2,    "CPUIDs": [      1,      9    ],    "MemoryMiB": 512,    "State": "RUNNING",    "Flags": "DEBUG_MODE"  }]
复制代码


接下来看看控制台输出(仅在调试模式下提供):


$ nitro-cli console --enclave-id i-070d1d4d2f0389aea-enc1755616f36f444bConnecting to the console for enclave 21...Successfully connected to the console.Command line: reboot=k panic=30 pci=off nomodules console=ttyS0 i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd random.trust_cpu=on virtio_mmio.device=4K@0xd0000000:5 virtio_mmio.device=4K@0xd0001000:6[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'...
[ 1] Hello from the enclave side![ 2] Hello from the enclave side![ 3] Hello from the enclave side![ 4] Hello from the enclave side![ 5] Hello from the enclave side!
复制代码


在真实的生产场景中,我的映像将被配置用来启动我的 Enclave 应用程序代码。我的代码将使用 Nitro Enclaves 开发工具包与 KMS 通信,以获取密钥并解密传入的数据。它还会使用 KMS 提供的数据密钥在任何数据被处理后对其进行加密。


当我完成了 Enclave 的所有操作后,我将终止它:


$ nitro-cli terminate-enclave --enclave-id i-070d1d4d2f0389aea-enc1755616f36f444bSuccessfully terminated enclave i-070d1d4d2f0389aea-enc1755616f36f444b.{  "EnclaveID": "i-070d1d4d2f0389aea-enc1755616f36f444b",  "Terminated": true}
复制代码


证明


至此,我已向您展示如何设置、运行及最后终止 Enclave。下面我们来谈谈极为重要的证明概念。简而言之,证明是一个过程,它可以让您确定在 Enclave 中运行的映像、操作系统和应用程序代码没有被无意中修改或以任何方式篡改。如前所述,PCR 值提供了每个元素的密码学可靠性表示。在真实环境中,我将创建一个 KMS 密钥策略,以将 PCR 值作为 Condition 语句的一部分进行检查:


"Condition": {        "StringEqualsIgnoreCase": {          "kms:RecipientAttestation:ImageSha384": "ecfd7aa6d1dcca1e0bba646e7d49ede2761651c68f13cee68b1141c182cd836baae37d05dd8e6260aa847369a7b27e24"        }
复制代码


适用于 Nitro Enclaves 的 AWS Certificate Manager 是一个示例应用程序,该应用程序允许您将免费的公有和私有 SSL/TLS 证书与在具有 AWS Nitro Enclaves 的 EC2 实例上运行的 Web 应用程序和 Web 服务器一起使用。要了解更多信息,请阅读 Nitro Enclaves 应用程序:适用于 Nitro Enclaves 的 AWS Certificate Manager


现已推出


您可以立即开始在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)、欧洲(斯德哥尔摩)、亚太地区(香港)、亚太地区(孟买)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)和南美洲(圣保罗)区域基于 Intel 和 AMD 处理器上立即创建和使用 Enclave,无需额外费用,更多区域及对基于 Graviton 的处理器的支持即将推出。您只需按通常费率为 EC2 实例以及对 KMS 的任何调用付费。


Jeff


本文转载自亚马逊 AWS 官方博客。


原文链接


AWS Nitro Enclaves – 隔离 EC2 环境以处理机密数据


2020-11-29 14:001672

评论

发布
暂无评论
发现更多内容

高效存储方案:Amazon S3 Express One Zone 正式推出

亚马逊云科技 (Amazon Web Services)

[每日秒懂] 软件架构风格

dinstone

架构 微服务架构 分层架构 领域驱动 架构风格

可信AI评测结果 | 电科网安通过深度学习平台和机器学习平台产品能力行业首批评测!

中国信通院AI Infra工作组

探索海外市场舆情:云手机助力企业赢得全球竞争

Ogcloud

云手机 海外云手机 云手机海外版 海外舆情监控 海外舆情

人工智能产业发展联盟AI Infra工作组筹备会成功召开

中国信通院AI Infra工作组

更智能的广告素材生成!看A/B测试如何驱动AIGC素材调优

字节跳动数据平台

A/B 测试 对比试验

全面测试服务:从人员外包到工具和平台的综合解决方案

霍格沃兹测试开发学社

中国信通院可信人工智能基础平台(AI Infra)第七批评估正式启动

中国信通院AI Infra工作组

干货!10个项目与任务管理模板,让你轻松应对项目管理!

彭宏豪95

项目管理 任务管理 在线白板 模板 办公软件

行业首批!| 创新奇智通过深度学习平台产品能力评测!

中国信通院AI Infra工作组

聚焦AI算力、大模型平台等前沿领域,AI Infra工作组会在渝召开

中国信通院AI Infra工作组

你可能误解了性能测试

老张

性能测试 性能瓶颈

关于征集已立项行业标准《边缘人工智能平台技术要求和测试方法 第1部分:平台功能》参编单位的通知

中国信通院AI Infra工作组

万界星空科技铜杆加工行业生产管理MES系统

万界星空科技

制造业 mes 电线电缆行业 铜杆行业 铜业

软件测试学习笔记丨Allure2报告中添加测试用例步骤

测试人

软件测试

打造一份属于你自己的 ChatGPT全面指南

蓉蓉

openai ChatGPT GPT-4

AI Infra组年度总结及2024重点方向预告

中国信通院AI Infra工作组

可信AI评测结果|首批!中国联通研究院“大规模分布式神经网络训练平台”通过深度学习平台产品能力评测

中国信通院AI Infra工作组

中国信通院牵头编制的AI开发平台行业标准正式发布

中国信通院AI Infra工作组

关于征集中国人工智能产业发展联盟“人工智能基础平台(AI Infra)工作组”首批成员单位的通知

中国信通院AI Infra工作组

MES管理系统中电子看板都有哪些类型?

万界星空科技

mes 数据大屏 万界星空科技 生产看板

作为程序员需要配蓝光眼镜吗?

小齐写代码

探索大模型落地新途径——大模型一体机标准第四次研讨会顺利召开

中国信通院AI Infra工作组

AI Infra多项标准发布,大模型基础设施研究启动

中国信通院AI Infra工作组

中国信通院“金融业人工智能平台”首轮评估测试正式启动报名

中国信通院AI Infra工作组

#人工智能 金融\行业

可信AI评测 | 人工智能训练芯片标准解读

中国信通院AI Infra工作组

智能工厂核心功能系统-MES生产管理系统

万界星空科技

制造业 智能工厂 智能制造 mes 万界星空科技

FreeRTOS教程9 软件定时器

不在线第一只蜗牛

定时器 FreeRTOS

海外舆情监控的重要性以及云手机的推荐

Ogcloud

云手机 海外云手机 云手机海外版 舆情监控

AWS Nitro Enclaves – 隔离 EC2 环境以处理机密数据_硬件_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章