Partager via


règles de pare-feu IP Azure SQL Database et de Azure Synapse

Applies to :Azure SQL DatabaseAzure Synapse Analytics

Lorsque vous créez un serveur dans Azure SQL Database ou Azure Synapse Analytics nommé mysqlserver, par exemple, un pare-feu au niveau du serveur bloque tout accès au point de terminaison public du serveur (accessible à mysqlserver.database.windows.net). Par souci de simplicité, SQL Database est utilisé pour faire référence à SQL Database et Azure Synapse Analytics. Cet article ne s’applique pas à Azure SQL Managed Instance. Pour plus d’informations sur la configuration réseau, consultez Connectez votre application à Azure SQL Managed Instance.

Note

Microsoft Entra ID était précédemment appelé Azure Active Directory (Azure AD).

Fonctionnement du pare-feu

Les tentatives de connexion à partir d’Internet et Azure doivent passer par le pare-feu avant d’atteindre votre serveur ou base de données, comme le montre le diagramme suivant.

Diagram du pare-feu Azure SQL Database.

Importante

Azure Synapse prend uniquement en charge les règles de pare-feu IP au niveau du serveur. Il ne prend pas en charge les règles de pare-feu IP au niveau de la base de données.

Règles de pare-feu IP au niveau du serveur

Ces règles permettent aux clients d'accéder à l'ensemble de votre serveur, c'est-à-dire à toutes les bases de données gérées par le serveur. Les règles sont stockées dans la master base de données. Le nombre maximal de règles de pare-feu IP au niveau du serveur est limité à 256 par serveur. Si vous avez activé le paramètre Autoriser les services Azure et les ressources à accéder à ce serveur, cela compte comme une seule règle de pare-feu pour le serveur.

Vous pouvez configurer des règles de pare-feu IP au niveau du serveur à l’aide des instructions Azure portail, PowerShell ou Transact-SQL.

Note

Le nombre maximal de règles de pare-feu IP au niveau du serveur est limité à 256 lors de la configuration à l’aide du portail Azure.

  • Pour utiliser le portail ou PowerShell, vous devez être le propriétaire ou un contributeur de l’abonnement.
  • Pour utiliser Transact-SQL, vous devez vous connecter à la base de données master en tant qu'utilisateur principal au niveau du serveur ou en tant qu’administrateur Microsoft Entra. (Une règle de pare-feu IP au niveau du serveur doit d’abord être créée par un utilisateur disposant d’autorisations de niveau Azure.)

Note

Par défaut, lors de la création d’un nouveau serveur SQL logique à partir du portail Azure, le paramètre Allow Azure Services et ressources pour accéder à ce serveur est défini sur No.

Règles de pare-feu IP au niveau de la base de données

Ces règles de pare-feu IP au niveau de la base de données permettent aux clients d'accéder à certaines bases de données (sécurisées). Vous créez les règles de chaque base de données (y compris la master base de données) et elles sont stockées dans la base de données individuelle.

  • Vous pouvez uniquement créer et gérer des règles de pare-feu IP au niveau de la base de données pour master et les bases de données utilisateur à l’aide d’instructions Transact-SQL et uniquement après avoir configuré le premier pare-feu au niveau du serveur.
  • Si vous spécifiez dans la règle de pare-feu IP au niveau de la base de données une plage d’adresses IP en dehors de la plage spécifiée dans la règle de pare-feu IP au niveau du serveur, seuls les clients dont les adresses IP appartiennent à la plage au niveau de la base de données peuvent accéder à la base de données.
  • La valeur par défaut correspond à un maximum de 256 règles de pare-feu IP de niveau base de données par base de données. Pour plus d’informations sur la configuration des règles de pare-feu IP au niveau de la base de données, consultez l’exemple plus loin dans cet article et consultez sp_set_database_firewall_rule (Azure SQL Database).

Recommandations sur la définition des règles de pare-feu

