Fournir une clé de chiffrement lors d’une requête au stockage d’objets blob

Les clients effectuant des requêtes auprès du stockage d’objets blob Azure ont la possibilité de fournir une clé de chiffrement AES-256 lors de chaque requête. L’inclusion de la clé de chiffrement dans la requête offre un contrôle précis des paramètres de chiffrement pour les opérations de stockage d’objets blob. Les clés fournies par le client peuvent être stockées dans Azure Key Vault ou dans un autre magasin de clés.

Chiffrement des opérations de lecture et d’écriture

Quand une application cliente fournit une clé de chiffrement dans la requête, Stockage Azure effectue le chiffrement et le déchiffrement de manière transparente lors de la lecture et de l’écriture des données blob. Stockage Azure écrit un hachage SHA-256 de la clé de chiffrement avec le contenu de l’objet blob. Le hachage est utilisé pour vérifier que toutes les opérations suivantes sur l’objet blob utilisent la même clé de chiffrement.

Stockage Azure ne stocke pas et ne gère pas la clé de chiffrement que le client envoie avec la requête. La clé est supprimée de façon sécurisée dès que le processus de chiffrement ou de déchiffrement est terminé.

Quand un client crée ou met à jour un objet blob à l’aide d’une clé fournie par le client lors d’une requête, les requêtes de lecture et d’écriture suivantes pour cet objet blob doivent également fournir la clé. Si la clé n’est pas fournie sur une requête d’objet blob qui a déjà été chiffrée avec une clé fournie par le client, la requête échoue avec le code d’erreur 409 (conflit).

Si l’application cliente envoie une clé de chiffrement dans la requête et que le compte de stockage est également chiffré à l’aide d’une clé managée par Microsoft ou d’une clé managée par le client, Stockage Azure utilise la clé fournie dans la requête pour le chiffrement et le déchiffrement.

Pour envoyer la clé de chiffrement dans le cadre de la requête, un client doit établir une connexion sécurisée à Stockage Azure à l’aide du protocole HTTPS.

Chaque instantané d’objet blob peut avoir sa propre clé de chiffrement.

En-têtes de requêtes pour spécifier les clés fournies par le client

Pour les appels REST, les clients peuvent utiliser les en-têtes suivants pour transmettre en toute sécurité des informations sur les clés de chiffrement sur une requête au stockage d’objets blob :

En-tête de requête Description
x-ms-encryption-key Nécessaire pour les requêtes d’écriture et de lecture. Valeur de clé de chiffrement AES-256 encodée en base64.
x-ms-encryption-key-sha256 Nécessaire pour les requêtes d’écriture et de lecture. Valeur SHA256 encodée en base64 de la clé de chiffrement.
x-ms-encryption-algorithm Nécessaire pour les requêtes d’écriture, facultatif pour les requêtes de lecture. Spécifie l’algorithme à utiliser lors du chiffrement des données à l’aide de la clé donnée. La valeur de cet en-tête doit être définie AES256.

La spécification de clés de chiffrement dans la requête est facultative. Toutefois, si vous spécifiez l’un des en-têtes listés ci-dessus pour une opération d’écriture, vous devez les spécifier tous.

Opérations de stockage d’objets blob prenant en charge les clés fournies par le client

Les opérations de stockage d’objets blob suivantes prennent en charge l’envoi de clés de chiffrement fournies par le client sur une requête :

Permuter des clés fournies par le client

Pour permuter une clé de chiffrement qui a été utilisée pour chiffrer un objet blob, téléchargez l’objet blob puis rechargez-le avec la nouvelle clé de chiffrement.

Important

Vous ne pouvez pas utiliser le portail Azure pour lire ou écrire dans un conteneur ou un objet blob chiffré avec une clé fournie dans la requête.

Veillez à protéger la clé de chiffrement que vous fournissez dans une requête au stockage d’objets blob dans un magasin de clés sécurisé comme Azure Key Vault. Si vous tentez d’effectuer une opération d’écriture sur un conteneur ou un objet blob sans clé de chiffrement, l’opération échoue et vous perdez l’accès à l’objet.

Prise en charge des fonctionnalités

Ce tableau montre comment cette fonctionnalité est prise en charge dans votre compte ainsi que l’impact sur la prise en charge lorsque vous activez certaines fonctionnalités.

Type de compte de stockage Stockage Blob (prise en charge par défaut) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
Usage général v2 Standard Yes No No Yes
Objets blob de blocs Premium Yes No No Yes

1 La prise en charge des protocoles Data Lake Storage Gen2, NFS (Network File System) 3.0 et SFTP (SSH File Transfer Protocol) nécessite un compte de stockage avec un espace de noms hiérarchique activé.

Étapes suivantes