Les étendues de chiffrement vous permettent de gérer le chiffrement au niveau d’un objet blob ou d’un conteneur individuel. Vous pouvez utiliser des étendues de chiffrement pour créer des limites sécurisées entre les données qui résident dans le même compte de stockage mais qui appartiennent à des clients différents. Pour plus d’informations sur les étendues de chiffrement, consultez Étendues de chiffrement pour le stockage d’objets blob.
Cet article explique comment créer une étendue de chiffrement. Il montre également comment spécifier une étendue de chiffrement lorsque vous créez un objet blob ou un conteneur.
Vous pouvez créer une étendue de chiffrement protégée par une clé gérée par Microsoft ou avec une clé gérée par le client stockée dans azure Key Vault ou dans un modèle HSM (Managed Hardware Security Model) Azure Key Vault. Pour créer une étendue de chiffrement avec une clé gérée par le client, vous devez d’abord créer un coffre de clés ou un HSM managé et ajouter la clé que vous envisagez d’utiliser pour l’étendue. La protection contre le vidage doit être activée pour le coffre de clés ou le HSM managé.
Le compte de stockage et le coffre de clés peuvent se trouver dans le même locataire ou dans différents locataires. Dans les deux cas, le compte de stockage et le coffre de clés peuvent se trouver dans des régions différentes.
Une étendue de chiffrement est automatiquement activée lorsque vous la créez. Après avoir créé l’étendue de chiffrement, vous pouvez la spécifier lors de la création d’un objet blob. Vous pouvez également spécifier une étendue de chiffrement par défaut lorsque vous créez un conteneur, qui s’applique automatiquement à tous les objets blob du conteneur.
Lorsque vous configurez une étendue de chiffrement, vous êtes facturé pour un minimum d’un mois (30 jours). Après le premier mois, les frais d’une étendue de chiffrement sont calculés au prorata horaire. Pour plus d’informations, consultez Facturation pour les étendues de chiffrement.
Pour créer une étendue de chiffrement dans le portail Azure, procédez comme suit :
Accédez à votre compte de stockage dans le portail Azure.
Sous Sécurité + mise en réseau, sélectionnez Chiffrement.
Sélectionnez l’onglet Étendues de chiffrement .
Cliquez sur le bouton Ajouter pour ajouter une nouvelle étendue de chiffrement.
Dans le volet Créer une étendue de chiffrement , entrez un nom pour la nouvelle étendue.
Sélectionnez le type de prise en charge de clé de chiffrement souhaité, soit les clés gérées par Microsoft , soit les clés gérées par le client.
- Si vous avez sélectionné des clés gérées par Microsoft, cliquez sur Créer pour créer l’étendue de chiffrement.
- Si vous avez sélectionné des clés gérées par le client, sélectionnez un abonnement et spécifiez un coffre de clés et une clé à utiliser pour cette étendue de chiffrement. Si le coffre de clés souhaité se trouve dans une autre région, sélectionnez Entrer l’URI de clé et spécifiez l’URI de clé.
Si le chiffrement de l’infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d’activer le chiffrement d’infrastructure pour l’étendue de chiffrement.
Pour créer une étendue de chiffrement avec PowerShell, installez le module PowerShell Az.Storage , version 3.4.0 ou ultérieure.
Créer une étendue de chiffrement protégée par des clés gérées par Microsoft
Pour créer une étendue de chiffrement protégée par des clés gérées par Microsoft, appelez la commande New-AzStorageEncryptionScope avec le -StorageEncryption
paramètre.
Si le chiffrement de l’infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d’activer le chiffrement d’infrastructure pour l’étendue de chiffrement. Pour créer la nouvelle étendue avec le chiffrement d’infrastructure activé, incluez le -RequireInfrastructureEncryption
paramètre.
N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-StorageEncryption
Créer une étendue de chiffrement protégée par des clés gérées par le client dans le même tenant
Pour créer une étendue de chiffrement protégée par des clés gérées par le client stockées dans un coffre de clés ou un HSM managé qui se trouve dans le même locataire que le compte de stockage, configurez d’abord les clés gérées par le client pour le compte de stockage. Vous devez affecter une identité managée au compte de stockage disposant des autorisations nécessaires pour accéder au coffre de clés. L’identité managée peut être une identité managée affectée par l’utilisateur ou une identité managée affectée par le système. Pour en savoir plus sur la configuration des clés gérées par le client, consultez Configurer des clés gérées par le client dans le même locataire pour un compte de stockage existant.
Pour accorder à l’identité managée des permissions pour accéder au coffre de clés, attribuez le rôle Utilisateur du service de cryptographie pour le chiffrement du coffre de clés à l’identité managée.
Pour configurer des clés gérées par le client en vue d’une utilisation avec une étendue de chiffrement, la protection contre le vidage doit être activée sur le coffre de clés ou le HSM managé.
L’exemple suivant montre comment configurer une étendue de chiffrement avec une identité managée affectée par le système. N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$keyVaultName = "<key-vault>"
$scopeName = "<encryption-scope>"
# Assign a system-assigned managed identity to the storage account.
$storageAccount = Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-AssignIdentity
# Assign the necessary permissions to the managed identity
# so that it can access the key vault.
$principalId = $storageAccount.Identity.PrincipalId
$keyVault = Get-AzKeyVault $keyVaultName
New-AzRoleAssignment -ObjectId $storageAccount.Identity.PrincipalId `
-RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $keyVault.ResourceId
Ensuite, appelez la commande New-AzStorageEncryptionScope avec le -KeyvaultEncryption
paramètre et spécifiez l’URI de clé. L'inclusion de la version de la clé sur l'URI de la clé est facultative. Si vous omettez la version de clé, l’étendue de chiffrement utilise automatiquement la version de clé la plus récente. Si vous incluez la version de clé, vous devez mettre à jour la version de clé manuellement pour utiliser une autre version.
Le format de l’URI de clé est similaire aux exemples suivants et peut être construit à partir de la propriété VaultUri du coffre de clés et du nom de clé :
# Without the key version
https://<key-vault>.vault.azure.net/keys/<key>
# With the key version
https://<key-vault>.vault.azure.net/keys/<key>/<version>
Si le chiffrement de l’infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d’activer le chiffrement d’infrastructure pour l’étendue de chiffrement. Pour créer la nouvelle étendue avec le chiffrement d’infrastructure activé, incluez le -RequireInfrastructureEncryption
paramètre.
N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
$keyUri = $keyVault.VaultUri + "keys/" + $keyName
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName `
-KeyUri $keyUri `
-KeyvaultEncryption
Créer une étendue de chiffrement protégée par des clés gérées par le client dans un autre locataire
Pour créer une étendue de chiffrement protégée par des clés gérées par le client stockées dans un coffre de clés ou un HSM managé qui se trouve dans un locataire différent du compte de stockage, configurez d’abord les clés gérées par le client pour le compte de stockage. Vous devez configurer une identité managée affectée par l’utilisateur pour le compte de stockage disposant des autorisations nécessaires pour accéder au coffre de clés dans l’autre locataire. Pour en savoir plus sur la configuration des clés gérées par le client entre locataires, consultez Configurer des clés gérées par le client entre locataires pour un compte de stockage existant.
Pour configurer des clés gérées par le client en vue d’une utilisation avec une étendue de chiffrement, la protection contre le vidage doit être activée sur le coffre de clés ou le HSM managé.
Une fois que vous avez configuré des clés gérées par le client entre locataires pour le compte de stockage, vous pouvez créer une étendue de chiffrement sur le compte de stockage d’un locataire qui est étendue à une clé dans un coffre de clés dans l’autre locataire. Vous aurez besoin de l’URI de clé pour créer la portée de chiffrement inter-locataires.
N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$scopeName = "<encryption-scope>"
# Construct the key URI from the key vault URI and key name.
$keyUri = $kvUri + "keys/" + $keyName
New-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName `
-KeyUri $keyUri `
-KeyvaultEncryption
Pour créer une étendue de chiffrement avec Azure CLI, installez d’abord Azure CLI version 2.20.0 ou ultérieure.
Créer une étendue de chiffrement protégée par des clés gérées par Microsoft
Pour créer une étendue de chiffrement protégée par des clés gérées par Microsoft, appelez la commande az storage account encryption-scope create , en spécifiant le --key-source
paramètre en tant que Microsoft.Storage
.
Si le chiffrement de l’infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d’activer le chiffrement d’infrastructure pour l’étendue de chiffrement. Pour créer la nouvelle étendue avec le chiffrement d’infrastructure activé, incluez le --require-infrastructure-encryption
paramètre et définissez sa valeur true
sur .
N’oubliez pas de remplacer les valeurs d’espace réservé par vos propres valeurs :
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.Storage
Créer une étendue de chiffrement protégée par des clés gérées par le client dans le même tenant
Pour créer une étendue de chiffrement protégée par des clés gérées par le client stockées dans un coffre de clés ou un HSM managé qui se trouve dans le même locataire que le compte de stockage, configurez d’abord les clés gérées par le client pour le compte de stockage. Vous devez affecter une identité managée au compte de stockage disposant des autorisations nécessaires pour accéder au coffre de clés. L’identité managée peut être une identité managée affectée par l’utilisateur ou une identité managée affectée par le système. Pour en savoir plus sur la configuration des clés gérées par le client, consultez Configurer des clés gérées par le client dans le même locataire pour un compte de stockage existant.
Pour accorder à l’identité managée des permissions pour accéder au coffre de clés, attribuez le rôle Utilisateur du service de cryptographie pour le chiffrement du coffre de clés à l’identité managée.
Pour configurer des clés gérées par le client en vue d’une utilisation avec une étendue de chiffrement, la protection contre le vidage doit être activée sur le coffre de clés ou le HSM managé.
L’exemple suivant montre comment configurer une étendue de chiffrement avec une identité managée affectée par le système. N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--assign-identity
principalId=$(az storage account show --name <storage-account> \
--resource-group <resource_group> \
--query identity.principalId \
--output tsv)
$kvResourceId=$(az keyvault show \
--resource-group <resource-group> \
--name <key-vault> \
--query id \
--output tsv)
az role assignment create --assignee-object-id $principalId \
--role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId
Ensuite, appelez la commande az storage account encryption-scope avec le --key-uri
paramètre et spécifiez l’URI de clé. L'inclusion de la version de la clé sur l'URI de la clé est facultative. Si vous omettez la version de clé, l’étendue de chiffrement utilise automatiquement la version de clé la plus récente. Si vous incluez la version de clé, vous devez mettre à jour la version de clé manuellement pour utiliser une autre version.
Le format de l’URI de clé est similaire aux exemples suivants et peut être construit à partir de la propriété vaultUri du coffre de clés et du nom de clé :
# Without the key version
https://<key-vault>.vault.azure.net/keys/<key>
# With the key version
https://<key-vault>.vault.azure.net/keys/<key>/<version>
Si le chiffrement de l’infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d’activer le chiffrement d’infrastructure pour l’étendue de chiffrement. Pour créer la nouvelle étendue avec le chiffrement d’infrastructure activé, incluez le --require-infrastructure-encryption
paramètre et définissez sa valeur true
sur .
N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
Créer une étendue de chiffrement protégée par des clés gérées par le client dans un autre locataire
Pour créer une étendue de chiffrement protégée par des clés gérées par le client stockées dans un coffre de clés ou un HSM managé qui se trouve dans un locataire différent du compte de stockage, configurez d’abord les clés gérées par le client pour le compte de stockage. Vous devez configurer une identité managée affectée par l’utilisateur pour le compte de stockage disposant des autorisations nécessaires pour accéder au coffre de clés dans l’autre locataire. Pour en savoir plus sur la configuration des clés gérées par le client entre locataires, consultez Configurer des clés gérées par le client entre locataires pour un compte de stockage existant.
Pour configurer des clés gérées par le client en vue d’une utilisation avec une étendue de chiffrement, la protection contre le vidage doit être activée sur le coffre de clés ou le HSM managé.
Une fois que vous avez configuré des clés gérées par le client entre locataires pour le compte de stockage, vous pouvez créer une étendue de chiffrement sur le compte de stockage d’un locataire qui est étendue à une clé dans un coffre de clés dans l’autre locataire. Vous aurez besoin de l’URI de clé pour créer la portée de chiffrement inter-locataires.
N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
az storage account encryption-scope create \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
Pour afficher les étendues de chiffrement d’un compte de stockage dans le portail Azure, accédez au paramètre Étendues de chiffrement du compte de stockage. Dans ce volet, vous pouvez activer ou désactiver une étendue de chiffrement ou modifier la clé d’une étendue de chiffrement.
Pour afficher les détails d’une clé gérée par le client, y compris l’URI de clé et la version et si la version de la clé est automatiquement mise à jour, suivez le lien dans la colonne Clé .
Pour répertorier les étendues de chiffrement disponibles pour un compte de stockage avec PowerShell, appelez la commande Get-AzStorageEncryptionScope . N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
Get-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName
Pour répertorier toutes les étendues de chiffrement d’un groupe de ressources par compte de stockage, utilisez la syntaxe du pipeline :
Get-AzStorageAccount -ResourceGroupName $rgName | Get-AzStorageEncryptionScope
Pour répertorier les étendues de chiffrement disponibles pour un compte de stockage avec Azure CLI, appelez la commande az storage account encryption-scope list . N’oubliez pas de remplacer les valeurs d’espace réservé dans l’exemple par vos propres valeurs :
az storage account encryption-scope list \
--account-name <storage-account> \
--resource-group <resource-group>
Lorsque vous créez un conteneur, vous pouvez spécifier une étendue de chiffrement par défaut. Les objets blob de ce conteneur utilisent cette étendue par défaut.
Un objet blob individuel peut être créé avec sa propre étendue de chiffrement, sauf si le conteneur est configuré pour exiger que tous les objets blob utilisent l’étendue par défaut. Pour plus d’informations, consultez Étendues de chiffrement pour les conteneurs et les objets blob.
Pour créer un conteneur avec une étendue de chiffrement par défaut dans le portail Azure, commencez par créer l’étendue de chiffrement, comme décrit dans Créer une étendue de chiffrement. Ensuite, procédez comme suit pour créer le conteneur :
Accédez à la liste des conteneurs de votre compte de stockage, puis sélectionnez le bouton Ajouter pour créer un conteneur.
Développez les paramètres avancés dans le volet Nouveau conteneur .
Dans la liste déroulante Étendue de chiffrement , sélectionnez l’étendue de chiffrement par défaut pour le conteneur.
Pour exiger que tous les objets blob du conteneur utilisent l’étendue de chiffrement par défaut, cochez la case pour utiliser cette étendue de chiffrement pour tous les objets blob du conteneur. Si cette case à cocher est cochée, un objet blob individuel dans le conteneur ne peut pas remplacer l’étendue de chiffrement par défaut.
Pour créer un conteneur avec une étendue de chiffrement par défaut avec PowerShell, appelez la commande New-AzStorageContainer , en spécifiant l’étendue du -DefaultEncryptionScope
paramètre. Pour forcer tous les objets blob d’un conteneur à utiliser l’étendue par défaut du conteneur, définissez le paramètre -PreventEncryptionScopeOverride
à true
.
$containerName1 = "container1"
$ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount
# Create a container with a default encryption scope that cannot be overridden.
New-AzStorageContainer -Name $containerName1 `
-Context $ctx `
-DefaultEncryptionScope $scopeName1 `
-PreventEncryptionScopeOverride $true
Pour créer un conteneur avec une étendue de chiffrement par défaut avec Azure CLI, appelez la commande az storage container create , en spécifiant l’étendue du --default-encryption-scope
paramètre. Pour forcer tous les objets blob d’un conteneur à utiliser l’étendue par défaut du conteneur, définissez le paramètre --prevent-encryption-scope-override
à true
.
L’exemple suivant utilise votre compte Microsoft Entra pour autoriser l’opération à créer le conteneur. Vous pouvez également utiliser la clé d’accès au compte. Pour plus d'informations, consultez Autoriser l’accès aux objets blob ou aux files d’attente avec Azure CLI.
az storage container create \
--account-name <storage-account> \
--resource-group <resource-group> \
--name <container> \
--default-encryption-scope <encryption-scope> \
--prevent-encryption-scope-override true \
--auth-mode login
Si un client tente de spécifier une étendue lors du chargement d’un objet blob dans un conteneur qui a une étendue de chiffrement par défaut et que le conteneur est configuré pour empêcher les objets blob de remplacer l’étendue par défaut, l’opération échoue avec un message indiquant que la requête est interdite par la stratégie de chiffrement de conteneur.
Lorsque vous chargez un objet blob, vous pouvez spécifier une étendue de chiffrement pour cet objet blob ou utiliser l’étendue de chiffrement par défaut pour le conteneur, si celle-ci a été spécifiée.
Pour modifier la clé qui protège une étendue dans le portail Azure, procédez comme suit :
- Accédez à l’onglet Étendues de chiffrement pour afficher la liste des étendues de chiffrement pour le compte de stockage.
- Sélectionnez le bouton Plus en regard de l’étendue que vous souhaitez modifier.
- Dans le volet Modifier l’étendue du chiffrement , vous pouvez remplacer le type de chiffrement de la clé gérée par Microsoft par une clé gérée par le client ou vice versa.
- Pour sélectionner une nouvelle clé gérée par le client, sélectionnez Utiliser une nouvelle clé et spécifiez le coffre de clés, la clé et la version de clé.
Pour modifier la clé qui protège une étendue de chiffrement d’une clé gérée par le client vers une clé gérée par Microsoft avec PowerShell, appelez la commande Update-AzStorageEncryptionScope et transmettez le -StorageEncryption
paramètre :
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName2 `
-StorageEncryption
Ensuite, appelez la commande Update-AzStorageEncryptionScope et transmettez les -KeyUri
paramètres :-KeyvaultEncryption
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName1 `
-KeyUri $keyUri `
-KeyvaultEncryption
Pour modifier la clé qui protège une étendue de chiffrement d’une clé gérée par le client vers une clé gérée par Microsoft avec Azure CLI, appelez la commande az storage account encryption-scope update et transmettez le paramètre avec la --key-source
valeur Microsoft.Storage
:
az storage account encryption-scope update \
--account-name <storage-account> \
--resource-group <resource-group>
--name <encryption-scope> \
--key-source Microsoft.Storage
Ensuite, appelez la commande az storage account encryption-scope update, passez le paramètre --key-uri
et passez le paramètre --key-source
avec la valeur Microsoft.KeyVault
:
az storage account encryption-scope update \
--resource-group <resource-group> \
--account-name <storage-account> \
--name <encryption-scope> \
--key-source Microsoft.KeyVault \
--key-uri <key-uri>
Désactivez les étendues de chiffrement qui ne sont pas nécessaires pour éviter les frais inutiles. Pour plus d’informations, consultez Facturation pour les étendues de chiffrement.