Confidential Space fournit un environnement isolé pour traiter des données sensibles, tout en préservant la confidentialité pour les propriétaires de ces données. Les données sensibles peuvent inclure des informations permettant d'identifier personnellement l'utilisateur, des données de santé protégées, des droits de propriété intellectuelle, des secrets cryptographiques, des modèles de machine learning (ML), etc.
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 confidentialité des données plus stricte, 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 page Présentation de la sécurité Confidential Space.
Composants de Confidential Space
Un système Confidential Space comporte trois composants principaux :
Charge de travail: image conteneurisée contenant du code qui traite les ressources protégées. Il s'exécute sur une image Confidential Space, un système d'exploitation renforcé basé sur Container-Optimized OS. Elle s'exécute ensuite sur une VM confidentielle AMD SEV ou Intel TDX (version preview), 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 dans un projet distinct des ressources protégées.
Service d'attestation: vérificateur d'attestation à distance qui renvoie une preuve 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, elles peuvent être des 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 qui ont trois rôles distincts:
Collaborateurs de données: personnes ou organisations propriétaires des ressources protégées sur lesquelles la charge de travail s'exécute. Les collaborateurs sur les données peuvent accéder à leurs propres données, définir des autorisations sur ces données et, en fonction du résultat de la charge de travail, accéder aux résultats en fonction de ces données.
Les collaborateurs ne peuvent pas accéder aux données des autres ni modifier le code de la charge de travail.
Pour en savoir plus sur le rôle des collaborateurs de données, consultez la section Créer et accorder l'accès à des ressources confidentielles.
Auteur de la charge de travail: personne qui crée l'application qui accède aux données confidentielles et les traite. Il ajoute l'application à une image conteneurisée à l'aide de Docker, puis importe l'image dans 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 à ceux-ci.
Pour en savoir plus sur le rôle de l'auteur de la charge de travail, consultez la section 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 la 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, il peut gérer les ressources de son projet (telles que les instances Compute Engine, les disques et les règles de mise en réseau) et interagir avec n'importe quelle API Google Cloud qui agit sur elles.
L'opérateur de la charge de travail n'a pas accès aux données et ne peut pas non plus contrôler l'accès à celles-ci. Il ne peut ni influencer, ni modifier le code de la charge de travail ou l'environnement d'exécution.
Consultez Déploiement des charges de travail pour en savoir plus sur le rôle de l'opérateur de charge 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 parcours Confidential Space
Confidential Space utilise plusieurs services Google Cloud pour faciliter le traitement confidentiel des informations privées. En général, la configuration d'Confidential Space peut se présenter comme suit:
Plusieurs collaborateurs stockent des données confidentielles chiffrées dans leurs propres projets Google Cloud isolés, souvent dans différentes organisations. 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.
Les collaborateurs de données créent des données fictives et non confidentielles sur lesquelles une charge de travail de test peut s'exécuter. Ces données peuvent être des fichiers différents ou se trouver dans un emplacement différent, comme un bucket Cloud Storage distinct.
Les collaborateurs sur les données créent chacun un compte de service dans leurs projets qui peut déchiffrer leurs données. Ils associent ces comptes de service à un pool d'identités de charge de travail (WIP). Par la suite, une charge de travail exécutée dans le projet distinct et isolé d'un opérateur de charge de travail peut utiliser ce WIP pour usurper l'identité des comptes de service de déchiffrement si elle remplit certaines conditions.
L'auteur de la charge de travail écrit du code pour traiter les données confidentielles. Dans un projet distinct de celui des collaborateurs sur les données et de l'opérateur de charge de travail, il crée une image conteneurisée avec Docker et l'importe dans Artifact Registry.
L'opérateur de charge de travail crée un compte de service dans un projet isolé qui a un accès en lecture à l'emplacement où sont stockées les données confidentielles chiffrées des collaborateurs de données et un accès en écriture à un emplacement (par exemple, un bucket Cloud Storage) pour afficher le résultat de l'opération sur les données déchiffrées. Par la suite, ce compte de service est associé à une VM Confidential qui exécute la charge de travail.
Les collaborateurs sur les données ajoutent le vérificateur d'attestation Confidential Space en tant que fournisseur à leurs pools d'identités de charge de travail. Ils ajoutent également des conditions d'attribut au fournisseur que la charge de travail doit respecter pour pouvoir accéder à ses données et les déchiffrer. Ces conditions incluent la vérification des attestations de la VM de la charge de travail, le récapitulatif d'image de la charge de travail, si des variables d'environnement ont été définies, etc. Pour en savoir plus, consultez la section Assertions d'attestation.
La charge de travail est testée sur les données non confidentielles en démarrant une VM de Confidential VMs 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 validées et que la charge de travail a satisfait aux conditions des collaborateurs de données, le compte de service associé à la VM est autorisé à usurper l'identité des comptes de service de déchiffrement. Les comptes de service des collaborateurs de données transfèrent les données déchiffrées au compte de service de la charge de travail, qui les traite, puis génère un résultat.
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. Ils peuvent également choisir de tester d'abord la charge de travail de production sur des données non confidentielles.
Toutes les parties valident la charge de travail de production, et elle est prête à commencer à travailler sur des données confidentielles.
Conditions requises
Confidential Space nécessite Confidential VM et Certificate Authority Service pour fonctionner.
Les instances Confidential VM doivent utiliser AMD SEV ou Intel TDX (version preview) comme technologie de informatique confidentielle. Consultez la section Configurations compatibles pour en savoir plus sur les options de configuration matérielle et les emplacements dans lesquels les instances de Confidential VM peuvent être créées.
Certificate Authority Service est disponible dans des emplacements spécifiques. Pour en savoir plus, consultez la section Emplacements des services d'autorité de certification.
Étape suivante
En savoir plus sur les images Confidential Space