Appliquer une version minimale requise du protocole TLS (Transport Layer Security) pour des demandes adressées à un compte de stockage

La communication entre une application cliente et un compte de stockage Azure est chiffrée à l’aide du protocole TLS (Transport Layer Security). Le protocole TLS est un protocole de chiffrement standard qui garantit la confidentialité et l’intégrité des données entre les clients et les services via Internet. Pour plus d’informations sur le protocole TLS , consultez TLS.

Le stockage Azure prend en charge trois versions du protocole TLS : 1.0, 1.1 et 1.2. Le service Stockage Azure utilise le protocole TLS 1.2 sur les points de terminaison HTTP publics, mais les protocoles TLS 1.0 et TLS 1.1 sont toujours pris en charge à des fins de compatibilité descendante.

Conseil

Stockage Azure s’appuie sur l’implémentation de SSL par Windows qui n’est pas basée sur OpenSSL et n’est donc pas exposée aux vulnérabilités connexes.

Les comptes de stockage Azure permettent aux clients d’envoyer et de recevoir des données avec la version la plus ancienne de TLS, TLS 1.0 et les versions ultérieures. Pour appliquer des mesures de sécurité plus strictes, vous pouvez configurer votre compte de stockage afin d’exiger que les clients envoient et reçoivent des données avec une version plus récente du protocole TLS. Si un compte de stockage nécessite une version minimale du protocole TLS, les demandes effectuées avec une version antérieure échouent.

Cet article explique comment utiliser une infrastructure DRAG (détection, correction, audit, gouvernance) pour gérer en continu le protocole TLS sécurisé pour vos comptes de stockage.

Pour plus d’informations sur la façon de spécifier une version particulière de TLS lors de l’envoi d’une demande à partir d’une application cliente, consultez Configurer le protocole TLS (Transport Layer Security) pour une application cliente.

Notes

La suite de chiffrement utilisée quand les clients envoient des données à un compte de stockage et en reçoivent des données dépend de la version TLS utilisée. Il n’est pas possible de configurer un compte de stockage pour bloquer l’utilisation de chiffrements spécifiques autrement qu’en exigeant une version TLS minimale. Si vous avez besoin de la possibilité d’autoriser uniquement des suites de chiffrement spécifiques lors de la connexion à votre compte de stockage, envisagez d’utiliser Azure Application Gateway. Pour plus d’informations sur l’utilisation d’Application Gateway à cet effet, consultez Configurer les versions des stratégies TLS et les suites de chiffrement sur Azure Application Gateway.

Détecter la version TLS utilisée par les applications clientes

Quand vous appliquez une version TLS minimale pour votre compte de stockage, vous risquez de rejeter des demandes de clients qui envoient des données avec une version antérieure de TLS. Pour que vous compreniez dans quelle mesure la configuration de la version minimale de TLS peut affecter les applications clientes, Microsoft vous recommande d’activer la journalisation pour votre compte de stockage Azure et d’analyser les journaux après un intervalle de temps afin de détecter les versions de TLS utilisées par les applications clientes.

Pour journaliser les demandes dans votre compte de stockage Azure et déterminer la version TLS utilisée par le client, vous pouvez utiliser la journalisation du stockage Azure dans Azure Monitor. Pour plus d’informations, consultez Superviser le stockage Azure.

La journalisation du stockage Azure dans Azure Monitor prend en charge l’utilisation de requêtes de journal pour analyser les données des journaux. Pour interroger les journaux, vous pouvez utiliser un espace de travail Azure Log Analytics. Pour en savoir plus sur les requêtes de journal, consultez Tutoriel : Bien démarrer avec les requêtes Log Analytics.

