你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Kubernetes 服务上的机密容器(预览版)
随着云原生应用程序开发的增长,保护云环境中运行的工作负荷的需求也在增加。 容器化工作负荷是这种编程模型的关键组成部分,然后保护容器对于在云中机密运行至关重要。
Azure Kubernetes 服务 (AKS) 上的机密容器会在 Kubernetes 工作负载中启用容器级隔离。 它是对机密计算产品 Azure 套件的补充,并切使用 AMD SEV-SNP 内存加密在运行时保护容器。
对于涉及敏感数据(例如,个人数据或任何具有法规遵从性所需的高安全性的数据)的部署方案,机密容器很诱人。
哪些因素让容器具有机密性?
根据机密计算联盟(Microsoft 是该联盟的创始成员之一)制定的准则,机密容器需要满足以下要求 –
- 透明度:共享敏感应用程序的机密容器环境,可以看到并验证它是否安全。 受信任的计算基础 (TCB) 的所有组件都将开放源代码。
- 可审核性:你能够验证并查看 CoCo 环境包(包括 Linux 客户操作系统和所有组件)的当前版本。 Microsoft 通过证明而对来宾操作系统和容器运行时环境进行签名以进行验证。 Microsoft 还发布了来宾 OS 版本的安全哈希算法 (SHA),以生成字符串可听性和控制情景。
- 完全证明:属于 TEE 的任何内容都应由 CPU 完全测量,且能够远程验证。 AMD SEV-SNP 处理器给出的硬件报告应通过证明声明来反映容器层和容器运行时配置哈希。 应用程序可以在本地提取硬件报表,包括反映来宾 OS 映像和容器运行时的报告。
- 代码完整性:通过客户定义的容器策略和容器配置(如不可变策略和容器签名),运行时强制始终可用。
- 与操作员隔离:安全设计采用最低权限和最高隔离,能够屏蔽所有不受信任方,包括客户/租户管理员。 它包括强化现有的 Kubernetes 控制平面对于机密 Pod 的访问 (kubelet)。
但凭借这些机密性功能,该产品应可增加其易用性:它支持所有未经修改的 Linux 容器,并具有高度的 Kubernetes 功能一致性。 此外,它还支持单个集群中的异构节点池(GPU、通用节点),以优化成本。
AKS 上的哪些形式机密容器?
按照 Microsoft 对开放源代码社区的承诺,机密容器的基础堆栈使用 Kata CoCo 代理作为代理,此时运行代理的节点上托管了运行保密工作负荷的 Pod。 由于许多 TEE 技术需要在主机和客户之间建立边界,因此 Kata Coco 在最初就采用了 Kata 容器。 Microsoft 为在机密实用程序虚拟机中运行的容器提供支持,以此回报 Kata Coco 社区。
Kata 机密容器驻留在 Azure Linux AKS 容器主机中。 Azure Linux 和云虚拟机监控程序 VMM(虚拟机监视器)是面向最终用户/用户的空间软件,用于创建和管理虚拟机的生存期。
AKS 中的容器级别隔离
默认情况下,AKS 的所有工作负荷都共享相同的内核和相同的群集管理员。借助 AKS 上的预览版 Pod 沙箱,隔离提高了一个档次,能够为同一 AKS 节点上的工作负载提供内核隔离。 可以在此处阅读有关该功能的详细信息。 机密容器是这种隔离的下一步,机密容器使用底层 AMD SEV-SNP 虚拟机大小的内存加密功能。 这些虚拟机的大小为 DCa_cc 和 ECa_cc,而且能够向部署的 Pod 显示硬件的信任根。
开始使用
若要开始详细了解受支持的方案,请参阅此处的 AKS 文档。