Utilisez les règles de pare-feu IP au niveau de la base de données dans la mesure du possible. Cette pratique améliore la sécurité et la portabilité de votre base de données. Utilisez des règles de pare-feu IP au niveau du serveur pour les administrateurs. Utilisez également ces règles quand de nombreuses bases de données ont les mêmes exigences d’accès et que vous ne souhaitez pas les configurer une à une.

Note

Pour plus d’informations sur les bases de données portables dans le contexte de la continuité d’activité, consultez Configurer et gérer Azure SQL Database sécurité pour la géorestauration ou le basculement.

Règles de pare-feu IP au niveau du serveur et au niveau de la base de données

Les utilisateurs d’une base de données doivent-ils être entièrement isolés d’une autre base de données ?

Si c’est le cas, utilisez des règles de pare-feu IP au niveau de la base de données pour accorder l’accès. Cette méthode évite d’utiliser des règles de pare-feu IP au niveau du serveur, qui permettent à toutes les bases de données de franchir le pare-feu et réduisent ainsi le champ de vos défenses.

Les utilisateurs sur les adresses IP ont-ils besoin d’accéder à toutes les bases de données ?

Si c’est le cas, utilisez des règles de pare-feu IP au niveau du serveur pour réduire le nombre de fois où vous devez configurer des règles de pare-feu IP.

La personne ou l'équipe qui configure les règles de pare-feu IP n'a accès que via le portail Azure, PowerShell, ou l'API REST ?

Si c’est le cas, vous devez utiliser des règles de pare-feu IP au niveau du serveur. Les règles de pare-feu IP au niveau de la base de données peuvent uniquement être configurées via Transact-SQL.

La personne ou l’équipe qui configure les règles de pare-feu IP ne peuvent-elles pas disposer d’autorisations de haut niveau au niveau de la base de données ?

Si c’est le cas, utilisez des règles de pare-feu IP au niveau du serveur. Vous devez disposer au moins de l'autorisation CONTROL DATABASE à niveau de la base de données pour configurer des règles de pare-feu IP au niveau de la base de données par Transact-SQL.

La personne ou l’équipe qui configure ou audite les règles de pare-feu IP gèrent-elles de manière centralisée les règles de pare-feu IP pour de nombreuses (peut-être des centaines) de bases de données ?

Si c’est le cas, vos besoins et votre environnement déterminent les bonnes pratiques à mettre en œuvre. Les règles de pare-feu IP au niveau du serveur peuvent être plus faciles à configurer, mais des scripts peuvent configurer les règles au niveau de la base de données. Et même si vous utilisez des règles de pare-feu IP au niveau du serveur, vous devrez peut-être auditer les règles de pare-feu IP au niveau de la base de données pour voir si les utilisateurs disposant d’une autorisation CONTROL sur la base de données créent des règles de pare-feu IP au niveau de la base de données.

Puis-je utiliser une combinaison de règles de pare-feu IP au niveau du serveur et de base de données ?

Oui. Certains utilisateurs comme les administrateurs peuvent avoir besoin de règles de pare-feu IP au niveau du serveur. D’autres utilisateurs, comme les utilisateurs d’une application de base de données, peuvent avoir besoin de règles de pare-feu IP au niveau de la base de données.

Connexions à partir d’Internet

Lorsqu'un ordinateur tente de se connecter à votre serveur à partir d'Internet, le pare-feu vérifie d'abord l'adresse IP d'origine de la demande par rapport aux règles de pare-feu IP au niveau de la base de données pour la base de données demandée par la connexion.

  • Si l'adresse est comprise dans une plage spécifiée dans les règles de pare-feu IP au niveau de la base de données, la connexion à la base de données contenant la règle est accordée.
  • Dans le cas contraire, le pare-feu vérifie les règles de pare-feu IP au niveau du serveur. Si l’adresse est comprise dans une plage spécifiée dans les règles de pare-feu IP au niveau du serveur, la connexion est accordée. Les règles de pare-feu IP au niveau du serveur s'appliquent à toutes les bases de données gérées par le serveur.
  • Si l’adresse n’est pas comprise dans une plage spécifiée dans les règles de pare-feu IP au niveau du serveur ou de la base de données, la demande de connexion échoue.

