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 montre 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 une clé gérée par le client qui est stockée dans un coffre de clés Azure Key Vault ou un module de sécurité matériel (HSM) Azure Key Vault Managed Hardware Security Model. 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 prévoyez 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 lorsque vous créez 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, effectuez les étapes suivantes :
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 souhaité de support de clé chiffrement, soit des clés gérées par Microsoft, soit des clés gérées par le client.
- Si vous avez sélectionné Clés gérées par Microsoft, cliquez sur Créer pour créer l’étendue de chiffrement.
- Si vous avez sélectionné Clés gérées par le client, choisissez 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 d'infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d'activer ou non le chiffrement d'infrastructure pour l'étendue de chiffrement.
Pour créer une étendue de chiffrement avec PowerShell, installez d’abord 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 paramètre -StorageEncryption
.
Si le chiffrement d'infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d'activer ou non le chiffrement d'infrastructure pour l'étendue de chiffrement. Pour créer la nouvelle étendue en activant le chiffrement d'infrastructure, incluez le paramètre -RequireInfrastructureEncryption
.
N’oubliez pas de remplacer les valeurs d’espace réservé de 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 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 module HSM managé situé 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 les autorisations d’accéder au coffre de clés, attribuez le rôle Utilisateur de chiffrement du service de chiffrement Key Vault à 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é de 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 paramètre -KeyvaultEncryption
et spécifiez l’URI de la clé. L’inclusion de la version de la clé sur l’URI de la clé est facultative. Si vous omettez la version de la clé, l’étendue de chiffrement utilisera automatiquement la version la plus récente de la clé. Si vous incluez la version de la clé, vous devez mettre à jour la version de clé manuellement pour utiliser une version différente.
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 d'infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d'activer ou non le chiffrement d'infrastructure pour l'étendue de chiffrement. Pour créer la nouvelle étendue en activant le chiffrement d'infrastructure, incluez le paramètre -RequireInfrastructureEncryption
.
N’oubliez pas de remplacer les valeurs d’espace réservé de 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 locataire distinct
Pour créer une nouvelle é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é situé dans un locataire distinct 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 l’étendue de chiffrement entre locataires.
N’oubliez pas de remplacer les valeurs d’espace réservé de 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, commencez par installer la version 2.20.0 ou ultérieure d’Azure CLI.
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 avec le paramètre --key-source
comme Microsoft.Storage
.
Si le chiffrement d'infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d'activer ou non le chiffrement d'infrastructure pour l'étendue de chiffrement. Pour créer la nouvelle étendue en activant le chiffrement d'infrastructure, incluez le paramètre --require-infrastructure-encryption
et définissez sa valeur sur true
.
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 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 module HSM managé situé 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 les autorisations d’accéder au coffre de clés, attribuez le rôle Utilisateur de chiffrement du service de chiffrement Key Vault à 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é de 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 paramètre --key-uri
et spécifiez l'URI de la clé. L’inclusion de la version de la clé sur l’URI de la clé est facultative. Si vous omettez la version de la clé, l’étendue de chiffrement utilisera automatiquement la version la plus récente de la clé. Si vous incluez la version de la clé, vous devez mettre à jour la version de clé manuellement pour utiliser une version différente.
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 d'infrastructure est activé pour le compte de stockage, il est automatiquement activé pour la nouvelle étendue de chiffrement. Sinon, vous pouvez choisir d'activer ou non le chiffrement d'infrastructure pour l'étendue de chiffrement. Pour créer la nouvelle étendue en activant le chiffrement d'infrastructure, incluez le paramètre --require-infrastructure-encryption
et définissez sa valeur sur true
.
N’oubliez pas de remplacer les valeurs d’espace réservé de 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 locataire distinct
Pour créer une nouvelle é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é situé dans un locataire distinct 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 l’étendue de chiffrement entre locataires.
N’oubliez pas de remplacer les valeurs d’espace réservé de 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 pour un compte de stockage dans le Portail Azure, accédez au paramètre Étendues de chiffrement pour le 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 et la version de la clé, et si la version de la clé est mise à jour automatiquement, suivez le lien dans la colonne Clé.
Pour obtenir la liste des é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é de l’exemple par vos propres valeurs :
Get-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName
Pour répertorier toutes les étendues de chiffrement dans un groupe de ressources par compte de stockage, utilisez la syntaxe de 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é de 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 utiliseront 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 la portée 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, effectuez les étapes suivantes pour créer le conteneur :
Accédez à la liste des conteneurs dans 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, activez la case à cocher pour Utiliser cette étendue de chiffrement pour tous les objets blob dans le conteneur. Si cette case à cocher est activé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 paramètre -DefaultEncryptionScope
. Pour forcer tous les objets blob d’un conteneur à utiliser l’étendue par défaut du conteneur, définissez le paramètre -PreventEncryptionScopeOverride
sur 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 paramètre --default-encryption-scope
. 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
sur 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 données d’objet blob et de file 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 téléchargement d’un objet blob vers un conteneur qui a une étendue de chiffrement par défaut et si 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 téléchargez un objet blob, vous pouvez spécifier une étendue de chiffrement pour cet objet ou utiliser l’étendue de chiffrement par défaut pour le conteneur, le cas échéant.
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 de chiffrement, vous pouvez modifier le type de chiffrement de clé gérée par Microsoft en 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 à une clé gérée par Microsoft avec PowerShell, appelez la commande Update-AzStorageEncryptionScope et transmettez le paramètre -StorageEncryption
:
Update-AzStorageEncryptionScope -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-EncryptionScopeName $scopeName2 `
-StorageEncryption
Ensuite, appelez la commande Update-AzStorageEncryptionScope et transmettez les paramètres -KeyUri
et -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 à une clé gérée par Microsoft avec Azure CLI, appelez la commande az storage account encryption-scope update et transmettez le paramètre --key-source
avec la 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, transmettez le paramètre --key-uri
et transmettez 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.