Clés de chiffrement gérées par le client

Configuration

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 :

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 commande objects 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 dans US-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égional US.

    • Pour les emplacements birégionaux prédéfinis ASIA1, EUR4 et NAM4, 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émentaire GET 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.
  • 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é.

  1. 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é.

  2. 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é.

  3. 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é.

  4. 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