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

Accéder aux exemples

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 souhaitez appliquer une couche de sécurité supplémentaire en plus des clés de chiffrement gérées par Google, vous pouvez choisir d'utiliser des clés générées par Cloud Key Management Service. Ces clés sont appelées clés de chiffrement gérées par le client. Si vous utilisez une clé de chiffrement gérée par le client, vos clés de chiffrement sont stockées dans Cloud KMS. Le projet qui contient vos clés de chiffrement peut alors être indépendant du projet contenant vos buckets, ce qui permet une meilleure séparation des tâches.

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.

Comptes de service

Le chiffrement et le déchiffrement à l'aide de clés de chiffrement gérées par le client sont effectués au moyen de comptes de service. Une fois que vous avez attribué à votre compte de service Cloud Storage l'accès à une clé de chiffrement, ce compte de service 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, le compte de service déchiffre automatiquement l'objet demandé à condition que :

  • le compte 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, le compte 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 appliquer la méthode de composition d'un objet lorsqu'un ou plusieurs des objets source sont chiffrés avec une clé de chiffrement gérée 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.

  • Vous devez créer la 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 objets avec une clé de chiffrement Cloud KMS dans ce bucket doivent également être créés dans US-EAST1. Pour connaître les emplacements Cloud KMS disponibles, consultez la page Emplacements Cloud KMS.

  • Vous ne pouvez pas spécifier de clé de chiffrement gérée par le client dans le cadre d'un transfert via le service de transfert de stockage. En outre, si une clé de ce type est utilisée sur les objets sources, elle n'est pas appliquée aux objets transférés. Définissez une clé gérée par le client par défaut sur votre bucket avant de procéder au transfert.

  • Les taux de chiffrement et de déchiffrement de Cloud KMS sont soumis à un quota.

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.

  • Sur votre bucket, vous pouvez définir une clé gérée par le client par défaut, mais pas de clé fournie par le client par défaut.

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.

Étapes suivantes