Clés de chiffrement fournies par le client

Cette page traite des clés de chiffrement fournies par le client. Pour en savoir plus sur les autres options de chiffrement, consultez la page Options de chiffrement des données. Pour obtenir des exemples illustrant l'utilisation de cette fonctionnalité, reportez-vous à la page Utiliser les clés de chiffrement fournies par le client.

Présentation

Pour ajouter une couche de protection en plus des clés de chiffrement gérées par Google, vous pouvez fournir votre propre clé AES-256 encodée au format Base64 standard. Il s'agit d'une clé de chiffrement fournie par le client. Si vous spécifiez une clé de ce type, Cloud Storage ne la stocke pas de manière permanente sur les serveurs Google et ne la gère pas. Vous devez la fournir pour chaque opération Cloud Storage, et elle est supprimée définitivement des serveurs Google une fois l'opération terminée. Cloud Storage ne stocke qu'un hachage chiffré de la clé afin que les requêtes ultérieures puissent être validées par rapport à ce dernier. Vous ne pouvez pas la récupérer à partir de ce hachage, et le hachage ne peut pas être utilisé pour déchiffrer vos données.

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, vous pouvez lire et mettre à jour les métadonnées générales, de même que répertorier et supprimer des objets, sans avoir besoin de la clé de chiffrement gérée par le client. Toutefois, pour effectuer ces opérations, vous devez disposer d'une autorisation suffisante.

Par exemple, si un objet est chiffré avec une clé de chiffrement fournie par le client, vous devez utiliser cette clé pour exécuter des opérations sur l'objet, telles qu'un téléchargement ou un déplacement. Si vous tentez de lire les métadonnées de l'objet sans fournir la clé, vous recevrez des informations telles que le nom de l'objet et l'élément Content-Type, mais pas sa somme de contrôle CRC32C ni son hachage MD5. Si vous spécifiez la clé avec la requête relative aux métadonnées de l'objet, la somme de contrôle CRC32C et le hachage MD5 de l'objet sont fournis avec les métadonnées.

Vérification HTTPS

Pour protéger vos données lorsqu'elles sont transférées via Internet pendant les opérations de lecture et d'écriture, utilisez le protocole Transport Layer Security (couramment appelé TLS ou HTTPS). TLS est requis si vous fournissez une clé de chiffrement. Si vous utilisez accidentellement votre clé de chiffrement sur une connexion non chiffrée (HTTP), un pirate informatique peut l'intercepter. Par conséquent, l'API Cloud Storage renvoie un message d'erreur vous avertissant que votre clé risque d'être piratée. Si cela se produit, vous devez immédiatement procéder à la rotation de vos clés.

Restrictions

Les restrictions ci-dessous s'appliquent lors de l'utilisation de clés de chiffrement fournies par le client.

  • Actuellement, le service de transfert de stockage Cloud Storage, Cloud Dataflow et Cloud Dataproc n'acceptent pas les objets chiffrés avec des clés de chiffrement fournies par le client.

  • Vous ne pouvez pas utiliser la console Google Cloud Platform pour télécharger des objets chiffrés avec une clé de chiffrement fournie par le client. De même, lorsque vous utilisez la console Google Cloud Platform pour importer un objet, vous ne pouvez pas le chiffrer avec une clé de chiffrement fournie par le client. Ces opérations peuvent être effectuées avec des clés de chiffrement gérées par le client.

  • Les clés de chiffrement fournies par le client sont disponibles dans les pays suivants :

    Afrique du Sud, Allemagne, Argentine, Australie, Autriche, Belgique, Bulgarie, Canada, Chili, Chypre, Colombie, Corée du Sud, Danemark, Espagne, Estonie, États-Unis (US), Finlande, France, Grèce, Hong Kong, Hongrie, Indonésie, Irlande, Israël, Italie, Japon, Lettonie, Lituanie, Luxembourg, Malaisie, Malte, Mexique, Norvège, Nouvelle-Zélande, Pays-Bas, Pérou, Pologne, Portugal, République tchèque, Roumanie, Royaume-Uni (UK), Singapour, Slovaquie, Suède, Suisse, Taïwan, Thaïlande, Turquie, Vietnam

    Si votre pays ne figure pas dans cette liste, vous pouvez demander à l'ajouter.

  • Pour utiliser les clés de chiffrement fournies par le client avec gsutil, vous devez disposer de gsutil 4.18 ou version ultérieure.

  • Vous ne pouvez définir des clés de chiffrement fournies par le client que pour des objets spécifiques. Il est impossible de définir une clé de chiffrement fournie par le client par défaut pour un bucket.

  • Si vous exécutez une opération compose sur des objets chiffrés à l'aide de clés de chiffrement fournies par le client, les objets composants doivent être chiffrés au moyen de la même clé. Par ailleurs, vous devez fournir la clé avec la requête de composition. L'objet composite obtenu est chiffré à l'aide de la même clé.