Pour journaliser des données de stockage Azure avec Azure Monitor et les analyser avec Azure Log Analytics, vous devez d’abord créer un paramètre de diagnostic qui indique les types de demandes et les services de stockage pour lesquels vous souhaitez journaliser les données. Pour créer un paramètre de diagnostic dans le portail Azure, suivez ces étapes :

  1. Créez un espace de travail Log Analytics dans l’abonnement qui contient votre compte de stockage Azure. Une fois que vous avez configuré la journalisation pour votre compte de stockage, les journaux sont disponibles dans l’espace de travail Log Analytics. Pour plus d’informations, consultez Créer un espace de travail Log Analytics dans le portail Azure.

  2. Accédez à votre compte de stockage dans le portail Azure.

  3. Dans la section Supervision, sélectionnez Paramètres de diagnostic.

  4. Sélectionnez le service de stockage Azure pour lequel vous souhaitez journaliser les demandes. Par exemple, choisissez Blob pour journaliser les demandes dans le stockage Blob.

  5. Sélectionnez Ajouter le paramètre de diagnostic.

  6. Fournissez un nom pour le paramètre de diagnostic.

  7. Sous Détails de la catégorie, dans la section Journal, choisissez les types de demandes à journaliser. Vous pouvez journaliser les demandes de lecture, d’écriture et de suppression. Par exemple, si vous choisissez StorageRead et StorageWrite, les demandes de lecture et d’écriture sont journalisées sur le service sélectionné.

  8. Sous Détails de la destination, sélectionnez Envoyer à Log Analytics. Sélectionnez votre abonnement et l’espace de travail Log Analytics que vous avez créé, comme illustré dans l’image suivante.

    Capture d’écran montrant comment créer un paramètre de diagnostic pour la journalisation des demandes

Une fois le paramètre de diagnostic créé, les demandes adressées au compte de stockage sont journalisées conformément à ce paramètre. Pour plus d’informations, consultez Créer un paramètre de diagnostic pour collecter les journaux et les métriques des ressources dans Azure.

Pour obtenir des informations de référence sur les champs disponibles dans les journaux Stockage Azure dans Azure Monitor, consultez Journaux de ressources.

Interroger les demandes journalisées en fonction de la version de TLS

Les journaux de stockage Azure dans Azure Monitor incluent la version de TLS utilisée pour envoyer une demande à un compte de stockage. Utilisez la propriété TlsVersion pour vérifier la version de TLS d’une demande journalisée.

Pour déterminer le nombre de demandes effectuées sur le Stockage Blob avec différentes versions du protocole TLS au cours des sept derniers jours, ouvrez votre espace de travail Log Analytics. Collez ensuite la requête suivante dans une nouvelle requête de journal et exécutez-la. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion

Les résultats indiquent le nombre de demandes effectuées avec chaque version de TLS :

Capture d’écran montrant les résultats de la requête Log Analytics pour retourner la version de TLS

Interroger les demandes journalisées en fonction de l’adresse IP de l’appelant et de l’en-tête de l’agent utilisateur

Les journaux de stockage Azure dans Azure Monitor incluent également l’adresse IP de l’appelant et l’en-tête de l’agent utilisateur pour vous aider à déterminer les applications clientes ayant accédé au compte de stockage. Vous pouvez analyser ces valeurs pour décider si les applications clientes doivent être mises à jour afin d’utiliser une version plus récente de TLS ou si la demande d’un client non envoyée avec la version minimale de TLS peut faire l’objet d’un rejet.

Pour déterminer les clients qui ont effectué des demandes avec une version de TLS antérieure à TLS 1.2 au cours des sept derniers jours, collez la requête suivante dans une nouvelle requête de journal et exécutez-la. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader

Corriger les risques de sécurité avec une version minimale de TLS

Lorsque vous êtes certain que le trafic provenant de clients utilisant des versions antérieures de TLS est minimal, ou qu’il est acceptable que des requêtes effectuées avec une version antérieure de TLS échouent, vous pouvez commencer à appliquer d’une version minimale de TLS sur votre compte de stockage. Exiger que les clients utilisent une version minimale de TLS pour effectuer des demandes sur un compte de stockage fait partie d’une stratégie visant à de réduire les risques de sécurité pour vos données.

Important

Si vous utilisez un service qui se connecte au Stockage Azure, vérifiez qu’il utilise la bonne version du protocole TLS pour envoyer des requêtes au Stockage Azure avant de définir la version minimale requise pour un compte de stockage.

Configurer la version minimale de TLS pour un compte de stockage

Pour configurer la version minimale de TLS pour un compte de stockage, définissez la version minimumTlsVersion pour le compte. Cette propriété est disponible pour tous les comptes de stockage créés avec le modèle de déploiement Azure Resource Manager. Pour plus d’informations sur le modèle de déploiement Azure Resource Manager, consultez Vue d’ensemble du compte de stockage.

