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

Configuration

Par défaut, Cloud Storage chiffre les contenus client au repos. Cloud Storage gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Cloud Storage. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Cloud KMS vous permet également de suivre l'utilisation des clés, d'afficher les journaux d'audit et de contrôler le cycle de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des clés CMEK, l'accès à vos ressources Cloud Storage est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les CMEK, consultez Clés de chiffrement gérées par le client (CMEK). Pour apprendre à utiliser des CMEK créées manuellement pour protéger vos ressources Cloud Storage, consultez la section Utiliser des clés de chiffrement gérées par le client.

Pour en savoir plus sur les autres options de chiffrement lorsque vous utilisez Cloud Storage, consultez la page Options de chiffrement des données.

CMEK avec Cloud KMS Autokey

Pour protéger vos buckets Cloud Storage et les objets qu'ils contiennent, vous pouvez créer des clés CMEK manuellement ou utiliser Cloud KMS Autokey. Avec Autokey, les trousseaux de clés et les clés sont générés à la demande lors de la création ou de la mise à jour de ressources dans Cloud Storage. Les agents de service qui utilisent les clés pour les opérations de chiffrement et de déchiffrement sont créés s'ils n'existent pas déjà et s'ils disposent des rôles IAM (Identity and Access Management) requis. Pour en savoir plus, consultez la section Présentation de la clé automatique.

Autokey ne crée pas de clés pour les objets. Par défaut, les objets d'un bucket utilisent la clé par défaut du bucket. Si vous souhaitez chiffrer un objet à l'aide d'une clé autre que la clé par défaut du bucket, vous pouvez créer manuellement une clé CMEK et l'utiliser lors de la création de l'objet.

Pour savoir comment utiliser les clés CMEK créées par Cloud KMS Autokey afin de protéger vos buckets Cloud Storage et les objets qu'ils contiennent, consultez Utiliser Autokey avec des ressources Cloud Storage.

Utilisation de la clé

Lorsque vous appliquez une clé CMEK à 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 CMEK 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 CMEK. 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é CMEK, 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 lorsque vous utilisez des clés CMEK:

  • Vous ne pouvez pas chiffrer un objet avec une clé CMEK 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 les emplacements birégionaux, l'emplacement du trousseau de clés Cloud KMS doit correspondre au code d'emplacement de l'emplacement birégional. Par exemple, si votre bucket est situé dans la paire birégionale configurable 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, qui correspond au code d'emplacement de ce bucket. Si votre bucket se trouve dans l'emplacement birégional prédéfini NAM4, vous devez créer le trousseau de clés dans l'emplacement birégional prédéfini NAM4.

      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 CMEK ne sont pas renvoyés lorsque vous listez des 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é CMEK 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.
  • Seules les clés de chiffrement symétriques peuvent être utilisées comme clés CMEK.

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

Étape suivante