Dans cet article, vous apprenez à afficher, gérer et faire pivoter les clés d’accès du compte de stockage. Quand vous créez un compte de stockage, Azure génère deux clés d’accès au compte de stockage de 512 bits pour ce compte. Ces clés peuvent être utilisées pour autoriser l’accès aux données de votre compte de stockage via l’autorisation de clé partagée ou via des jetons SAP signés avec la clé partagée.
Microsoft vous recommande d’utiliser Azure Key Vault pour gérer vos clés d’accès, ainsi que de permuter et de regénérer régulièrement vos clés. L’utilisation d’Azure Key Vault facilite la permutation de vos clés sans interruption de vos applications. Vous pouvez également permuter manuellement vos clés.
Important
Pour une sécurité optimale, Microsoft recommande d’utiliser quand c’est possible Microsoft Entra ID avec des identités managées pour autoriser les requêtes sur les données de blob, de file d’attente et de table. L’autorisation avec Microsoft Entra ID et les identités managées offre davantage de sécurité et de facilité d’utilisation que l’autorisation de clé partagée. Pour plus d’informations sur les identités managées, consultez Présentation des identités managées pour les ressources Azure. Pour obtenir un exemple d’activation et d’utilisation d’une identité managée pour une application .NET, consultez Authentification d’applications hébergées par Azure auprès de ressources Azure avec .NET.
Pour les ressources hébergées en dehors d’Azure, comme des applications locales, vous pouvez utiliser des identités managées via Azure Arc. Par exemple, les applications s’exécutant sur des serveurs avec Azure Arc peuvent utiliser des identités managées pour se connecter à des services Azure. Pour en savoir plus, consultez S’authentifier auprès de ressources Azure au moyen de serveurs avec Azure Arc.
Pour les scénarios où les signatures d’accès partagé (SAP) sont utilisées, Microsoft recommande d’utiliser une SAP de délégation d’utilisateur. Une SAP de délégation d’utilisateur est sécurisée avec des informations d’identification Microsoft Entra au lieu de la clé de compte. Pour en savoir plus sur les signatures d’accès partagé, consultez Accorder un accès limité aux données avec des signatures d’accès partagé. Pour obtenir un exemple de création et d’utilisation d’une SAP de délégation d’utilisateur avec .NET, consultez Créer une SAP de délégation d’utilisateur pour un blob avec .NET.
Protégez vos clés d’accès
Les clés d’accès au compte de stockage fournissent un accès complet aux données du compte de stockage et la possibilité de générer des jetons SAP. Veillez toujours à protéger vos clés d’accès. Utilisez Azure Key Vault pour gérer et effectuer la rotation de vos clés en toute sécurité. L’accès à la clé partagée accorde à un utilisateur un accès complet aux données d’un compte de stockage. L’accès aux clés partagées doit être soigneusement limité et surveillé. Utilisez des jetons SAP de délégation d’utilisateur avec une étendue d’accès limitée dans les scénarios où l’autorisation basée sur Microsoft Entra ID ne peut pas être utilisée. Évitez le codage effectué de manière irréversible des clés d’accès ou de les enregistrer en texte brut dans un emplacement accessible à d’autres personnes. Effectuez une rotation de vos clés si vous pensez qu’elles ont pu être compromises.
Important
Pour empêcher les utilisateurs d’accéder aux données de votre compte de stockage avec une clé partagée, vous pouvez interdire l’autorisation de clé partagée pour le compte de stockage. L’accès granulaire aux données avec le moins de privilèges nécessaires est recommandé en tant que meilleure pratique de sécurité. L’autorisation basée sur Microsoft Entra ID avec des identités managées doit être utilisée pour les scénarios qui prennent en charge OAuth. Kerberos ou SMTP doit être utilisé pour Azure Files sur SMB. Pour Azure Files sur REST, des jetons SAP peuvent être utilisés. L’accès à la clé partagée doit être désactivé s’il n’est pas nécessaire pour empêcher son utilisation par inadvertance. Pour plus d’informations, consultez Empêcher l’autorisation avec clé partagée pour un compte de stockage Azure.
Pour protéger un compte de stockage Azure avec des stratégies d’accès conditionnel Microsoft Entra, vous devez interdire l’autorisation de clé partagée pour le compte de stockage.
Si vous avez désactivé l’accès à la clé partagée et que l’autorisation de clé partagée est signalée dans les journaux de diagnostic, cela signifie que l’accès approuvé est utilisé pour accéder au stockage. Pour obtenir plus d’informations, voir Accès approuvé pour les ressources inscrites dans votre tenant Microsoft Entra.
Afficher les clés d’accès au compte
Vous pouvez afficher et copier les clés d’accès à votre compte avec le portail Azure, PowerShell ou Azure CLI. Le portail Azure fournit également une chaîne de connexion pour votre compte de stockage, que vous pouvez copier.
Pour afficher et copier les clés d’accès ou la chaîne de connexion de votre compte de stockage à partir du portail Azure :
Dans le portail Azure, accédez à votre compte de stockage.
Dans le menu de la ressource, sous Sécurité + mise en réseau, sélectionnez Clés d’accès. Vos clés d’accès au compte s’affichent, ainsi que la chaîne de connexion complète de chaque clé.
Sélectionnez Afficher les clés pour afficher vos clés et les chaînes de connexion, et pour activer les boutons permettant de copier les valeurs.
Sous key1, trouvez la valeur de Clé. Sélectionnez le bouton Copier pour copier la clé de compte.
Vous pouvez aussi copier la chaîne de connexion complète. Sous key1, recherchez la Chaîne de connexion. Sélectionnez le bouton Copier pour copier la chaîne de connexion.
Pour récupérer les clés d’accès à votre compte avec PowerShell, appelez la commande Get-AzStorageAccountKey.
L’exemple suivant récupère la première clé. Pour récupérer la deuxième, utilisez Value[1] au lieu de Value[0]. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs.
Pour répertorier les clés d’accès à votre compte avec Azure CLI, appelez la commande az storage account keys list, comme dans l’exemple suivant. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs.
az storage account keys list \
--resource-group <resource-group> \
--account-name <storage-account>
Vous pouvez utiliser la clé de votre choix pour accéder au Stockage Azure, mais il est en général conseillé d’utiliser la première et de réserver la deuxième pour le rotation des clés.
Pour visualiser ou lire les clés d’accès d’un compte, l’utilisateur doit être administrateur de service ou titulaire d’un rôle Azure qui comprend Microsoft.Storage/storageAccounts/listkeys/action. Voici quelques rôles AZURE intégrés qui incluent cette action : Propriétaire, Contributeur et Rôle de service d’opérateur de clé de compte de stockage. Pour plus d’informations sur le rôle d’administrateur de service, consultez Rôles Azure, rôles Microsoft Entra, et rôles d’administrateur d’abonnement classique. Pour plus d’informations sur les rôles intégrés pour Stockage Azure, consultez la section Stockage dans Rôles intégrés Azure pour Azure RBAC.
Utiliser Azure Key Vault pour gérer vos clés d’accès
Microsoft recommande d’utiliser Azure Key Vault pour gérer et permuter vos clés d’accès. Votre application peut accéder de manière sécurisée à vos clés dans Key Vault, afin que vous puissiez éviter de les stocker avec votre code d’application. Pour plus d’informations sur l’utilisation de Key Vault pour la gestion des clés, consultez les articles suivants :
Microsoft vous recommande de permuter vos clés d’accès régulièrement pour garantir une sécurité optimale de votre compte de stockage. Si possible, utilisez Azure Key Vault pour gérer vos clés d’accès. Si vous n’utilisez pas Key Vault, vous devrez permuter vos clés manuellement.
Deux clés d’accès sont assignées pour vous permettre de les permuter. L’existence de deux clés permet de garantir que votre application maintient l’accès au Stockage Azure tout au long du processus.
Avertissement
La regénération des clés d’accès peut impacter des applications ou des services Azure qui ont une dépendance avec la clé du compte de stockage. Tous les clients qui utilisent la clé de compte pour accéder au compte de stockage doivent être mis à jour afin d’utiliser la nouvelle clé, y compris les services multimédias, les applications cloud, de bureau et mobiles, et les applications d’interface utilisateur graphique pour le stockage Azure, comme l’Explorateur Stockage Azure.
En outre, la rotation ou la régénération des clés d’accès révoque les signatures d’accès partagé (SAP) générées en fonction de cette clé. Après la rotation de la clé d’accès, vous devez régénérer les jetons SAP du compte et du service pour éviter toute interruption des applications. Notez que les jetons SAS de délégation d’utilisateur sont sécurisés avec des informations d’identification Microsoft Entra et ne sont pas affectés par la rotation des clés.
Si vous envisagez d’effectuer une rotation manuelle des clés d’accès, Microsoft vous recommande de définir une stratégie d’expiration de clé. Pour plus d’informations, consultez Créer une stratégie d’expiration de clé.
Après avoir créé la stratégie d’expiration de clé, vous pouvez utiliser Azure Policy pour vérifier si les clés d’un compte de stockage ont fait l’objet d’une rotation dans l’intervalle recommandé. Pour plus d’informations, consultez Vérifier les violations de la stratégie d’expiration de clé.
Mettez à jour les chaînes de connexion dans votre code pour désigner la nouvelle clé d’accès principale.
Régénérez la clé d’accès secondaire de la même manière. Pour régénérer la clé secondaire, utilisez secondary comme nom de clé au lieu de primary.
Attention
Microsoft recommande d’utiliser uniquement l’une des clés dans toutes vos applications en même temps. Si vous utilisez parfois la clé 1 et parfois la clé 2, vous ne pouvez effectuer aucune rotation de vos clés sans qu’une application ne perde l’accès.
Pour effectuer la rotation des clés d’accès d’un compte, l’utilisateur doit être administrateur de service ou titulaire d’un rôleAzure qui comprend Microsoft.Storage/storageAccounts/regeneratekey/action. Voici quelques rôles AZURE intégrés qui incluent cette action : Propriétaire, Contributeur et Rôle de service d’opérateur de clé de compte de stockage. Pour plus d’informations sur le rôle d’administrateur de service, consultez Rôles Azure, rôles Microsoft Entra, et rôles d’administrateur d’abonnement classique. Pour plus d’informations sur les rôles Azure intégrés pour Stockage Azure, consultez la section Stockage dans Rôles intégrés Azure pour Azure RBAC.
Créer une stratégie d’expiration de clé
Une stratégie d’expiration de clé vous permet de définir un rappel pour la rotation des clés d’accès au compte. Le rappel s’affiche si l’intervalle spécifié s’est écoulé et que les clés n’ont pas encore fait l’objet d’une rotation. Après avoir créé une stratégie d’expiration de clé, vous pouvez contrôler la conformité de vos comptes de stockage afin de vous assurer que les clés d’accès au compte font l’objet d’une rotation régulière.
Notes
Avant de pouvoir créer une stratégie d’expiration de clé, vous devrez peut-être effectuer une rotation de chacune des clés d’accès à votre compte au moins une fois.
Pour créer une politique d'expiration des clés dans le portail Azure :
Dans le portail Azure, accédez à votre compte de stockage.
Sous Sécurité + mise en réseau, sélectionnez Clés d’accès. Vos clés d’accès au compte s’affichent, ainsi que la chaîne de connexion complète de chaque clé.
Sélectionnez le bouton Définir le rappel de rotation. Si le bouton Définir le rappel de rotation est grisé, vous devez faire pivoter chacune de vos touches. Suivez les étapes décrites dans Faire pivoter manuellement des clés d’accès pour faire pivoter les clés.
Dans Définir un rappel pour faire pivoter les clés d'accès, activez la case à cocher Activer les rappels pour faire pivoter les clés d'accès et définissez une fréquence pour le rappel.
Sélectionnez Enregistrer.
Pour créer une stratégie d’expiration de clé avec PowerShell, utilisez la commande Set-AzStorageAccount et définissez le paramètre -KeyExpirationPeriodInDay sur l’intervalle en jours avant la prochaine rotation des clés d’accès.
La propriété KeyCreationTime indique si les clés d’accès au compte ont été créées ou retournées pour la dernière fois. Les comptes plus anciens peuvent avoir une valeur Null pour la propriété KeyCreationTime, car elle n’a pas encore été définie. Si la propriété KeyCreationTime est Null, vous ne pouvez pas créer de stratégie d’expiration de clé tant que vous n’avez pas fait pivoter les clés. Pour cette raison, il est important de vérifier la propriété KeyCreationTime du compte de stockage avant d’essayer de définir la stratégie d’expiration de clé.
L’exemple suivant vérifie si la propriété KeyCreationTime a été définie pour chaque clé. Si la propriété KeyCreationTime a une valeur, une stratégie d’expiration de clé est créée pour le compte de stockage. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs.
$rgName = "<resource-group>"
$accountName = "<account-name>"
$account = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
# Check whether the KeyCreationTime property has a value for each key
# before creating the key expiration policy.
if ($account.KeyCreationTime.Key1 -eq $null -or $account.KeyCreationTime.Key2 -eq $null)
{
Write-Host("You must regenerate both keys at least once before setting expiration policy")
}
else
{
$account = Set-AzStorageAccount -ResourceGroupName $rgName -Name `
$accountName -KeyExpirationPeriodInDay 60
}
Vous pouvez également définir la stratégie d’expiration de clé lorsque vous créez un compte de stockage en définissant le paramètre -KeyExpirationPeriodInDay de la commande New-AzStorageAccount.
Pour vérifier que la stratégie a été appliquée, vérifiez la propriété KeyPolicy du compte de stockage.
$account.KeyPolicy
Pour créer une stratégie d’expiration de clé avec Azure CLI, utilisez la commande az storage account update et définissez le paramètre --key-exp-days sur l’intervalle en jours avant la prochaine rotation des clés d’accès.
La propriété keyCreationTime indique si les clés d’accès au compte ont été créées ou retournées pour la dernière fois. Les comptes plus anciens peuvent avoir une valeur Null pour la propriété keyCreationTime, car elle n’a pas encore été définie. Si la propriété keyCreationTime est Null, vous ne pouvez pas créer de stratégie d’expiration de clé tant que vous n’avez pas fait pivoter les clés. Pour cette raison, il est important de vérifier la propriété keyCreationTime du compte de stockage avant d’essayer de définir la stratégie d’expiration de clé.
L’exemple suivant vérifie si la propriété keyCreationTime a été définie pour chaque clé. Si la propriété keyCreationTime a une valeur, une stratégie d’expiration de clé est créée pour le compte de stockage. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs.
key1_create_time=$(az storage account show \
--name <storage-account> \
--resource-group <resource-group> \
--query 'keyCreationTime.key1' \
--output tsv)
key2_create_time=$(az storage account show \
--name <storage-account> \
--resource-group <resource-group> \
--query 'keyCreationTime.key2' \
--output tsv)
if [ -z "$key1_create_time" ] || [ -z "$key2_create_time" ];
then
echo "You must regenerate both keys at least once before setting expiration policy"
else
az storage account update \
--name <storage-account> \
--resource-group <resource-group> \
--key-exp-days 60
fi
Vous pouvez également définir la stratégie d’expiration de clé lorsque vous créez un compte de stockage en définissant le paramètre --key-exp-days de la commande az storage account create.
Pour vérifier que la stratégie a été appliquée, appelez la commande az storage account show et utilisez la chaîne {KeyPolicy:keyPolicy} pour le paramètre -query.
az storage account show \
-n <storage-account-name> \
-g <resource-group-name> \
--query "{KeyPolicy:keyPolicy}"
La période d’expiration de la clé apparaît dans la sortie de la console.
Vérifier les violations de la stratégie d’expiration de clé
Vous pouvez surveiller vos comptes de stockage avec Azure Policy pour vous assurer que les clés d’accès aux comptes ont fait l’objet d’une rotation dans les délais recommandés. Stockage Azure fournit une stratégie intégrée qui permet de s’assurer que les clés d’accès au compte de stockage ne sont pas expirées. Pour plus d’informations sur la stratégie intégrée, consultez Les clés de compte de stockage ne doivent pas être expirées dans Liste des définitions de stratégie intégrées.
Attribuer la stratégie intégrée à une étendue de ressources
Pour attribuer la stratégie intégrée à l’étendue appropriée dans le portail Azure, procédez comme suit :
Dans le portail Azure, recherchez Policy pour afficher le tableau de bord d’Azure Policy.
Dans la section Création, sélectionnez Attributions.
Choisissez Attribuer la stratégie.
Dans l’onglet Informations de base de la page Attribuer une stratégie, dans la section Étendue, spécifiez l’étendue de l’attribution de stratégie. Sélectionnez le bouton Plus pour choisir l’abonnement et le groupe de ressources facultatif.
Pour le champ Définition de stratégie, sélectionnez le bouton Plus, puis entrez les clés de compte de stockage dans le champ Rechercher. Sélectionnez la définition de stratégie nommée Les clés de compte de stockage ne doivent pas être expirées.
Sélectionnez Vérifier + créer pour attribuer la définition de stratégie à l’étendue spécifiée.
Surveiller la conformité avec la stratégie d’expiration de clé
Pour surveiller la conformité de vos comptes de stockage avec la stratégie d’expiration de clé, procédez comme suit :
Sur le tableau de bord Azure Policy, recherchez la définition de la stratégie intégrée pour l’étendue que vous avez spécifiée dans l’attribution de stratégie. Vous pouvez rechercher Les clés de compte de stockage ne doivent pas être expirées dans la zone Rechercher afin de filtrer la stratégie intégrée.
Sélectionnez le nom de la stratégie avec l’étendue souhaitée.
Dans la page Attribution de stratégie pour la stratégie intégrée, sélectionnez Afficher la conformité. Tous les comptes de stockage dans l’abonnement et le groupe de ressources spécifiés qui ne répondent pas aux exigences de la stratégie apparaissent dans le rapport de conformité.
Pour mettre un compte de stockage en conformité, effectuez une rotation des clés d’accès au compte.
Découvrez comment le stockage Azure assure une sécurité multicouche pour protéger vos données avec des clés d’accès, des réseaux sécurisés et la supervision Advanced Threat Protection.
Expliquez les fonctionnalités de Microsoft Entra ID pour moderniser des solutions d’identité, implémenter des solutions hybrides et une gouvernance des identités.