La valeur par défaut de la propriété MinimumTlsVersion est différente selon la façon dont vous la définissez. Lorsque vous créez un compte de stockage avec le portail Azure, la version TLS minimale est définie sur 1.2 par défaut. Lorsque vous créez un compte de stockage avec PowerShell, Azure CLI ou un modèle de Azure Resource Manager, la propriété MinimumTlsVersion n’est pas définie par défaut et ne retourne pas de valeur tant que vous ne la définissez pas explicitement.

Lorsque la propriété MinimumTlsVersion n'est pas définie, sa valeur peut être affichée sous forme de chaîne nulle ou vide, selon le contexte. Le compte de stockage autorise les demandes envoyées avec TLS version 1.0 ou ultérieure si la propriété n’est pas définie.

Lorsque vous créez un compte de stockage avec le portail Azure, la version TLS minimale est définie sur 1.2 par défaut.

Pour configurer la version TLS minimale pour un compte de stockage existant avec le portail Azure, effectuez les étapes suivantes :

  1. Accédez à votre compte de stockage dans le portail Azure.

  2. Sous Paramètres, sélectionnez Configuration.

  3. Sous Version TLS minimale, utilisez la liste déroulante pour sélectionner la version minimale de TLS nécessaire pour accéder aux données de ce compte de stockage.

    Capture d’écran montrant comment configurer la version minimale de TLS sur le portail Azure.

Notes

Une fois la version minimale de TLS mise à jour pour le compte de stockage, la propagation de la modification peut prendre jusqu’à 30 secondes.

La configuration de la version minimale de TLS nécessite la version 2019-04-01 ou une version ultérieure du fournisseur de ressources Stockage Azure. Pour plus d’informations, consultez API REST du fournisseur de ressources Stockage Azure.

Vérifier la version minimale requise de TLS pour plusieurs comptes

Pour vérifier la version minimale de TLS requise sur un ensemble de comptes de stockage avec des performances optimales, vous pouvez utiliser l’Explorateur Azure Resource Graph dans le portail Azure. Pour en savoir plus sur l’utilisation de l’Explorateur Resource Graph, consultez Démarrage rapide : Exécuter votre première requête Resource Graph à l’aide de l’Explorateur Azure Resource Graph.

L’exécution de la requête suivante dans l’Explorateur Resource Graph retourne une liste de comptes de stockage et affiche la version de TLS minimale pour chaque compte :

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend minimumTlsVersion = parse_json(properties).minimumTlsVersion
| project subscriptionId, resourceGroup, name, minimumTlsVersion

Tester la version de TLS minimale à partir d’un client

Pour vérifier que la version minimale de TLS requise pour un compte de stockage interdit les appels effectués avec une version antérieure, vous pouvez configurer un client afin qu’il utilise une version antérieure de TLS. Pour plus d’informations sur la configuration d’un client afin qu’il utilise une version spécifique de TLS, consultez Configurer le protocole TLS (Transport Layer Security) pour une application cliente.

Quand un client accède à un compte de stockage à l’aide d’une version TLS qui ne correspond pas à la version de TLS minimale configurée pour le compte, le Stockage Azure retourne le code d’erreur 400 (demande incorrecte) et un message indiquant que la version de TLS utilisée n’est pas autorisée pour effectuer des demandes sur ce compte de stockage.

Notes

Lorsque vous configurez une version TLS minimale pour un compte de stockage, cette version minimale est appliquée au niveau de l’application. Les outils qui tentent de déterminer la prise en charge du protocole TLS au niveau de la couche de protocole peuvent renvoyer les versions du protocole TLS en plus de la version minimale requise quand elles s’exécutent directement sur le point de terminaison du compte de stockage.

Utiliser Azure Policy pour auditer la conformité

Si vous avez un grand nombre de comptes de stockage, il se peut que vous deviez effectuer un audit pour vous assurer que tous les comptes sont configurés pour la version minimale de TLS que votre organisation exige. Pour auditer la conformité d’un ensemble de comptes de stockage, utilisez Azure Policy. Azure Policy est un service que vous pouvez utiliser pour créer, attribuer et gérer des stratégies qui appliquent des règles à des ressources Azure. Lorsque vous utilisez Azure Policy, les ressources restent conformes à vos normes d’entreprise et contrats de niveau de service. Pour plus d’informations, consultez Vue d’ensemble d’Azure Policy.