Méthodes d'utilisation des clés de chiffrement

Il existe différentes modalités d'utilisation des clés de chiffrement fournies par le client avec Cloud Storage, y compris les suivantes :

  • Entreprises partenaires
  • API REST JSON et XML
  • Outil de ligne de commande gsutil

Utiliser les clés de chiffrement avec les entreprises partenaires

Plusieurs partenaires tiers permettent d'utiliser des clés de chiffrement fournies par le client. Ils facilitent la génération des clés de chiffrement et leur association à un objet dans Cloud Storage. Les partenaires pouvant fournir des clés pour Cloud Storage incluent Ionic Security et KeyNexus.

Pour en savoir plus, consultez la page Partenaires de Cloud Storage.

Utiliser les clés de chiffrement avec les API REST

Lorsque vous utilisez une clé de chiffrement fournie par le client et travaillez directement avec l'API JSON ou XML, vous devez indiquer à la fois la clé AES-256 et un hachage SHA256 de la clé. La clé AES-256 et le hachage SHA256 doivent être stockés de manière sécurisée. Google enregistre le hachage SHA256 de votre clé dans les métadonnées de l'objet, où vous pourrez le récupérer ultérieurement. Ce hachage ne peut pas être utilisé par Google (ni par personne d'autre) pour déchiffrer vos données. Il est stocké pour permettre d'identifier de manière unique la clé AES-256 employée pour chiffrer un objet particulier.

En-têtes de requête

Incluez les en-têtes HTTP ci-dessous dans votre requête JSON ou XML :

Nom de l'en-tête Valeur Description
x-goog-encryption-algorithm chaîne Algorithme de chiffrement à utiliser. Vous devez employer la valeur AES256.
x-goog-encryption-key chaîne Chaîne au format Base64 RFC 4648 de la clé de chiffrement AES-256.
x-goog-encryption-key-sha256 chaîne Chaîne au format Base64 RFC 4648 du hachage SHA256 de la clé de chiffrement.

Si vous exécutez une opération rewrite avec l'API JSON, les en-têtes répertoriés ci-dessus sont utilisés pour chiffrer l'objet de destination. Les en-têtes ci-dessous servent à déchiffrer l'objet source.

Nom de l'en-tête Valeur Description
x-goog-copy-source-encryption-algorithm chaîne Algorithme de chiffrement à utiliser. Vous devez employer la valeur AES256.
x-goog-copy-source-encryption-key chaîne Chaîne au format Base64 RFC 4648 de la clé de chiffrement AES-256 de l'objet source.
x-goog-copy-source-encryption-key-sha256 chaîne Chaîne au format Base64 RFC 4648 du hachage SHA256 de la clé de chiffrement de l'objet source.

Réponse

JSON

Lorsque vous utilisez l'API JSON, les métadonnées d'une clé de chiffrement fournie par le client sont renvoyées dans le corps de la réponse, qui inclut les propriétés ci-dessous :

Nom de propriété Valeur Description
customerEncryption objet Informations relatives au mécanisme de chiffrement utilisé pour la requête.
customerEncryption.encryptionAlgorithm chaîne Algorithme de chiffrement employé. Contient toujours la valeur AES256.
customerEncryption.keySha256 chaîne Chaîne au format Base64 RFC 4648 du hachage SHA256 de la clé de chiffrement. Vous pouvez utiliser ce hachage SHA256 pour identifier de manière unique la clé de chiffrement AES-256 requise pour déchiffrer l'objet. Cette dernière doit être stockée de manière sécurisée.

XML

Lorsque vous utilisez l'API XML, la réponse inclut les en-têtes ci-dessous :

Nom de l'en-tête Valeur Description
x-goog-encryption-algorithm chaîne Algorithme de chiffrement employé. Contient toujours la valeur AES256.
x-goog-encryption-key-sha256 chaîne Chaîne au format Base64 RFC 4648 du hachage SHA256 de la clé de chiffrement. Vous pouvez utiliser ce hachage SHA256 pour identifier de manière unique la clé de chiffrement AES-256 requise pour déchiffrer l'objet. Cette dernière doit être stockée de manière sécurisée.

Vous recevez une erreur HTTP 400 dans les cas suivants :

  • Vous importez un objet à l'aide d'une clé de chiffrement fournie par le client et tentez d'exécuter une autre opération sur l'objet sans indiquer la clé. (Cette opération ne doit pas consister à demander ou mettre à jour une grande partie des métadonnées, ni à supprimer l'objet.)
  • Vous importez un objet à l'aide d'une clé de chiffrement fournie par le client et tentez d'exécuter une autre opération sur l'objet avec une clé incorrecte.
  • Vous importez un objet sans indiquer de clé de chiffrement fournie par le client et tentez d'exécuter une autre opération sur l'objet avec ce type de clé.
  • Vous spécifiez un algorithme de chiffrement, une clé ou un hachage SHA256 non valides.

Utiliser les clés de chiffrement avec gsutil

Pour utiliser une clé de chiffrement fournie par le client avec gsutil, ajoutez l'option ci-dessous à la section [GSUtil] de votre fichier de configuration boto :

Nom de l'option Valeur Description
encryption_key chaîne Chaîne au format Base64 RFC 4648 de la clé de chiffrement AES-256.

Vous pouvez éventuellement spécifier une ou plusieurs clés de déchiffrement. Alors que l'option encryption_key est utilisée par gsutil comme clé de chiffrement et de déchiffrement, toutes les options decryption_key que vous spécifiez ne servent qu'à déchiffrer les objets. Pour en savoir plus, consultez la documentation gsutil.

Dès lors que des clés de chiffrement ou de déchiffrement sont présentes dans votre fichier de configuration boto, elles sont utilisées pour toutes les commandes gsutil. Lors du déchiffrement, gsutil calcule le hachage SHA256 des clés de chiffrement et de déchiffrement fournies, puis sélectionne la clé à utiliser pour un objet particulier en recherchant une correspondance pour le hachage SHA256 figurant dans les métadonnées de l'objet.

Vous recevez un message d'erreur si vous importez un objet à l'aide d'une clé de chiffrement fournie par le client, puis tentez d'exécuter une autre opération sur l'objet sans indiquer la clé. (Cette opération ne doit pas consister à demander ou mettre à jour des métadonnées, ni à supprimer l'objet.)

Rotation des clés de chiffrement

Si un objet est chiffré à l'aide d'une clé de chiffrement fournie par le client, vous pouvez procéder à une rotation de la clé en réécrivant l'objet. Les réécritures sont compatibles avec l'API JSON, mais pas avec l'API XML. Pour obtenir des exemples de rotation de clé, consultez la section Effectuer une rotation de vos clés de chiffrement.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.