Confidential Space 概览

Confidential Space 提供了一个隔离的环境来处理来自多方的敏感数据,以便这些数据的所有者可以保持数据的机密性。 敏感数据可能包括个人身份信息 (PII)、受保护健康信息 (PHI)、知识产权、加密密钥、机器学习 (ML) 模型或与大型语言模型 (LLM) 的互动。

您可以使用 Confidential Space 来处理仅对其原始所有者和共同商定的工作负载可见的敏感数据。或者,您可以使用它为最终客户提供更强大的数据隐私权,因为 Confidential Space 环境的操作员或所有者无法访问正在处理的数据。

Confidential Space 是一个可信执行环境 (TEE),可用于仅将密钥发布到授权工作负载。证明流程和安全强化型操作系统映像有助于保护工作负载以及工作负载处理的数据免遭操作员的侵害。

如需详细了解 Confidential Space 的使用场景和安全模型,请参阅 Confidential Space 安全概览

Confidential Space 组件

Confidential Space 系统有三个核心组件:

  • 工作负载:包含处理 受保护资源的代码的容器化映像。此映像在 Confidential Space 映像(基于 Container-Optimized OS 的 安全强化型操作系统)上运行。 而 Confidential Space 映像又在提供硬件 隔离和远程证明功能的机密虚拟机上运行。工作负载通常与受保护的资源位于不同的项目中。

  • 证明服务:远程证明验证程序,以 证明证据的形式返回 OpenID Connect (OIDC) 令牌。这些令牌包含工作负载的标识特性。 证明服务在运行工作负载的同一区域中运行。

  • 受保护的资源:受 身份验证和授权系统保护的代管式资源。如果资源位于 Google CloudGoogle Cloud 中, 则可以是代管式云资源,例如 Cloud Key Management Service (Cloud KMS) 密钥或 Cloud Storage 存储分区。如果资源不在 Google Cloud 中(例如,在本地环境或其他云中),则可以是 任何资源。

Confidential Space 角色

Confidential Space 系统中的组件由具有三种不同角色的人员管理:

  • 数据协作者:拥有工作负载正在处理的受保护 资源的人员或组织。数据协作者可以访问自己的数据、对该数据设置权限,并且根据工作负载的输出,可能会访问基于该数据的结果。

    数据协作者无法访问彼此的数据,也无法修改工作负载代码。

    如需详细了解数据协作者的角色,请参阅 创建机密资源并授予访问权限

  • 工作负载作者:创建访问和 处理机密数据的应用的人员。他们将应用添加到容器化 映像(例如,使用 Docker),并将该 映像上传到代码库(例如 Artifact Registry)。

    工作负载作者无权访问数据或结果,也无法控制对数据或结果的访问。

    如需详细了解工作负载作者的角色,请参阅 创建和自定义工作负载

  • 工作负载操作员:运行工作负载的人员。工作负载操作员通常对其运行工作负载的项目拥有完全管理权限。例如,他们可以管理其项目中的资源(例如 Compute Engine 实例、磁盘和网络规则),并且可以与处理这些资源的任何 Google Cloud API 进行交互。

    工作负载操作员无权访问数据,也无法控制对数据的访问。他们无法影响或修改工作负载代码或执行环境。

    如需详细了解工作负载操作员的角色,请参阅部署工作负载

一个人可以担任其中一个或多个角色。为了获得最高安全性,Confidential Space 支持一种信任模型,其中数据协作者、工作负载作者和工作负载操作员是独立的相互不信任的各方。所有角色都必须相互协作才能获得所需的结果。

Confidential Space 流示例

Confidential Space 利用多种 Google Cloud 服务来帮助机密地处理私人 信息。一般来说,设置 Confidential Space 的过程可能类似于以下过程:

  1. 多个数据协作者将已加密的机密数据存储在自己的隔离 Google Cloud 项目中,这些项目通常位于不同的组织中。他们希望比较和处理这些数据,而不向彼此或外部方透露这些数据。加密的数据可能位于 Cloud StorageBigQuery或其他服务中。

  2. 数据协作者创建模拟的非机密数据,供测试工作负载处理。这些数据可能是不同的文件,也可能位于不同的位置,例如单独的 Cloud Storage 存储桶。

  3. 数据协作者创建工作负载身份池 (WIP)。 稍后,在工作负载操作员的单独隔离项目中运行的工作负载可以使用该 WIP 访问协作者的机密数据。

  4. 工作负载作者编写代码来处理机密数据。在与数据协作者和工作负载操作员分开的 项目中,他们 使用 Docker 构建容器化映像,并将其上传到 Artifact Registry

  5. 工作负载操作员在隔离的项目中创建一个服务帐号,该账号对数据协作者的已加密机密数据的存储位置具有读取权限,并对某个位置(例如 Cloud Storage 存储桶)具有写入权限,以输出解密数据的处理结果。稍后,此服务帐号会关联到运行工作负载的机密虚拟机。

  6. 数据协作者向其 提供方添加 工作负载身份池。他们向提供方添加详细信息,例如必须使用的 证明服务、 用于在日志中创建审核跟踪的属性映射 以及 属性条件。 这些详细信息用于验证 断言 由 Confidential Space 映像、工作负载容器和工作负载虚拟机 实例所做。如果工作负载通过此验证,则允许其访问和解密机密数据。

  7. 通过在工作负载操作员的项目中启动机密虚拟机实例,在非机密数据上测试工作负载。该虚拟机基于 Confidential Space 映像的调试版本,该版本会加载容器化的工作负载。

    在验证虚拟机的证明并且工作负载通过数据协作者的条件后,关联到虚拟机的服务帐号可以访问机密数据、处理该数据并输出结果。

  8. 监控和调试完成后,工作负载会更新以供生产使用。数据协作者会根据需要进一步更新和锁定其工作负载身份提供方,并且他们可能会选择先在非机密数据上测试生产工作负载。

  9. 所有方都对生产工作负载进行签名,并且该工作负载已准备好开始处理机密数据。

要求

Confidential Space 需要机密虚拟机才能正常运行。机密虚拟机实例必须使用 AMD SEV、Intel TDX 或 Intel TDX with NVIDIA Confidential Computing 作为机密计算技术。如需了解硬件配置选项以及可以在哪些位置创建机密虚拟机实例,请参阅 支持的配置

后续步骤