Créer une stratégie avec un effet d’audit

Azure Policy prend en charge les effets qui déterminent ce qui se produit quand une règle de stratégie est évaluée par rapport à une ressource. L’effet d’audit crée un avertissement quand une ressource n’est pas conforme, mais n’arrête pas la demande. Pour plus d’informations, consultez Comprendre les effets d’Azure Policy.

Pour créer une stratégie avec un effet d’audit pour la version minimale de TLS avec le portail Azure, procédez comme suit :

  1. Dans le Portail Azure, accédez au service Azure Policy.

  2. Dans la section Création, sélectionnez Définitions.

  3. Sélectionnez Ajouter une définition de stratégie pour créer une nouvelle définition de stratégie.

  4. Pour le champ emplacement de la définition, sélectionnez le bouton Autres pour spécifier l’emplacement de la ressource de stratégie d’audit.

  5. Spécifiez un nom pour la stratégie. Vous pouvez éventuellement spécifier une description et une catégorie.

  6. Sous Règle de stratégie, ajoutez la définition de stratégie suivante à la section policyrule.

    {
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "anyOf": [
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "notEquals": "TLS1_2"
                  },
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "exists": "false"
                  }
                ]
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  7. Enregistrez la stratégie.

Affecter la stratégie

Ensuite, attribuez la stratégie à une ressource. L’étendue de la stratégie correspond à cette ressource et à toutes les ressources qu’elle contient. Pour plus d’informations sur l’attribution de stratégie, consultez Structure d’affectation d’Azure Policy.

Pour attribuer la stratégie avec le portail Azure, procédez comme suit :

  1. Dans le portail Azure, accédez au service Azure Policy.
  2. Dans la section Création, sélectionnez Attributions.
  3. Sélectionnez Attribuer une stratégie pour créer une attribution de stratégie.
  4. Pour le champ Étendue, sélectionnez l’étendue de l’attribution de stratégie.
  5. Pour le champ Définition de stratégie, sélectionnez le bouton Autres, puis la stratégie que vous avez définie dans la section précédente dans la liste.
  6. Entrez un nom pour l’attribution de stratégie. La description est facultative.
  7. Laissez l’option Application de stratégie définie sur Activée. Ce paramètre n’a aucun effet sur la stratégie d’audit.
  8. Sélectionnez Vérifier + créer pour créer l’attribution.

Afficher le rapport de conformité

Une fois que vous avez attribué la stratégie, vous pouvez afficher le rapport de conformité. Le rapport de conformité d’une stratégie d’audit fournit des informations sur les comptes de stockage qui ne sont pas conformes à la stratégie. Pour plus d’informations, consultez Obtenir les données de conformité de la stratégie.

La disponibilité du rapport de conformité peut prendre plusieurs minutes après la création de l’attribution de stratégie.

Pour afficher le rapport de conformité dans le Portail Azure, procédez comme suit :

  1. Dans le portail Azure, accédez au service Azure Policy.

  2. Sélectionnez Conformité.

  3. Filtrez les résultats pour le nom de l’attribution de stratégie que vous avez créée à l’étape précédente. Le rapport indique le nombre de ressources qui ne sont pas conformes à la stratégie.

  4. Vous pouvez explorer le rapport au niveau du détail pour obtenir des détails supplémentaires, notamment une liste des comptes de stockage qui ne sont pas conformes.

    Capture d’écran montrant le rapport de conformité de la stratégie d’audit pour la version minimale de TLS

Utiliser Azure Policy pour appliquer la version minimale de TLS

Azure Policy prend en charge la gouvernance cloud en s’assurant que les ressources Azure respectent les exigences et les normes. Pour appliquer une exigence de version minimale de TLS aux comptes de stockage de votre organisation, vous pouvez créer une stratégie empêchant la création de nouveau compte de stockage, qui définit l’exigence minimale de TLS sur une version antérieure de TLS que celle dictée par la stratégie. Cette stratégie empêchera également toutes les modifications de configuration apportées à un compte existant si le paramètre la version minimale de TLS pour ce compte n’est pas conforme à la stratégie.

