Présentation de Confidential Space


Confidential Space fournit un environnement isolé pour traiter les données sensibles de plusieurs parties, afin que les propriétaires de ces données puissent les garder confidentielles. Les données sensibles peuvent inclure des informations permettant d'identifier personnellement l'utilisateur, des informations de santé protégées, des droits de propriété intellectuelle, des secrets cryptographiques, des modèles de machine learning (ML) ou autre.

Vous pouvez utiliser Confidential Space pour traiter des données sensibles qui ne sont visibles que par leurs propriétaires d'origine et une charge de travail mutuellement convenue. Vous pouvez également l'utiliser pour offrir aux clients finaux une meilleure confidentialité des données, car l'opérateur ou le propriétaire d'un environnement Confidential Space ne peut pas accéder aux données en cours de traitement.

Confidential Space utilise un environnement d'exécution sécurisé (TEE) qui peut être utilisé pour ne publier vos secrets qu'à des charges de travail autorisées. Un processus d'attestation et une image de l'OS renforcée permettent de protéger la charge de travail et les données qu'elle traite à partir d'un opérateur.

Pour en savoir plus sur les cas d'utilisation et le modèle de sécurité de Confidential Space, consultez la présentation de la sécurité Confidential Space.

Composants Confidential Space

Un système Confidential Space comporte trois composants principaux :

  • Une charge de travail : une image conteneurisée contenant du code qui traite les ressources protégées. Elle s'exécute sur une image Confidential Space, un système d'exploitation renforcé basé sur Container-Optimized OS. Cette solution s'exécute sur une VM confidentielle, un TEE basé sur le cloud qui offre des fonctionnalités d'isolation matérielle et d'attestation à distance. La charge de travail se trouve généralement dans un projet distinct des ressources protégées.

  • Service d'attestation : un vérificateur d'attestation à distance qui renvoie des preuves d'attestation sous la forme de jetons OpenID Connect (OIDC). Les jetons contiennent des attributs d'identification pour la charge de travail. Le service d'attestation s'exécute dans la même région que la charge de travail.

  • Ressources protégées : ressources gérées protégées par un système d'authentification et d'autorisation. Si les ressources se trouvent dans Google Cloud, il peut s'agir de ressources cloud gérées telles que des clés Cloud Key Management Service (Cloud KMS) ou des buckets Cloud Storage. Si les ressources ne se trouvent pas dans Google Cloud (par exemple, dans un environnement sur site ou dans un autre cloud), elles peuvent être n'importe quelle ressource.

Rôles Confidential Space

Les composants d'un système Confidential Space sont gérés par des personnes ayant trois rôles distincts :

  • Collaborateurs de données : personnes ou organisations qui possèdent les ressources protégées sur lesquelles la charge de travail opère. Les collaborateurs de données peuvent accéder à leurs propres données, définir des autorisations sur ces données et, en fonction de la sortie de la charge de travail, accéder aux résultats basés sur ces données.

    Les collaborateurs de données ne peuvent pas accéder aux données des autres collaborateurs ni modifier le code de la charge de travail.

    Pour en savoir plus sur le rôle des collaborateurs de données, consultez Créer des ressources confidentielles et y accorder l'accès.

  • Auteur de la charge de travail : personne qui crée l'application qui accède aux données confidentielles et les traite. Ils ajoutent l'application à une image conteneurisée, par exemple à l'aide de Docker, et importent l'image dans un dépôt tel que Artifact Registry.

    L'auteur de la charge de travail n'a pas accès aux données ni aux résultats, et ne peut pas non plus contrôler l'accès à ces éléments.

    Pour en savoir plus sur le rôle de l'auteur de la charge de travail, consultez Créer et personnaliser des charges de travail.

  • Opérateur de charge de travail : personne qui exécute la charge de travail. L'opérateur de charge de travail dispose généralement de droits d'administration complets sur le projet dans lequel il exécute la charge de travail. Par exemple, ils peuvent gérer les ressources de leur projet (telles que les instances, les disques et les règles de mise en réseau Compute Engine) et interagir avec n'importe quelle APIGoogle Cloud qui agit sur celles-ci.

    L'opérateur de charge de travail n'a pas accès aux données et ne peut pas non plus contrôler leur accès. Ils ne peuvent pas influencer ni modifier le code de la charge de travail ou l'environnement d'exécution.

    Pour en savoir plus sur le rôle de l'opérateur de charge de travail, consultez Déployer des charges de travail.

