Descripción general de Confidential Space


Confidential Space proporciona un entorno aislado para operar en datos sensibles, mientras que los propietarios de esos datos conservan la confidencialidad. 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 (ML) o cualquier otro tipo de datos.

Puedes usar Confidential Space para operar en datos sensibles que solo sean visibles para sus propietarios originales y una carga de trabajo mutuamente acordada. 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 usa 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 Descripción general de seguridad de Confidential Space.

Componentes de Confidential Space

Un sistema de Confidential Space tiene tres componentes principales:

  • Una carga de trabajo: Es 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 VM confidencial de SEV de AMD o Intel TDX (versión preliminar), un TEE basado en la nube que ofrece aislamiento de hardware y capacidades de certificación remota. La carga de trabajo se encuentra en un proyecto separado de los recursos protegidos.

  • El servicio de certificación: Es un verificador de certificación remoto que muestra pruebas de certificación en forma de tokens de OpenID Connect (OIDC). 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: Son 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

Las personas con tres roles distintos administran los componentes de un sistema de Confidential Space:

  • Colaboradores de datos: Son las personas o las organizaciones que poseen los recursos protegidos en los que opera la carga de trabajo. Los colaboradores de datos pueden acceder a sus propios datos, establecer permisos en ellos y, según el resultado de la carga de trabajo, acceder a los resultados en función de 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 Cómo crear y otorgar acceso a recursos confidenciales para obtener más información sobre el rol de los colaboradores de datos.

  • Autor de la carga de trabajo: Es la persona que crea la aplicación que accede a los datos confidenciales y los procesa. Agregan la aplicación a una imagen con contenedor con Docker y la suben a 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 Cómo crear y personalizar cargas de trabajo para obtener más información sobre el rol del autor de la carga de trabajo.

  • Operador de carga de trabajo: Es 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, pueden administrar recursos en su proyecto (como instancias de Compute Engine, discos y reglas de red) y pueden interactuar con cualquier API de Google Cloud que actúe sobre ellos.

    El operador de la carga de trabajo no tiene acceso a los datos ni puede controlar el acceso a ellos. No pueden influir en el código de la carga de trabajo ni en el entorno de ejecución ni modificarlos.

    Consulta Implementa cargas de trabajo para obtener más información sobre el rol del operador de cargas de trabajo.

Una persona puede asumir uno o más de estos roles. Para obtener la mayor 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.

Ejemplo de un flujo de Confidential Space

Confidential Space usa varios servicios de Google Cloud para ayudar a que la información privada se opere de forma confidencial. En general, la configuración de Confidential Space podría ser similar al siguiente proceso:

  1. Varios colaboradores de datos almacenan datos confidenciales encriptados en sus propios proyectos aislados de Google Cloud , a menudo en diferentes organizaciones. Quieren comparar y procesar esos datos sin revelarlos entre sí ni a terceros. Los datos encriptados pueden estar en Cloud Storage, BigQuery o en otro servicio.

  2. Los colaboradores de datos crean datos simulados y no confidenciales para que funcione una carga de trabajo de prueba. Estos datos pueden ser archivos diferentes o estar en un lugar diferente, como un bucket de Cloud Storage independiente.

  3. Cada colaborador de datos crea una cuenta de servicio en sus proyectos que puede desencriptar sus datos. Conectan esas cuentas de servicio a un grupo de identidades para cargas de trabajo (WIP). Más adelante, una carga de trabajo que se ejecuta en el proyecto independiente y aislado de un operador de cargas de trabajo puede usar ese WIP para suplantar la identidad de las cuentas de servicio de desencriptación si cumple con ciertas condiciones.

  4. El autor de la carga de trabajo escribe código para procesar los datos confidenciales. En un proyecto independiente de los colaboradores de datos y el operador de cargas de trabajo, compilan una imagen contenedorizada con Docker y la suben a Artifact Registry.

  5. El operador de la carga de trabajo crea una cuenta de servicio en un proyecto aislado que tiene acceso de lectura a la ubicación 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 mostrar el resultado de las operaciones en los datos desencriptados. Más adelante, esta cuenta de servicio se adjunta a una VM confidencial que ejecuta la carga de trabajo.

  6. Los colaboradores de datos agregan el verificador de certificación de Confidential Space como proveedor a sus grupos de Workload Identity. También agregan condiciones de atributos al proveedor que la carga de trabajo debe pasar para poder acceder a sus datos y desencriptarlos. Estas condiciones incluyen verificar las certificaciones de la VM de la carga de trabajo, el resumen de imágenes de la carga de trabajo, si se configuraron las variables de entorno y mucho más. Para obtener más información, consulta Afirmaciones de certificación.

  7. Para probar la carga de trabajo en los datos no confidenciales, se inicia una VM confidencial 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 en contenedor.

    Después de que se verifiquen las certificaciones de la VM y la carga de trabajo cumpla con las condiciones de los colaboradores de datos, la cuenta de servicio adjunta a la VM puede suplantar la identidad de las cuentas de servicio de desencriptación. Las cuentas de servicio de colaborador de datos pasan los datos desencriptados a la cuenta de servicio de la carga de trabajo, que los procesa y, luego, genera un resultado.

  8. Una vez que se completen la supervisión y la depuración, se actualizará la carga de trabajo para el uso en producción. Los colaboradores de datos actualizan y bloquean aún más sus proveedores de identidades de cargas de trabajo si es necesario y pueden optar por probar la carga de trabajo de producción en datos no confidenciales primero.

  9. Todas las partes firman la carga de trabajo de producción, y está lista para comenzar a trabajar en los datos confidenciales.

Requisitos

Confidential Space requiere Confidential VM y Certificate Authority Service para funcionar.

¿Qué sigue?