Note

Pour accéder à Azure SQL Database à partir de votre ordinateur local, assurez-vous que le pare-feu sur votre réseau et l’ordinateur local autorise la communication sortante sur le port TCP 1433.

Connexions depuis l'intérieur d'Azure

Pour autoriser les applications hébergées dans Azure à se connecter à votre serveur SQL, vous devez activer Azure connexions. Pour ce faire, créez une règle de pare-feu avec des adresses IP de début et de fin définies sur 0.0.0.0. Cette règle s’applique uniquement aux Azure SQL Database.

Lorsqu’une application de Azure tente de se connecter au serveur, le pare-feu vérifie que les connexions Azure sont autorisées en vérifiant que cette règle de pare-feu existe. Cela peut être activé directement à partir du volet du portail Azure en configurant l'option Autoriser les Services Azure et les ressources à accéder à ce serveur sur ACTIVÉ dans les paramètres Pare-feu et Réseaux virtuels. Le basculement du paramètre vers ON crée une règle de pare-feu entrante pour IP 0.0.0.0 - 0.0.0 nommée AllowAllWindowsAzureIps. La règle peut être vue dans l'affichage mastersys.firewall_rules de votre base de données. Utilisez PowerShell ou le Azure CLI pour créer une règle de pare-feu avec des adresses IP de début et de fin définies sur 0.0.0.0 si vous n'utilisez pas le portail.

Avertissement

L'activation de cette option autorise les connexions à partir de tous les services Azure, y compris les services s'exécutant dans les abonnements d'autres clients. Cette règle ne limite pas l'accès à votre abonnement ou à votre groupe de ressources : toute ressource Azure avec une connectivité sortante à Azure SQL Database peut se connecter. Lorsque vous activez ce paramètre, assurez-vous que vos autorisations de connexion et d’utilisateur limitent l’accès aux utilisateurs autorisés uniquement.

Les services Azure suivants utilisent généralement cette règle pour se connecter à Azure SQL Database :

  • Azure App Service et Azure Functions
  • Azure Data Factory
  • Azure Stream Analytics
  • Azure Logic Apps
  • Azure Power BI
  • Azure AI services

Pour renforcer la sécurité, envisagez d’utiliser des points de terminaison de service de réseau virtuel ou des points de terminaison privés au lieu de la règle AllowAllWindowsAzureIps . Ces alternatives limitent la connectivité à des sous-réseaux spécifiques ou à des réseaux privés au lieu d’autoriser toutes les adresses IP Azure.

autorisations

Pour créer et gérer des règles de pare-feu IP pour azure SQL Server, vous devez disposer de l’un des rôles suivants :

Créer et gérer des règles de pare-feu IP

Vous créez le premier paramètre de pare-feu au niveau du serveur à l’aide du portail Azure ou par programmation à l’aide de Azure PowerShell, de Azure CLI ou d’une API Azure REST. Vous créez et gérez des règles de pare-feu IP supplémentaires au niveau du serveur à l’aide de ces méthodes ou de ces Transact-SQL.

Importante

Les règles de pare-feu IP au niveau de la base de données peuvent uniquement être créées et gérées à l’aide de Transact-SQL.

Pour améliorer les performances, les règles de pare-feu IP au niveau du serveur sont temporairement mises en cache au niveau de la base de données. Pour actualiser le cache, consultez DBCC FLUSHAUTHCACHE.

Conseil

Vous pouvez utiliser Auditing pour Azure SQL Database et Azure Synapse Analytics pour auditer les modifications de pare-feu au niveau du serveur et au niveau de la base de données.

Utiliser le portail Azure pour gérer les règles de pare-feu IP au niveau du serveur

Pour définir une règle de pare-feu IP au niveau du serveur dans le portail Azure, accédez à la page vue d’ensemble de votre base de données ou de votre serveur.

Conseil

Pour obtenir un didacticiel, consultez Quickstart : Créer une base de données unique - Azure SQL Database.

À partir de la page de présentation de la base de données

  1. Pour définir une règle de pare-feu IP au niveau du serveur à partir de la page vue d’ensemble de la base de données, sélectionnez Définir le pare-feu du serveur dans la barre d’outils, comme l’illustre l’image suivante.

    Screenshot du paramètre de pare-feu de serveur défini dans le Azure portal.

    La page Mise en réseau du serveur s’ouvre.

  2. Ajoutez une règle dans la section Règles de pare-feu pour ajouter l’adresse IP de l’ordinateur que vous utilisez, puis sélectionnez Enregistrer. Une règle de pare-feu IP au niveau du serveur est créée pour votre adresse IP actuelle.

    Capture d’écran montrant la page Mise en réseau dans laquelle vous pouvez définir les règles de pare-feu IP au niveau du serveur.

À partir de la page de présentation du serveur

La page de présentation de votre serveur s’ouvre. Il affiche le nom complet du serveur (par exemple , mynewserver20170403.database.windows.net) et fournit des options pour une configuration supplémentaire.

  1. Pour définir une règle au niveau du serveur à partir de cette page, sélectionnez Mise en réseau dans le menu Paramètres sur le côté gauche.

  2. Ajoutez une règle dans la section Règles de pare-feu pour ajouter l’adresse IP de l’ordinateur que vous utilisez, puis sélectionnez Enregistrer. Une règle de pare-feu IP au niveau du serveur est créée pour votre adresse IP actuelle.

Utiliser Transact-SQL pour gérer les règles de pare-feu IP

Vue de catalogue ou procédure stockée Niveau Descriptif
sys.firewall_rules Serveur Affiche les règles de pare-feu IP au niveau du serveur actuelles
sp_set_firewall_rule Serveur Crée ou met à jour les règles de pare-feu IP au niveau du serveur
sp_delete_firewall_rule Serveur Supprime des règles de pare-feu IP au niveau du serveur
sys.database_firewall_rules Base de données Affiche les règles de pare-feu IP actuelles au niveau de la base de données
sp_set_database_firewall_rule Base de données Crée ou met à jour les règles de pare-feu IP au niveau de la base de données
sp_delete_database_firewall_rule Bases de données Supprime des règles de pare-feu IP au niveau de la base de données

L’exemple suivant examine les règles existantes, active une plage d’adresses IP sur le serveur Contoso et supprime une règle de pare-feu IP :

SELECT * FROM sys.firewall_rules ORDER BY name;

Ensuite, ils ajoutent une règle de pare-feu IP au niveau du serveur.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Pour supprimer une règle de pare-feu IP au niveau du serveur, exécutez la procédure stockée sp_delete_firewall_rule . L’exemple suivant supprime la règle ContosoFirewallRule :

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Gérer des règles de pare-feu IP au niveau du serveur avec PowerShell

Note

Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour bien démarrer avec le module Az PowerShell, consultez Install Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrate Azure PowerShell d’AzureRM vers Az.

Importante

Le module PowerShell Azure Resource Manager (AzureRM) a été déconseillé le 29 février 2024. Tout le développement futur doit utiliser le module Az.Sql. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell pour garantir une prise en charge et des mises à jour continues. Le module AzureRM n’est plus géré ou pris en charge. Les arguments des commandes dans le module Az PowerShell et dans les modules AzureRM sont sensiblement identiques. Pour plus d’informations sur leur compatibilité, consultez Présentation du nouveau module Az PowerShell.

Applet de commande Niveau Descriptif
Get-AzSqlServerFirewallRule Serveur Retourne les règles de pare-feu au niveau du serveur actuelles
New-AzSqlServerFirewallRule Serveur Crée une règle de pare-feu au niveau du serveur
Set-AzSqlServerFirewallRule Serveur Met à jour les propriétés d’une règle de pare-feu au niveau du serveur existante
Remove-AzSqlServerFirewallRule Serveur Supprime des règles de pare-feu au niveau du serveur

L’exemple suivant définit une règle de pare-feu IP au niveau du serveur à l’aide de PowerShell :

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Conseil

Pour $servername, spécifiez le nom du serveur et non le nom DNS complet (par exemple, spécifiez mysqldbserver au lieu de mysqldbserver.database.windows.net).

Pour obtenir des exemples PowerShell dans le contexte d’un guide de démarrage rapide, consultez Azure PowerShell exemples pour Azure SQL Database et Use PowerShell pour créer une base de données unique et configurer une règle de pare-feu au niveau du serveur.

Gérer des règles de pare-feu IP au niveau du serveur avec l’interface de ligne de commande

Applet de commande Niveau Descriptif
az sql server firewall-rule create (créer une règle de pare-feu pour le serveur SQL) Serveur Crée une règle de pare-feu IP de serveur
az sql server firewall-rule list Serveur Liste les règles de pare-feu IP sur un serveur
az sql server firewall-rule show - Affiche la règle de pare-feu du serveur SQL Serveur Affiche les détails d’une règle de pare-feu IP
There is no additional context to translate. Therefore, the command remains the same as it is: az sql server firewall-rule update Serveur Met à jour une règle de pare-feu IP
az sql server firewall-rule delete: Cette commande supprime une règle de pare-feu sur le serveur SQL. Serveur Supprime une règle de pare-feu IP

L’exemple suivant définit une règle de pare-feu IP au niveau du serveur à l’aide de l’interface de ligne de commande :

az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255

Conseil

Pour $servername, spécifiez le nom du serveur et non le nom DNS complet. Par exemple, utilisez mysqldbserver au lieu de mysqldbserver.database.windows.net.

Pour obtenir un exemple CLI dans le contexte d’un guide de démarrage rapide, consultez Azure CLI exemples pour Azure SQL Database et Créer une base de données unique et configurer une règle de pare-feu à l’aide du Azure CLI.

Pour Azure Synapse Analytics, reportez-vous aux exemples suivants :

Applet de commande Niveau Descriptif
az synapse workspace firewall-rule create Serveur Créer une règle de pare-feu
az synapse workspace firewall-rule delete Serveur Supprimer une règle de pare-feu
az synapse workspace firewall-rule list Serveur Répertorier toutes les règles de pare-feu
az synapse workspace firewall-rule show Serveur Obtenir une règle de pare-feu
az synapse workspace firewall-rule update Serveur Mettre à jour une règle de pare-feu
az synapse workspace firewall-rule wait Serveur Placer l’interface CLI dans un état d’attente jusqu’à ce qu’une condition de règle de pare-feu soit remplie

L’exemple suivant utilise l’interface CLI pour définir une règle de pare-feu IP au niveau du serveur dans Azure Synapse :

az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Gérer des règles de pare-feu IP au niveau du serveur avec une API REST

API Niveau Descriptif
Répertorier les règles de pare-feu Serveur Affiche les règles de pare-feu IP au niveau du serveur actuelles
Créer ou mettre à jour des règles de pare-feu Serveur Crée ou met à jour les règles de pare-feu IP au niveau du serveur
Supprimer des règles de pare-feu Serveur Supprime des règles de pare-feu IP au niveau du serveur
Obtenir des règles de pare-feu Serveur Obtient les règles de pare-feu IP au niveau du serveur

Comprendre la latence des mises à jour du pare-feu