Une personne peut assumer un ou plusieurs de ces rôles. Pour une sécurité optimale, Confidential Space est compatible avec un modèle de confiance dans lequel les collaborateurs de données, les auteurs de charges de travail et les opérateurs de charges de travail sont des parties distinctes, qui ne se font pas confiance. Tous les rôles doivent collaborer pour obtenir les résultats dont ils ont besoin.

Exemple de flux Confidential Space

Confidential Space utilise plusieurs services Google Cloud pour permettre le traitement confidentiel des informations privées. En général, la configuration d'Confidential Space peut ressembler à la procédure suivante :

  1. Plusieurs collaborateurs de données stockent des données confidentielles chiffrées dans leurs propres projets isolés Google Cloud , souvent dans des organisations différentes. Ils souhaitent comparer et traiter ces données sans les révéler les uns aux autres ni à des tiers. Les données chiffrées peuvent se trouver dans Cloud Storage, BigQuery ou un autre service.

  2. Les collaborateurs de données créent des données fictives et non confidentielles pour qu'une charge de travail de test puisse fonctionner. Ces données peuvent être des fichiers différents ou se trouver dans un autre emplacement, comme un bucket Cloud Storage distinct.

  3. Les collaborateurs de données créent un pool d'identités de charge de travail (WIP). Par la suite, une charge de travail s'exécutant dans le projet distinct et isolé d'un opérateur de charge de travail peut utiliser ce pool d'identités de charge de travail pour accéder aux données confidentielles des collaborateurs.

  4. L'auteur de la charge de travail écrit du code pour traiter les données confidentielles. Dans un projet distinct de celui des collaborateurs de données et de l'opérateur de charge de travail, ils créent une image conteneurisée avec Docker et l'importent dans Artifact Registry.

  5. L'opérateur de charge de travail crée un compte de service dans un projet isolé qui dispose d'un accès en lecture à l'emplacement où sont stockées les données confidentielles chiffrées des collaborateurs de données, et d'un accès en écriture à un emplacement (par exemple, un bucket Cloud Storage) pour générer le résultat de l'opération sur les données déchiffrées. Ce compte de service est ensuite associé à une Confidential VM qui exécute la charge de travail.

  6. Les collaborateurs de données ajoutent un fournisseur à leurs pools d'identités de charge de travail. Ils ajoutent des détails au fournisseur, comme le service d'attestation à utiliser, les mappages d'attributs pour créer un journal d'audit dans les journaux et les conditions d'attributs. Ces informations permettent de vérifier les assertions faites par l'image Confidential Space, le conteneur de charge de travail et l'instance de VM de charge de travail. Si la charge de travail réussit cette validation, elle est autorisée à accéder aux données confidentielles et à les déchiffrer.

  7. La charge de travail est testée sur les données non confidentielles en démarrant une instance Confidential VM dans le projet de l'opérateur de charge de travail. La VM est basée sur une version de débogage de l'image Confidential Space qui charge la charge de travail conteneurisée.

    Une fois les attestations de la VM vérifiées et la charge de travail conforme aux conditions des collaborateurs de données, le compte de service associé à la VM est autorisé à accéder aux données confidentielles, à les traiter et à générer un résultat.

  8. Une fois la surveillance et le débogage terminés, la charge de travail est mise à jour pour une utilisation en production. Les collaborateurs de données mettent à jour et verrouillent davantage leurs fournisseurs d'identité de charge de travail si nécessaire, et ils peuvent choisir de tester d'abord la charge de travail de production sur des données non confidentielles.

  9. Toutes les parties approuvent la charge de travail de production, qui est prête à traiter des données confidentielles.

Conditions requises

Confidential Space nécessite Confidential VM pour fonctionner. Les instances Confidential VM doivent utiliser AMD SEV, Intel TDX ou Intel TDX avec NVIDIA Confidential Computing (version preview) comme technologie d'informatique confidentielle. Consultez Configurations compatibles pour en savoir plus sur les options de configuration matérielle et sur les emplacements dans lesquels les instances Confidential VM peuvent être créées.

Étapes suivantes