Confidential Space proporciona un entorno aislado para operar con datos sensibles de varias partes, de modo que los propietarios de esos datos puedan mantenerlos confidenciales. Los datos sensibles pueden incluir información de identificación personal (PII), información de salud protegida (PHI), propiedad intelectual, secretos criptográficos, modelos de aprendizaje automático (AA) o interacciones con modelos de lenguaje grandes (LLMs).
Puedes usar Confidential Space para operar con datos sensibles que solo sean visibles para sus propietarios originales y una carga de trabajo acordada mutuamente. Como alternativa, puedes usarlo para ofrecer a los clientes finales una mayor privacidad de los datos, ya que el operador o propietario de un entorno de Confidential Space no puede acceder a los datos que se están procesando.
Confidential Space es un entorno de ejecución confiable (TEE) que se puede usar para liberar tus secretos solo en cargas de trabajo autorizadas. Un proceso de certificación y una imagen de SO endurecida ayudan a proteger la carga de trabajo y los datos que procesa la carga de trabajo desde un operador.
Para obtener más detalles sobre los casos de uso y el modelo de seguridad de Confidential Space, consulta la Descripción general de la seguridad de Confidential Space.
Componentes de Confidential Space
Un sistema de Confidential Space tiene tres componentes principales:
Una carga de trabajo: Una imagen alojada en contenedores que contiene código que procesa los recursos protegidos. Se ejecuta sobre una imagen de Confidential Space, un SO endurecido basado en Container-Optimized OS. A su vez, se ejecuta en una Confidential VM que ofrece aislamiento de hardware y capacidades de certificación remota. Por lo general, la carga de trabajo se encuentra en un proyecto separado de los recursos protegidos.
El servicio de certificación: Un verificador de certificación remota que muestra evidencia de certificación en forma de OpenID Connect (OIDC) tokens. Los tokens contienen atributos de identificación para la carga de trabajo. El servicio de certificación se ejecuta en la misma región en la que se ejecuta la carga de trabajo.
Recursos protegidos: Recursos administrados que están protegidos por un sistema de autenticación y autorización. Si los recursos están en Google Cloud, pueden ser recursos de nube administrados, como claves de Cloud Key Management Service (Cloud KMS) o buckets de Cloud Storage. Si los recursos no están en Google Cloud (por ejemplo, en un entorno local o en otra nube), pueden ser cualquier recurso.
Roles de Confidential Space
Los componentes de un sistema de Confidential Space son administrados por personas con tres roles distintos:
Colaboradores de datos: Las personas u organizaciones que poseen los recursos protegidos que procesa la carga de trabajo. Los colaboradores de datos pueden acceder a sus propios datos, establecer permisos en esos datos y, según el resultado de la carga de trabajo, pueden acceder a los resultados basados en esos datos.
Los colaboradores de datos no pueden acceder a los datos de los demás ni modificar el código de la carga de trabajo.
Consulta Crea recursos confidenciales y otorga acceso a ellos para obtener más información sobre el rol de los colaboradores de datos.
Autor de la carga de trabajo: La persona que crea la aplicación que accede a los datos confidenciales y los procesa. Agrega la aplicación a una imagen alojada en contenedores, por ejemplo, con Docker, y sube la imagen a un repositorio como Artifact Registry.
El autor de la carga de trabajo no tiene acceso a los datos ni a los resultados, y tampoco puede controlar el acceso a ellos.
Consulta Crea y personaliza cargas de trabajo para obtener más información sobre el rol del autor de la carga de trabajo.
Operador de carga de trabajo: La persona que ejecuta la carga de trabajo. Por lo general, el operador de la carga de trabajo tiene privilegios administrativos completos en el proyecto en el que ejecuta la carga de trabajo. Por ejemplo, puede administrar recursos en su proyecto (como instancias de Compute Engine, discos y reglas de red) y puede interactuar con cualquier Google Cloud API que actúe sobre ellos.
El operador de la carga de trabajo no tiene acceso a los datos y tampoco puede controlar el acceso a ellos. No puede influir en el código de la carga de trabajo ni en el entorno de ejecución, ni tampoco modificarlos.
Consulta Implementa cargas de trabajo para obtener más información sobre el rol del operador de la carga de trabajo.
Una persona puede asumir uno o más de estos roles. Para obtener la máxima seguridad, Confidential Space admite un modelo de confianza en el que los colaboradores de datos, los autores de cargas de trabajo y los operadores de cargas de trabajo son partes independientes que no confían entre sí. Todos los roles deben colaborar entre sí para obtener los resultados que necesitan.
Un ejemplo de flujo de Confidential Space
Confidential Space usa varios Google Cloud servicios para ayudar a que la información privada se opere de forma confidencial. En general, configurar un Confidential Space puede parecerse al siguiente proceso:
Varios colaboradores de datos almacenan datos confidenciales encriptados en sus propios proyectos Google Cloud aislados, a menudo en diferentes organizaciones. Quieren comparar y procesar esos datos sin revelarlos entre sí ni a terceros. Los datos encriptados pueden residir en Cloud Storage, BigQuery o en otro servicio.
Los colaboradores de datos crean datos simulados y no confidenciales para que una carga de trabajo de prueba opere con ellos. Estos datos pueden ser archivos diferentes o residir en un lugar diferente, como un bucket de Cloud Storage independiente.
Los colaboradores de datos crean un grupo de identidades para cargas de trabajo (WIP). Más adelante, una carga de trabajo que se ejecuta en el proyecto aislado y separado de un operador de carga de trabajo puede usar ese WIP para acceder a los datos confidenciales de los colaboradores.
El autor de la carga de trabajo escribe código para procesar los datos confidenciales. En un proyecto separado de los colaboradores de datos y el operador de la carga de trabajo, compila una imagen alojada en contenedores con Docker y la sube a Artifact Registry.
El operador de la carga de trabajo crea una cuenta de servicio en un proyecto aislado que tiene acceso de lectura al lugar donde se almacenan los datos confidenciales encriptados de los colaboradores de datos y acceso de escritura a algún lugar (por ejemplo, un bucket de Cloud Storage) para generar el resultado de operar con los datos desencriptados. Más adelante, esta cuenta de servicio se adjunta a una Confidential VM que ejecuta la carga de trabajo.
Los colaboradores de datos agregan un proveedor a sus grupos de Workload Identity. Agregan detalles al proveedor, como el servicio de certificación que se debe usar, las asignaciones de atributos para crear un registro de auditoría en los registros y las condiciones de los atributos. Estos detalles verifican las aserciones que realizan la imagen de Confidential Space, el contenedor de la carga de trabajo y la instancia de VM de la carga de trabajo. Si la carga de trabajo pasa esta verificación, se le permite acceder a los datos confidenciales y desencriptarlos.
Para probar la carga de trabajo en los datos no confidenciales, se inicia una instancia de Confidential VM en el proyecto del operador de la carga de trabajo. La VM se basa en una versión de depuración de la imagen de Confidential Space que carga la carga de trabajo alojada en contenedores.
Después de que se verifican las certificaciones de la VM y la carga de trabajo pasa las condiciones de los colaboradores de datos, la cuenta de servicio adjunta a la VM puede acceder a los datos confidenciales, procesarlos y generar un resultado.
Una vez que se completa la supervisión y la depuración, se actualiza la carga de trabajo para su uso en producción. Los colaboradores de datos actualizan y bloquean aún más sus proveedores de identidad de carga de trabajo si es necesario, y pueden optar por probar primero la carga de trabajo de producción en datos no confidenciales.
Todas las partes aprueban la carga de trabajo de producción, y está lista para comenzar a trabajar con datos confidenciales.
Requisitos
Confidential Space requiere que Confidential VM funcione. Las instancias de Confidential VM deben usar AMD SEV, Intel TDX o Intel TDX con NVIDIA Confidential Computing como tecnología de Confidential Computing. Consulta Configuraciones admitidas para obtener información sobre las opciones de configuración de hardware y las ubicaciones en las que se pueden crear instancias de Confidential VM.
¿Qué sigue?
Obtén más información sobre las imágenes de Confidential Space.
Usa el SDK de Prompt Encryption para entregar un LLM en un TEE. Consulta el codelab para obtener instrucciones.