La stratégie d’application utilise l’effet de refus pour empêcher une demande qui aurait pour effet de créer ou de modifier un compte de stockage de sorte que la version minimale de TLS ne respecte plus les normes de votre organisation. Pour plus d’informations, consultez Comprendre les effets d’Azure Policy.

Pour créer une stratégie avec un effet de refus pour une version minimale de TLS inférieure à la version 1.2, suivez les étapes décrites dans Utiliser Azure Policy pour auditer la conformité, mais fournissez le fichier JSON suivant dans la section policyrule de la définition de stratégie :

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "anyOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "notEquals": "TLS1_2"
              },
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "exists": "false"
              }
            ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

Une fois que vous avez créé la stratégie avec l’effet de refus et l’avez attribuée à une étendue, un utilisateur ne peut plus créer de compte de stockage avec une version minimale de TLS antérieure à la version 1.2. Un utilisateur ne peut pas non plus apporter des changements de configuration à un compte de stockage existant qui requiert actuellement une version minimale de TLS antérieure à la version 1.2. Toute tentative en ce sens entraîne une erreur. La version minimale TLS requise pour le compte de stockage doit être définie sur 1.2 pour poursuivre la création ou la configuration du compte.

L’image suivante montre l’erreur qui se produit si vous tentez de créer un compte de stockage avec la version minimale de TLS définie sur TLS 1.0 (valeur par défaut pour un nouveau compte) quand une stratégie avec effet de refus exige que la version minimale de TLS soit définie sur TLS 1.2.

Capture d’écran montrant l’erreur qui se produit lors de la création d’un compte de stockage en violation de la stratégie

Autorisations nécessaires pour exiger une version minimale du protocole TLS

Pour pouvoir définir la propriété MinimumTlsVersion du compte de stockage, un utilisateur doit disposer des autorisations nécessaires pour créer et gérer des comptes de stockage. Les rôles de contrôle d’accès en fonction du rôle Azure (contrôle RBAC Azure) qui fournissent ces autorisations comprennent l’action Microsoft.Storage/storageAccounts/write ou l’action Microsoft.Storage/storageAccounts/*. Parmi les rôles intégrés comportant cette action figurent :

Ces rôles ne fournissent pas d’accès aux données d’un compte de stockage via Microsoft Entra ID. Toutefois, ils incluent l’action Microsoft.Storage/storageAccounts/listkeys/action, qui accorde l’accès aux clés d’accès du compte. Avec cette autorisation, un utilisateur peut utiliser les clés d’accès du compte pour accéder à toutes les données d’un compte de stockage.

Les attributions de rôles doivent être définies au niveau du compte de stockage ou à un niveau supérieur pour permettre à un utilisateur d’exiger une version minimale du protocole TLS pour le compte de stockage. Pour plus d’informations sur l’étendue des rôles, consultez Présentation de l’étendue pour Azure RBAC.

Veillez à limiter l’attribution de ces rôles aux seules personnes qui ont besoin de créer un compte de stockage ou de mettre à jour ses propriétés. Appliquez le principe des privilèges minimum pour que les utilisateurs disposent des autorisations nécessaires les plus faibles possibles pour accomplir leurs tâches. Pour plus d’informations sur la gestion de l’accès avec Azure RBAC, consultez Meilleures pratiques pour Azure RBAC.

Notes

Les rôles d’administrateur d’abonnement classique Administrateur de service et Co-administrateur incluent l’équivalent du rôle Propriétaire d’Azure Resource Manager. Le rôle Propriétaire comprend toutes les actions. Par conséquent, un utilisateur disposant de l’un de ces rôles d’administration peut également créer et gérer des comptes de stockage. Pour plus d’informations, consultez Rôles Azure, rôles Microsoft Entra et rôles d’administrateur d’abonnements classiques.

Considérations relatives au réseau

Quand un client envoie une demande au compte de stockage, il établit une connexion avec le point de terminaison public du compte de stockage, puis la demande est traitée. Le paramètre de version TLS minimale est vérifié après l’établissement de la connexion. Si la demande utilise une version de TLS antérieure à celle spécifiée par le paramètre, la connexion continue, mais la demande finit par échouer. Pour plus d’informations sur les points de terminaison publics pour le stockage Azure, consultez Syntaxe d’URI de ressource.

Étapes suivantes