不受信任的应用-ie受信任站点无法删除
Azure Kubernetes Service(AKS)上的、用Kata机密容器开源项目的机密容器即将登陆Azure。
对机密容器零信任
零信任云架构是一种安全框架,它专注于维护安全和保护数据,假设不自动信任任何设备或用户,即使它们在网络范围内。
在云托管的容器平台中,处理敏感个人身份信息(PII)和知识产权(IP)的应用程序寻求增强的安全性和威胁控制。这是为了保护所处理的数据和运行的代码免受已知和未知对手的攻击。环境的最高隔离性和完整性通常由数据合规性和网络安全团队决定。
基于AMD的SEV-SNP硬件支持的可信执行环境(TEE)的机密虚拟机(VM)提供了底层核心功能,如使用中的代码和数据的完整性、保护内存中的数据不受Azure operator的影响,以及通过认证进行远程加密验证,同时运行现有的未经修改的应用程序。
基于虚拟机的TEE可以运行完整的Linux内核,并可以轻松地实现原生运行未修改的应用程序,但与应用程序级别的飞地相比,信任边界可能有所不同。为了实现像应用程序飞地一样的隔离,并实现更高级别的VM管理员保护,AKS上的机密容器在每个pod的专用“子VM”中运行。每个子虚拟机都有自己的内存加密密钥,具有AMD SEV-SNP保护,子虚拟机的生命周期与机密Kubernetes pod的生命周期相关联。
通过使用嵌套虚拟化在这个隔离级别运行Kubernetes pod,客户可以从与父VM和租户OS管理员(该VM的运维人员)的应用程序隔离中受益,同时仍然满足原生运行任何Linux容器的需要。
为了建立一个具有广泛Kubernetes工作负载支持的生态系统,Kata Confidential Containers(CoCo)开源沙盒CNCF项目提供了一套理想的构建模块和安全结构,以实现以下安全目标:
——帮助保护数据不受运维人员(Azure租户管理员、Kubernetes管理员)的影响。
——帮助保护数据免受云提供商/运营商的攻击。
通过将工作负载与其他pod、主机VM OS和Kubernetes软件隔离在一个AKS容器主机中,这种部署架构非常适合那些希望运行现有OCI兼容容器而不会对现有DevOps实践产生影响的开发人员。机密容器作为AKS代理节点的一部分运行,从而在DevOps和开发人员之间找到理想的平衡。
开源社区联盟
Kata Confidential Containers(CoCo)项目的目标是在容器级别标准化机密计算,并简化其在Kubernetes中的使用。这是为了让Kubernetes用户能够使用熟悉的工作流和工具部署机密容器工作负载。还将Azure Container Instances(ACI)上的机密容器带到社区不受信任的应用,学习容器强制执行策略/完整认证和OCI镜像快照与DM真实性强制执行。
为了提高产品透明度目标,并实现跨行业的开源软件工作,Kata CoCo和Cloud-Hypervisor Virtual Machine Monitor(VMM)与Microsoft Hypervisor相结合,被选为AKS支持的基础。AKS上的机密容器利用了基本的底层技术堆栈,该堆栈支持“用于Pod Sandboxing的AKS上Kata VM隔离容器”,但使用特定的Azure机密计算(ACC)VM大小。
随着机密计算逐渐成为主流,微软将继续通过加强安全性和隔离性来做出贡献,以根据客户和社区的学习来塑造未来的版本。
产品设计原则
AKS上的机密容器是根据客户反馈的原则设计的,并将随着需求的变化而变化。
——透明度:共享敏感应用程序的机密容器环境,你可以查看并验证它是否安全。可信计算基础(TCB)的所有组件都是开源的。
——可审计性:客户应能够验证和查看CoCo环境包的哪个版本,包括Linux Guest OS和所有组件是最新的。微软通过认证登录到客户操作系统和容器运行时环境进行验证,还发布了客户操作系统构建的安全哈希算法(SHA),以构建字符串可听性和控制故事。
——可再现性:尽管很难获得完整运行时环境的确切散列,但将提供一种OSS优先的方法,该方法具有文档充分的构建指令。能够验证云中正在运行的内容以及可供审计的内容。
——完全证明:TEE的任何组成部分都应由具有远程验证能力的CPU进行完全测量。AMD SEV-SNP处理器的硬件报告应通过证明声明反映容器层和容器运行时配置哈希。应用程序可以在本地获取硬件报告,包括反映Guest OS镜像和容器运行时的报告。
——代码完整性:通过客户定义的容器和容器配置策略(如不可变策略和容器签名),运行时强制始终可用。
——与operator隔离:安全设计对所有不受信任的方(包括客户/租户管理员)采取最低权限和最高隔离屏蔽。这包括强化现有的Kubernetes控制平面访问(kubelet)对机密pod的访问。
——易用性:支持所有未修改的Linux容器,并具有高度的Kubernetes特性一致性。
通过这些设计原则并公开批准这些原则时,目标是将这些贡献带到社区项目中,如Kata CoCo和Cloud Hypervisor。
场景/用例
机密容器对于涉及敏感数据(例如不受信任的应用,PII或合规性所需的任何具有强大安全性的数据)的部署场景很有吸引力。容器常见场景的一些示例如下:
——使用Apache Spark分析工作在银行业进行欺诈模式识别,保护隐私的大数据分析。
——作为持续集成和持续部署(CI/CD)DevOps实践的一部分,运行自托管GitHub运行程序以确保代码签名。
——机器学习,使用来自可信来源的加密数据集对ML模型进行推理和训练,并且仅在机密容器环境内进行解密,以实现隐私保护ML推理。
——在零售和数字广告等行业,作为多方计算的一部分,建立用于身份匹配的大数据洁净室。
——建立机密的计算零信任着陆区,以满足应用程序迁移到云的隐私规定。
常见问题解答
问:需要修改现有的容器吗,还是选择OSS项目包装器来运行容器?
答:不需要。带有任何编程语言的标准OCI兼容容器将以未经修改的方式运行。
问:在AKS上运行此功能需要新的Azure虚拟机大小吗?
答:是的。使用此功能需要新的具有机密计算能力的子VM大小DCA_CC_v5、ECA_CC_v5。
问:这些CoCo pod是在自己的安全环境或虚拟机中运行的吗?
答:是的,机密pod在自己的TEE中运行,由唯一的内存加密密钥保护。许多容器可以在单个虚拟机中运行,就像具有应用程序飞地的虚拟机一样。
问:是否有Azure服务需要默认信任?
答:不是。只有容器运行时组件和具有所需容器运行时的轻量级容器优化Linux内核才是信任边界的一部分。
问:什么是用于在AKS上运行机密容器的机密子VM?
答:嵌套虚拟化是一种允许在Azure虚拟机(VM)内运行虚拟机管理程序的功能。这有助于将子VM彼此隔离,并将其与父操作系统隔离。通过使用基于AMD SEV-SNP的硬件级别保护使这些嵌套虚拟机保密。
原文链接: