Contrôles d’accès réseau Azure SQL Database et Azure Synapse Analytics

S’applique à :Azure SQL DatabaseAzure Synapse Analytics (pools SQL dédiés uniquement)

Quand vous créez un serveur logique à partir du portail Azure pour Azure SQL Database et Azure Synapse Analytics, le résultat est un point de terminaison public au format votrenomdeserveur.basededonnées.windows.net.

Vous pouvez utiliser les contrôles d'accès réseau suivants pour autoriser de manière sélective l'accès à la base de données via le point de terminaison public :

  • Autoriser les services et les ressources Azure à accéder à ce serveur : quand cette option est activée, d’autres ressources situées dans la limite Azure, par exemple une machine virtuelle Azure, peuvent accéder à SQL Database.
  • Règles de pare-feu IP : Utilisez cette fonctionnalité pour autoriser explicitement les connexions à partir d’une adresse IP spécifique, par exemple à partir d’ordinateurs locaux

Vous pouvez également autoriser l’accès privé à la base de données à partir des réseaux virtuels via :

  • Règles de pare-feu de réseau virtuel : utilisez cette fonctionnalité pour autoriser le trafic à partir d’un réseau virtuel spécifique au sein de la limite Azure.
  • Liaison privée : utilisez cette fonctionnalité pour créer un point de terminaison privé pour le serveur logique dans Azure au sein d’un réseau virtuel spécifique

Important

Cet article ne s'applique pas à SQL Managed Instance. Pour plus d’informations sur la configuration réseau, consultez Connexion à Azure SQL Managed Instance.

Pour bien comprendre ces contrôles d’accès et ce qu’ils font, regardez la vidéo ci-dessous :

Autoriser les services Azure

Par défaut, lors de la création d’un serveur logique à partir du portail Azure, Autoriser les services et les ressources Azure à accéder à ce serveur est décoché et non activé. Ce paramètre s’affiche lorsque la connectivité est autorisée à l’aide d’un point de terminaison de service public.

Vous pouvez aussi changer ce paramètre via le paramètre Réseau une fois le serveur logique créé, comme suit :

Screenshot of manage server firewall

Quand Autoriser les services et ressources Azure à accéder à ce serveur est activé, votre serveur autorise les communications de toutes les ressources situées dans la limite Azure, qu’elles fassent ou non partie de votre abonnement.

Le paramètre activé est souvent plus permissif que ce que souhaitent la plupart des clients. Vous pouvez donc décocher ce paramètre et le remplacer par des règles de pare-feu IP ou des règles de pare-feu de réseau virtuel plus restrictives.

Cela étant, ce choix affecte les fonctionnalités suivantes qui s’exécutent sur des machines virtuelles dans Azure qui ne font pas partie de votre réseau virtuel et qui, par conséquent, se connectent à la base de données par le biais d’une adresse IP Azure :

Service d’importation/exportation

Le service d’importation et d’exportation ne fonctionne pas quand Autoriser les services et les ressources Azure à accéder à ce serveur n’est pas activé. Toutefois, vous pouvez contourner le problème en exécutant manuellement SqlPackage à partir d’une machine virtuelle Azure ou en effectuant l’exportation directement dans votre code à l’aide de l’API DACFx.

Synchronisation des données

Pour utiliser la fonctionnalité de synchronisation des données avec Autoriser les services et les ressources Azure à accéder à ce serveur désactivé, vous devez créer des entrées de règle de pare-feu individuelles pour ajouter des adresses IP à partir de l’étiquette de service SQL pour la région hébergeant la base de données Hub. Ajoutez ces règles de pare-feu au niveau du serveur aux serveurs hébergeant à la fois des bases de données Hub et Member (qui peuvent être dans des régions différentes)

Utilisez le script PowerShell suivant pour générer les adresses IP correspondant à la balise du service SQL pour la région USA Ouest

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Conseil

Get-AzNetworkServiceTag retourne la plage globale de la balise du service SQL malgré la spécification du paramètre Location. Veillez à la filtrer sur la région qui héberge la base de données Hub utilisée par votre groupe de synchronisation.

Notez que la sortie du script PowerShell est en notation CIDR (Classless Inter-Domain Routing). Celle-ci doit être convertie au format d’adresse IP de début et de fin à l’aide de la commande Get-IPrangeStartEnd.ps1 comme suit :

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Vous pouvez utiliser ce script PowerShell supplémentaire pour convertir toutes les adresses IP en notation CIDR au format d’adresse IP de début et de fin.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

Vous pouvez maintenant les ajouter en tant que règles de pare-feu distinctes, puis désactiver le paramètre Autoriser les services et les ressources Azure à accéder à ce serveur.

Règles de pare-feu IP

Le pare-feu basé sur IP est une fonctionnalité du serveur logique dans Azure qui empêche tout accès à votre serveur tant que vous n’avez pas ajouté les adresses IP des machines clientes de manière explicite.

Règles de pare-feu de réseau virtuel

En plus des règles IP, le pare-feu du serveur vous permet de définir des règles de réseau virtuel. Pour en savoir plus, consultez Points de terminaison de service de réseau virtuel et règles dans Azure SQL Database.

Terminologie des réseaux Azure

Apprenez à connaître les termes de réseau suivants d’Azure Networking quand vous explorez les règles de pare-feu de réseau virtuel

Réseau virtuel : Vous pouvez avoir des réseaux virtuels associés à votre abonnement Azure.

Sous-réseau : Un réseau virtuel contient des sous-réseaux. Toutes les machines virtuelles Azure que vous avez sont assignées à des sous-réseaux. Un sous-réseau peut contenir plusieurs machines virtuelles ou d’autres nœuds de calcul. Les nœuds de calcul qui se trouvent en dehors de votre réseau virtuel ne peuvent pas accéder à ce dernier, sauf si vous configurez votre sécurité pour leur en donner l’accès.

Point de terminaison de service de réseau virtuel : Un point de terminaison de service de réseau virtuel est un sous-réseau dont les valeurs de propriétés incluent un ou plusieurs noms de type de service Azure formels. Dans cet article, nous nous intéressons au nom de type de Microsoft.Sql, qui fait référence au service Azure nommé SQL Database.

Règle de réseau virtuel : une règle de réseau virtuel pour votre serveur est un sous-réseau qui figure dans la liste de contrôle d’accès (ACL) de votre serveur. Pour figurer dans l’ACL pour votre base de données dans SQL Database, le sous-réseau doit contenir le nom de type Microsoft.Sql. Une règle de réseau virtuel donne l’instruction au serveur d’accepter les communications provenant de tout nœud se trouvant sur le sous-réseau.

IP ou Règles de pare-feu de réseau virtuel

Le pare-feu Azure SQL Database permet de spécifier des plages d’adresses IP à partir desquelles les communications sont acceptées dans SQL Database. Cette approche est indiquée pour les adresses IP stables qui se trouvent en dehors du réseau privé Azure. Toutefois, les machines virtuelles à l’intérieur du réseau privé Azure sont configurées avec des adresses IP dynamiques. Les adresses IP dynamiques peuvent changer lorsque votre machine virtuelle est redémarrée et ainsi invalider la règle de pare-feu basée sur IP. Spécifier une adresse IP dynamique dans une règle de pare-feu au sein d’un environnement de production serait inimaginable.

Vous pouvez contourner cette limitation en obtenant une adresse IP statique pour votre machine virtuelle. Pour plus de détails, consultez Créer une machine virtuelle avec une adresse IP publique statique à partir du portail Azure. L’approche des IP statiques peut toutefois devenir difficile à gérer, et s’avère coûteuse quand elle est appliquée à grande échelle.

Les règles de réseau virtuel constituent une alternative plus facile pour établir et gérer l’accès à partir d’un sous-réseau spécifique qui contient vos machines virtuelles.

Notes

Vous ne pouvez pas encore avoir SQL Database dans un sous-réseau. Si votre serveur était un nœud sur un sous-réseau de votre réseau virtuel, tous les nœuds situés dans le réseau virtuel pourraient communiquer avec votre instance SQL Database. Dans ce cas, vos machines virtuelles pourraient communiquer avec le serveur SQL Database sans avoir à utiliser de règles de réseau virtuel ni de règles IP.

Private Link vous permet de vous connecter à un serveur par le biais d’un point de terminaison privé. Un point de terminaison privé est une adresse IP privée au sein d’un réseau virtuel et d’un sous-réseau spécifiques.

Étapes suivantes