Cette page traite des clés de chiffrement gérées par le client et de leur utilisation dans Cloud Storage. Pour en savoir plus sur les autres options de chiffrement, consultez la page Options de chiffrement des données.
Présentation
Si vous avez besoin de davantage de contrôle sur les opérations de clé que ne le permet le chiffrement Cloud Storage standard, vous pouvez utiliser des clés de chiffrement gérées par le client. Ces clés sont créées et gérées à l'aide de Cloud Key Management Service (Cloud KMS), et vous les stockez sous forme de clés logicielles dans un cluster HSM ou en externe. Vous pouvez utiliser des clés de chiffrement gérées par le client sur des objets individuels ou configurer votre bucket pour utiliser une clé par défaut sur tous les nouveaux objets ajoutés à un bucket.
Lorsque vous utilisez une clé de chiffrement gérée par le client, un objet est chiffré avec la clé par Cloud Storage au moment de son stockage dans un bucket. L'objet est automatiquement déchiffré par Cloud Storage lorsque l'objet est destiné aux demandeurs.
Utilisation de la clé
Lorsque vous appliquez une clé de chiffrement gérée par le client à un objet, Cloud Storage utilise cette clé pour chiffrer :
- les données de l'objet ;
- la somme de contrôle CRC32C de l'objet ;
- le hachage MD5 de l'objet.
Cloud Storage utilise des clés côté serveur standards pour chiffrer les métadonnées restantes de l'objet, y compris son nom. Ainsi, si vous disposez des autorisations requises, vous pouvez effectuer certaines actions, par exemple lire la plupart des métadonnées, répertorier des objets et supprimer des objets, même après avoir désactivé ou détruit la "clé de chiffrement gérée par le client" associée.
Agents de service
Chaque projet possède un compte de service Cloud Storage spécial, appelé agent de service, qui effectue le chiffrement et le déchiffrement à l'aide de clés de chiffrement gérées par le client. Une fois que vous avez attribué l'accès de l'agent de service à une clé de chiffrement, cet agent chiffre :
- les objets ajoutés à un bucket qui utilise la clé comme clé par défaut ;
- les objets spécifiques qui, selon vos indications, doivent être chiffrés avec cette clé.
Lors de l'ajout ou de la réécriture d'un objet dans Cloud Storage, si une clé par défaut est définie sur votre bucket et qu'une clé spécifique est également incluse dans votre requête, Cloud Storage chiffre l'objet à l'aide de la clé spécifique.
Lorsqu'un demandeur souhaite lire un objet chiffré avec une clé de chiffrement gérée par le client, il lui suffit d'accéder à l'objet comme il le ferait habituellement. Lors d'une requête de ce type, l'agent de service déchiffre automatiquement l'objet demandé à condition que :
- l'agence de service ait toujours l'autorisation de le déchiffrer à l'aide de la clé ;
- vous n'ayez pas désactivé ni détruit la clé.
Si l'une de ces conditions n'est pas remplie, l'agent de service ne déchiffre pas les données, et la requête échoue.
Restrictions
Les restrictions suivantes s'appliquent en cas d'utilisation de clés de chiffrement gérées par le client :
Vous ne pouvez pas chiffrer un objet avec une clé de chiffrement gérée par le client en mettant à jour les métadonnées de cet objet. À la place, incluez la clé dans le cadre d'une réécriture de l'objet.
gcloud storage
utilise la commandeobjects update
pour définir des clés de chiffrement sur les objets, mais la commande réécrit l'objet dans le cadre de la requête.
Vous devez créer le trousseau de clé Cloud KMS au même emplacement que celui des données que vous souhaitez chiffrer. Par exemple, si votre bucket est situé dans
US-EAST1
, les trousseaux de clés utilisés pour chiffrer des objets dans ce bucket doivent également être créés dansUS-EAST1
.Pour la plupart des emplacements birégionaux, vous devez créer le trousseau de clés Cloud KMS dans l'emplacement multirégional associé. Par exemple, si votre bucket est situé dans la paire
US-EAST1
,US-WEST1
, tout trousseau de clés utilisé pour chiffrer des objets dans ce bucket doit être créé dans l'emplacement multirégionalUS
.Pour les emplacements birégionaux prédéfinis
ASIA1
,EUR4
etNAM4
, vous devez créer le trousseau de clés dans l'emplacement birégional prédéfini.Pour connaître les emplacements Cloud KMS disponibles, consultez la page Emplacements Cloud KMS.
Les taux de chiffrement et de déchiffrement de Cloud KMS sont soumis à un quota.
La somme de contrôle CRC32C et le hachage MD5 des objets chiffrés avec des clés de chiffrement gérées par le client ne sont pas renvoyés lors de la création d'une liste d'objets avec l'API JSON.
- Le cas échéant, certains outils, tels que
gcloud storage
, effectuent une requête de métadonnées supplémentaireGET
sur chaque objet chiffré avec une clé de chiffrement gérée par le client afin de récupérer les informations sur les hachages CRC32C et MD5. Ces requêtes supplémentaires peuvent ralentir considérablement l'opération répertoriant ces objets chiffrés par rapport à la même opération effectuée avec le chiffrement Cloud Storage standard.
- Le cas échéant, certains outils, tels que
Cloud Storage ne peut pas utiliser la partie servant au déchiffrement des clés asymétriques stockées dans Cloud KMS pour déchiffrer automatiquement les objets concernés de la même manière que les clés de chiffrement gérées par le client.
Relation avec les clés de chiffrement fournies par le client
En plus du chiffrement géré par le client, Cloud Storage propose des clés de chiffrement fournies par le client afin de contrôler le chiffrement des données. Vous pouvez chiffrer divers objets dans un seul bucket au moyen de différentes méthodes de chiffrement, mais tenez compte des points suivants :
Un seul objet ne peut être chiffré que par l'une de ces méthodes à la fois.
Si une clé gérée par le client par défaut est définie pour votre bucket et que vous spécifiez une clé fournie par le client dans une requête, Cloud Storage chiffre l'objet à l'aide de la clé fournie par le client.
Gestion des clés
Cette section décrit les considérations importantes concernant la rotation, le remplacement, et la désactivation ou la destruction des clés.
Rotation des clés
Cloud KMS est compatible avec la rotation des clés automatique et manuelle vers une nouvelle version. Après avoir configuré la rotation d'une clé, Cloud Storage utilise la nouvelle version pour toutes les opérations permettant d'effectuer le chiffrement à l'aide de la clé. Exemples :
Importation d'objets dans les buckets utilisant la clé comme clé de chiffrement par défaut
Opérations d'importation, de copie et de réécriture d'objets utilisant spécifiquement la clé en question
Les versions précédentes de la clé ne sont ni désactivées, ni détruites. Cloud Storage peut donc déchiffrer les objets existants qui ont déjà été chiffrés à l'aide de ces versions.
Remplacement des clés
Suivez les instructions ci-dessous lorsque vous remplacez la clé utilisée pour chiffrer des objets Cloud Storage par une nouvelle clé.
Vérifiez vos buckets pour identifier ceux qui utilisent la clé comme clé de chiffrement par défaut. Pour ces buckets, remplacez l'ancienne clé par une nouvelle.
Tous les nouveaux objets écrits dans ces buckets utilisent ainsi la nouvelle clé.
Examinez votre code source pour identifier les requêtes qui utilisent la clé pour les opérations en cours, telles que la définition des configurations de bucket, l'importation, la copie ou la réécriture d'objets. Mettez à jour ces instances pour qu'elles utilisent la nouvelle clé.
Vérifiez les objets associés à tous vos buckets pour identifier ceux qui sont chiffrés avec l'ancienne clé. Utilisez la méthode de réécriture d'objets pour chiffrer à nouveau chaque objet avec la nouvelle clé.
Désactivez toutes les versions de l'ancienne clé. Après avoir désactivé les anciennes versions de clé, surveillez si les journaux des clients et des services comportent des opérations ayant échoué en raison de l'indisponibilité d'une version.
Désactiver ou détruire une version de clé
Lorsque vous désactivez ou détruisez une version de clé spécifique, vous ne pouvez pas déchiffrer un objet actuellement chiffré avec cette version.
Par exemple, vous ne pouvez pas télécharger, copier ni réécrire l'objet. Toute tentative associée à ce type d'opérations entraîne une erreur.
Si vous désactivez une version de clé, vous pouvez la réactiver. Lorsque vous réactivez une version de clé, vous pouvez l'utiliser pour accéder aux objets chiffrés par cette version de clé.
Si vous détruisez une version de clé, vous ne pourrez plus jamais télécharger des objets chiffrés avec cette version de clé.
Avant de désactiver ou de détruire une version de clé, vous devez examiner tous les buckets pour identifier tous les objets qui ont été chiffrés à l'aide de la version de clé spécifique. Une fois les objets identifiés, utilisez la méthode de réécriture d'objets pour chiffrer à nouveau chacun d'entre eux à l'aide d'une nouvelle version de clé, d'une nouvelle clé ou de clés côté serveur.
Lorsque vous désactivez ou détruisez la version principale d'une clé, vous ne pouvez pas l'utiliser pour le chiffrement tant que vous ne disposez pas de nouvelle version principale. Par exemple, sans version principale, vous ne pouvez pas :
renseigner la clé dans le cadre d'une importation, d'une copie ou d'une réécriture d'objet ;
importer, copier ni réécrire des objets dans un bucket dont la clé est définie comme clé de chiffrement par défaut, sauf si vous spécifiez une autre clé valide dans le cadre de l'opération.
Une fois que vous disposez d'une version principale de la clé, les opérations qui l'utilisent pour chiffrer des objets peuvent aboutir.
Avant de désactiver ou de détruire une version de clé correspondant à la version principale, vous devez cesser de l'utiliser comme version principale. Pour ce faire, vous disposez des méthodes suivantes :
- Remplacez-la par une nouvelle version principale, généralement en effectuant une rotation des clés.
- Supprimez les instances dans lesquelles vous utilisez la clé à des fins de chiffrement. Dans ce cas, Cloud Storage utilise plutôt des clés côté serveur pour le chiffrement.
Versions de clé et objets verrouillés
Si une version de clé chiffre un objet verrouillé, soit parce que l'objet est stocké dans un bucket avec une règle de conservation verrouillée, soit parce qu'il possède sa propre configuration de conservation verrouillée, la version de clé ne peut être détruite que si les conditions suivantes sont remplies :
- Le délai d'expiration de la conservation de l'objet chiffré doit se situer dans le passé.
- L'objet chiffré ne doit pas faire l'objet d'une obligation de conservation.
Une fois que tous les objets concernés répondent à ces conditions, vous pouvez détruire la version de clé, même sans supprimer les objets. Dans ce cas, les données des objets concernés deviennent définitivement inaccessibles.
Étapes suivantes
- Définissez des clés de chiffrement gérées par le client sur vos buckets et objets Cloud Storage.
- Obtenez davantage d'informations sur le chiffrement dans Cloud Storage.
- Découvrez Cloud KMS.