Les clés de chiffrement fournies par le client (CSEK) constituent une fonctionnalité de Google Cloud Storage et de Google Compute Engine. Si vous fournissez vos propres clés de chiffrement, Google utilisera votre clé afin de protéger les clés générées par Google pour chiffrer et déchiffrer vos données.
Termes employés dans cette rubrique :
Clé de chiffrement des données (DEK) : clé permettant de chiffrer des données.
Clé de chiffrement de clé (KEK) : clé permettant de chiffrer (ou "encapsuler") une clé de chiffrement des données.
Gestionnaire de cluster : ensemble de processus exécutés sous l'identité d'un gestionnaire de cluster dans l'infrastructure de production de Google. Il met en œuvre la logique qui permet de gérer des ressources Compute Engine telles que les disques et les instances de VM. Il stocke les métadonnées relatives à ces ressources.
Gestionnaire d'instance : ensemble de processus exécutés sous l'identité d'un gestionnaire d'instance dans l'infrastructure de production de Google. Il exécute les modifications apportées aux instances de VM (processus) de la flotte, telles que le démarrage ou l'arrêt de la VM, ou encore l'association ou la dissociation d'un disque. Le gestionnaire de cluster spécifie quel doit être l'état des VM en tout temps, et le gestionnaire d'instance assure l'exécution en fonction de cet état.
Fonctionnement des clés de chiffrement fournies par le client
Vous trouverez ci-dessous des informations sur le fonctionnement des clés de chiffrement fournies par le client avec Google Cloud Storage et Google Compute Engine.
Cloud Storage
Pour utiliser des clés de chiffrement fournies par le client (CSEK) dans Cloud Storage :
Vous fournissez une CSEK brute dans le cadre d'un appel d'API. Cette clé est transmise depuis l'interface frontale de Google vers la mémoire du système de stockage. Elle sert de clé de chiffrement de clé pour vos données dans Google Cloud Storage.
La CSEK brute permet de désencapsuler les clés fragmentées encapsulées pour créer des clés fragmentées brutes dans la mémoire. Celles-ci permettent de déchiffrer des fragments de données hébergés dans les systèmes de stockage. Elles servent de clés de chiffrement des données (DEK) pour vos données dans Google Cloud Storage.
Clé(s) | Stockée(s) dans | Usage | Accessible(s) jusqu'à |
---|---|---|---|
CSEK brute | Mémoire du système de stockage | Fournie par le client. Clé de chiffrement de clé (KEK) pour les clés fragmentées. Encapsule les clés fragmentées. |
La fin de l'opération demandée par le client (par exemple, insertObject ou getObject ). |
Clés fragmentées encapsulées | Périphériques de stockage | Permet de protéger les clés fragmentées stockées au repos. | La suppression de l'objet de stockage. |
Clés fragmentées brutes | Mémoire des périphériques de stockage | Clé de chiffrement des données (DEK) pour les données. Permet de lire et écrire des données sur le disque. |
La fin de l'opération demandée par le client. |
Compute Engine
Pour utiliser des clés de chiffrement fournies par le client dans Compute Engine :
Vous fournissez une CSEK brute dans le cadre d'un appel d'API.
- Vous pouvez éventuellement fournir une clé CSEK encapsulée avec une clé publique.
Cette clé est transmise depuis l'interface frontale de Google vers l'interface frontale du gestionnaire de cluster :
- Si vous avez fourni une CSEK encapsulée, elle est désencapsulée à l'aide d'une clé d'encapsulation asymétrique de Google.
- La CSEK brute est combinée à un nonce cryptographique par disque persistant pour générer une clé dérivée de la CSEK. Cette clé sert de clé de chiffrement de clé pour vos données dans Google Compute Engine.
Dans l'interface frontale du gestionnaire de cluster, la CSEK et la clé dérivée de la CSEK ne sont conservées que dans la mémoire du gestionnaire de cluster. La clé dérivée de la CSEK est utilisée dans la mémoire du gestionnaire de cluster pour désencapsuler les clés de disque encapsulées qui sont stockées dans les métadonnées d'instance du gestionnaire de cluster et les métadonnées du gestionnaire d'instance, où le redémarrage automatique est activé (elles sont différentes des métadonnées d'instance).
- La clé dérivée de la CSEK permet d'encapsuler les clés de disque brutes lors de la création d'un disque, et de désencapsuler ces mêmes clés lors de l'accès à un disque.
- Si le redémarrage automatique est activé, les clés de disque encapsulées sont conservées par le gestionnaire de cluster pendant toute la durée de vie de la VM, afin que celle-ci puisse redémarrer en cas de plantage. Les clés de disque encapsulées sont encapsulées avec une clé d'encapsulation symétrique de Google. En raison de ses autorisations, elle ne peut être utilisée que par Google Compute Engine.
- Si la migration à chaud est activée, la clé de disque brute est transférée depuis la mémoire de l'ancienne instance de VM vers celle de la nouvelle instance de VM, sans que le gestionnaire d'instance ou le gestionnaire de cluster ait besoin de copier la clé.
Les clés de disque brutes sont transmises à la mémoire du gestionnaire de cluster, du gestionnaire d'instance et de la machine virtuelle. Ces clés servent de clés de chiffrement des données pour vos données dans Google Compute Engine.
Clé(s) | Détenue(s) par | Usage | Accessible(s) jusqu'à |
---|---|---|---|
CSEK brute | Interface frontale du gestionnaire de cluster | Fournie par le client. Permet de dériver la clé dérivée de la CSEK en ajoutant un nonce cryptographique. |
La fin de l'opération demandée par le client (par exemple, instances.insert ou instances.attachDisk ). |
CSEK encapsulée avec une clé publique (Facultatif, en cas de recours à l'encapsulation d'une clé RSA) |
Interface frontale du gestionnaire de cluster | Éventuellement fournie par le client. Permet de dériver la clé dérivée de la CSEK en la désencapsulant d'abord avec une clé asymétrique de Google. |
La fin de l'opération demandée par le client. |
Clé d'encapsulation asymétrique (en cas de recours à l'encapsulation d'une clé RSA) |
Service de gestion des clés interne de Google | Permet de désencapsuler une clé encapsulée en RSA fournie par le client. | Indéfiniment |
Clé dérivée de la CSEK | Interface frontale du gestionnaire de cluster | Clé de chiffrement de clé (KEK) pour les clés de disque. Encapsule les clés de disque. |
La fin de l'opération d'encapsulation ou de désencapsulation de la clé. |
Clés de disque encapsulées par Google (Facultatif, en cas de recours au redémarrage automatique) |
Interface frontale du gestionnaire de cluster | Permet de protéger les clés de disque stockées au repos, pour les disques associés aux instances en cours d'exécution. Permet de redémarrer l'instance en cas de perte de la mémoire de la VM (par exemple, plantage de l'hôte). |
L'arrêt ou la suppression de la VM. |
Clés de disque brutes | Mémoire du moniteur de la machine virtuelle (VMM), mémoire du gestionnaire de cluster (CM) |
Clé de chiffrement des données (DEK) pour les données. Permet de lire et écrire des données sur le disque, de migrer à chaud la VM, et d'effectuer des mises à niveau sur place. |
L'arrêt ou la suppression de la VM. |
Clé dérivée de la CSEK encapsulée par Google | Base de données du gestionnaire de cluster | Permet de redémarrer l'opération en cas d'échec. | La fin de l'opération demandée par le client. |
.
Protection des clés de chiffrement fournies par le client
Cette section décrit comment les clés de chiffrement fournies par le client sont protégées sur le disque, lorsqu'elles circulent sur l'infrastructure Google Cloud Platform, et dans la mémoire.
Sur le disque
Les clés CSEK brutes, les clés dérivées de la CSEK et les clés fragmentées/clés de disque brutes ne sont jamais stockées sur un disque non chiffré. Les clés fragmentées/clés de disque brutes sont stockées sous forme encapsulée avec des clés dérivées de la CSEK et avec des clés Google en cas de recours au redémarrage automatique. Google ne stocke pas vos clés sur ses serveurs de manière permanente.
Déplacement autour de l'infrastructure
Chaque service spécifie exactement quels autres services peuvent communiquer avec lui grâce aux fonctionnalités de gestion des accès fournies par l'infrastructure. Ce service est configuré avec la liste blanche des identités de compte de service autorisées, et cette restriction d'accès est ensuite automatiquement appliquée par l'infrastructure. Pour en savoir plus, consultez la section Identité, intégrité et isolement du service.
Parallèlement aux fonctionnalités d'authentification et d'autorisation sur les appels RPC, décrites dans les sections précédentes, l'infrastructure fournit également une confidentialité et une intégrité par chiffrement pour les données RPC du réseau. Les services peuvent configurer le niveau de protection par chiffrement qu'ils souhaitent pour chaque appel RPC d'infrastructure. Ces niveaux sont activés pour les clés de chiffrement fournies par le client. Pour en savoir plus, consultez la section relative au chiffrement des communications entre les services.
Dans la mémoire
Le matériel de la clé réside dans la mémoire de divers systèmes, comme indiqué ci-dessus, y compris la mémoire du gestionnaire de cluster et celle du moniteur de la machine virtuelle. L'accès à la mémoire de ces systèmes est exceptionnel, par exemple dans le cadre d'un incident, et géré par des listes de contrôle d'accès. Ces systèmes ont désactivé le vidage de la mémoire ou analysent automatiquement le matériel de la clé dans le vidage de la mémoire. L'accès aux tâches mêmes est limité à un petit nombre d'ingénieurs en fiabilité des sites, selon les besoins, dans le cadre de leur rôle de maintenance du service, et l'accès aux journaux est cantonné à un petit nombre d'ingénieurs logiciel chargés du débogage de ces fonctionnalités.
En savoir plus
- Clés de chiffrement fournies par le client dans Google Cloud Storage
- Clés de chiffrement fournies par le client dans Google Compute Engine