Le modèle d’authentification serveur a une latence de 5 minutes pour toutes les modifications apportées aux paramètres de sécurité, sauf si la base de données est contenue et sans partenaire de basculement. Les modifications apportées aux bases de données contenues sans partenaire de basculement sont instantanées. Pour les bases de données autonomes avec un partenaire de basculement, chaque mise à jour de sécurité est instantanée sur la base de données primaire, mais la base de données secondaire peut prendre jusqu’à 5 minutes pour refléter les modifications.

Le tableau suivant décrit la latence des modifications des paramètres de sécurité en fonction du type de base de données et de la configuration du basculement :

Modèle d’authentification Basculement configuré Latence des modifications des paramètres de sécurité Instances latentes
Authentification du serveur Oui 5 minutes toutes les bases de données
Authentification du serveur Non 5 minutes toutes les bases de données
Base de données contenue Oui 5 minutes base de données secondaire
Base de données contenue Non Aucune Aucune

Actualisation manuelle des règles de pare-feu

Si vous devez voir les règles de pare-feu mises à jour plus rapidement que la latence de 5 minutes, vous pouvez actualiser manuellement les règles de pare-feu. Connectez-vous à l’instance de base de données qui a besoin de ses règles mises à jour et exécutez DBCC FLUSHAUTHCACHE. Ainsi, l’instance de base de données vide son cache local et actualise les règles de pare-feu.

DBCC FLUSHAUTHCACHE[;]

Résoudre les problèmes liés au pare-feu de base de données

Tenez compte des points suivants lorsque l'accès à Azure SQL Database ne se comporte pas comme prévu.

  • Configuration du pare-feu local :

    Avant que votre ordinateur puisse accéder à Azure SQL Database, vous devrez peut-être créer une exception de pare-feu sur votre ordinateur pour le port TCP 1433. Pour établir des connexions à l’intérieur de la limite cloud Azure, vous devrez peut-être ouvrir des ports supplémentaires. Pour plus d’informations, consultez la section « SQL Database : externe vs interne » de Ports supérieurs à 1433 pour ADO.NET 4.5.

  • Traduction d’adresses réseau :

    En raison de la traduction d'adresses réseau (NAT), l'adresse IP utilisée par votre ordinateur pour se connecter à Azure SQL Database peut être différente de l'adresse IP dans les paramètres de configuration IP de votre ordinateur. Pour afficher l’adresse IP que votre ordinateur utilise pour se connecter à Azure :

    1. Connectez-vous au portail.
    2. Accédez à l’onglet Configurer du serveur qui héberge votre base de données.
    3. L’adresse IP du client actuel s’affiche dans la section Adresses IP autorisées. Sélectionnez Ajouter pour les adresses IP autorisées pour autoriser cet ordinateur à accéder au serveur.
  • Les modifications apportées à la liste d'autorisation n’ont pas encore pris effet :

    Il peut y avoir jusqu’à cinq minutes de retard pour que les modifications apportées à la configuration du pare-feu Azure SQL Database prennent effet.

  • La connexion n’est pas autorisée ou un mot de passe incorrect a été utilisé :

    Si une connexion n'a pas d'autorisations sur le serveur ou que le mot de passe est incorrect, la connexion au serveur est refusée. La création d’un paramètre de pare-feu permet uniquement aux clients d’essayer de se connecter à votre serveur. Ils doivent toujours fournir les informations d’identification de sécurité nécessaires. Pour plus d'informations sur la configuration des connexions, consultez Autoriser l'accès à la base de données à SQL Database, SQL Managed Instance et Azure Synapse Analytics.

  • Adresse IP dynamique :

    Si votre connexion Internet utilise un adressage IP dynamique et que le pare-feu demeure infranchissable, essayez l’une des solutions suivantes :

    • Demandez à votre fournisseur de services Internet la plage d'adresses IP attribuée aux ordinateurs clients qui accèdent au serveur. Ajoutez cette plage d’adresses IP en tant que règle de pare-feu IP.
    • Récupérez plutôt l’adressage IP statique pour vos ordinateurs clients. Ajoutez les adresses IP en tant que règles de pare-feu IP.