Tutoriel : Sécuriser une base de données dans Azure SQL Database

S’applique à Azure SQL Database

Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Créer des règles de pare-feu au niveau du serveur et de la base de données
  • Configurer un administrateur Microsoft Entra
  • Gérer l’accès utilisateur avec l’authentification SQL, l’authentification Microsoft Entra et des chaînes de connexion sécurisées
  • Activer des fonctionnalités de sécurité, comme Microsoft Defender pour SQL, l’audit, le masquage des données et le chiffrement

Remarque

Microsoft Entra ID était précédemment connu sous le nom d’Azure Active Directory (Azure AD).

Azure SQL Database sécurise les données en vous permettant d’effectuer les opérations suivantes :

  • Limiter l’accès à l’aide de règles de pare-feu
  • Utiliser des mécanismes d’authentification qui nécessitent une identité
  • Utiliser des autorisations et appartenances en fonction du rôle
  • Activer les fonctionnalités de sécurité

Notes

Azure SQL Managed Instance se sécurise à l’aide de règles de sécurité réseau et de points de terminaison privés, comme décrit dans Azure SQL Managed Instance et Architecture de connectivité.

Pour plus d’informations, consultez les articles Vue d’ensemble de la sécurité dans Azure SQL Database et Capacités.

Conseil

Ce module Learn gratuit vous montre comment sécuriser votre base de données dans Azure SQL Database.

Prérequis

Pour suivre le tutoriel, vérifiez que les prérequis ci-dessous sont remplis :

Si vous ne disposez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Connectez-vous au portail Azure.

Pour connaître toutes les étapes du tutoriel, connectez-vous au portail Azure.

Créer des règles de pare-feu

Les bases de données dans SQL Database sont protégées par des pare-feu dans Azure. Par défaut, toutes les connexions au serveur et à la base de données sont rejetées. Pour en savoir plus, consultez Règles de pare-feu au niveau du serveur et de la base de données.

Affectez au paramètre Autoriser l’accès aux services Azure la valeur DÉSACTIVER pour définir la configuration la plus sécurisée. Ensuite, créez une adresse IP réservée (déploiement classique) pour la ressource à connecter, par exemple une machine virtuelle Azure ou un service cloud, puis autorisez uniquement l’accès de cette adresse IP à travers le pare-feu. Si vous utilisez le modèle de déploiement Resource Manager, une adresse IP publique dédiée est nécessaire pour chaque ressource.

Notes

SQL Database communique par le biais du port 1433. Si vous essayez de vous connecter à partir d’un réseau d’entreprise, le trafic sortant sur le port 1433 peut être bloqué par le pare-feu de votre réseau. Dans ce cas, vous ne pouvez pas vous connecter au serveur, à moins que votre administrateur n’ouvre le port 1433.

Configurer des règles de pare-feu au niveau du serveur

Les règles de pare-feu IP au niveau du serveur s’appliquent à toutes les bases de données au sein du même serveur.

Pour configurer une règle de pare-feu au niveau du serveur :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Remarque

    Veillez à copier le nom complet de votre serveur (comme votreserveur.basededonnées.windows.net) pour pouvoir l’utiliser ultérieurement au cours du tutoriel.

  2. Sous Paramètres, sélectionnez Mise en réseau. Choisissez l’onglet Accès public, puis sélectionnez Réseaux sélectionnés sous Accès réseau public pour afficher la section Règles de pare-feu.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. Dans la barre d’outils, sélectionnez Ajouter une adresse IP cliente afin d’ajouter votre adresse IP actuelle à une nouvelle règle de pare-feu IP. Une règle de pare-feu IP peut ouvrir le port 1433 pour une seule adresse IP ou une plage d’adresses IP.

  4. Sélectionnez OK pour enregistrer les paramètres de votre pare-feu.

Vous pouvez maintenant vous connecter à n’importe quelle base de données du serveur avec l’adresse IP ou la plage d’adresses IP spécifiée.

Configurer des règles de pare-feu de base de données

Les règles de pare-feu au niveau de la base de données s’appliquent uniquement à des bases de données individuelles. La base de données conservent ces règles lors d’un basculement de serveur. Vous pouvez uniquement configurer des règles de pare-feu au niveau de la base de données à l’aide d’instructions Transact-SQL et uniquement après avoir configuré une règle de pare-feu au niveau du serveur.

Pour configurer une règle de pare-feu au niveau de la base de données :

  1. Connectez-vous à la base de données, par exemple à l’aide de SQL Server Management Studio.

  2. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la base de données et sélectionnez Nouvelle requête.

  3. Dans la fenêtre de requête, ajoutez cette instruction et remplacez l’adresse IP par votre adresse IP publique :

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. Dans la barre d’outils, sélectionnez Exécuter pour créer la règle de pare-feu.

Notes

Vous pouvez également créer une règle de pare-feu au niveau du serveur dans SSMS à l’aide de la commande sp_set_firewall_rule, même si vous devez être connecté à la base de données master.

Créer un administrateur Microsoft Entra

Vérifiez que vous utilisez le domaine managé Microsoft Entra ID (anciennement Azure Active Directory) approprié. Pour sélectionner le domaine, utilisez le coin supérieur droit du portail Azure. Ce processus confirme que le même abonnement est utilisé pour Microsoft Entra et le serveur logique, qui hébergent votre entrepôt de données ou base de données.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Pour configurer l’administrateur Microsoft Entra :

  1. Dans le Portail Azure, sur la page SQL Server, sélectionnez Microsoft Entra ID dans le menu de ressources, puis sélectionnez Définir l’administrateur pour ouvrir le volet Microsoft Entra ID.

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Important

    Vous devez être « Administrateur général » pour effectuer cette tâche.

  2. Dans le volet Microsoft Entra ID, recherchez et sélectionnez l’utilisateur ou le groupe Microsoft Entra, puis sélectionnez Sélectionner. Tous les membres et groupes de votre organisation Microsoft Entra sont répertoriés, et les entrées grisées ne sont pas prises en charge en tant qu’administrateurs Microsoft Entra. Consultez Fonctionnalités et limitations de Microsoft Entra.

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Important

    Le contrôle d’accès en fonction du rôle Azure (RBAC Azure) s’applique uniquement au portail et n’est pas étendu à SQL Server.

  3. En haut de la page d’administration Microsoft Entra, sélectionnez Enregistrer.

    La procédure de changement d’administrateur peut prendre plusieurs minutes. Le nouvel administrateur apparaît dans le champ Administrateur Microsoft Entra.

Remarque

Quand vous définissez un administrateur Microsoft Entra, le nom du nouvel administrateur (utilisateur ou groupe) ne peut pas exister en tant que connexion ou utilisateur dans la base de données master. Le cas échéant, le programme d’installation échoue et annule les modifications, ce qui indique que le nom d’administrateur existe déjà. Dans la mesure où la connexion ou l’utilisateur du serveur ne fait pas partie de Microsoft Entra ID, tout effort pour connecter l’utilisateur à l’aide de l’authentification Microsoft Entra échoue.

Pour plus d’informations sur la configuration de Microsoft Entra ID, consultez :

Gérer l’accès à la base de données

Gérez l’accès à la base de données en ajoutant des utilisateurs à la base de données ou en autorisant l’accès utilisateur avec des chaînes de connexion sécurisées. Les chaînes de connexion s’avèrent utiles pour les applications externes. Pour plus d’informations, consultez Gérer les connexions et les comptes d’utilisateurs et Authentification Microsoft Entra.

Pour ajouter des utilisateurs, choisissez le type d’authentification de base de données :

  • Authentification SQL : utilisez un nom d’utilisateur et un mot de passe pour les connexions qui sont uniquement valides dans le contexte d’une base de données spécifique au sein du serveur.

  • Authentification Microsoft Entra, utiliser des identités gérées par Microsoft Entra ID

Authentification SQL

Pour ajouter un utilisateur avec l’authentification SQL :

  1. Connectez-vous à la base de données, par exemple à l’aide de SQL Server Management Studio.

  2. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la base de données, puis choisissez Nouvelle requête.

  3. Dans la fenêtre de requête, entrez la commande suivante :

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Dans la barre d’outils, cliquez sur Exécuter pour créer l’utilisateur.

  5. Par défaut, l’utilisateur peut se connecter à la base de données, mais ne peut ni lire ni écrire des données. Pour accorder ces autorisations, exécutez les commandes suivantes dans une nouvelle fenêtre de requête :

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Notes

Créez des comptes non-administrateurs au niveau de la base de données, sauf s’ils ont besoin d’exécuter des tâches administratives comme la création de nouveaux utilisateurs.

Authentification Microsoft Entra

Étant donné qu’Azure SQL Database ne prend pas en charge les principaux (connexions) de serveur Microsoft Entra, les utilisateurs de base de données créés avec les comptes Microsoft Entra sont créés en tant qu’utilisateurs de base de données autonome. Un utilisateur de base de données autonome n’est pas associé à une connexion dans la base de données master, même s’il existe une connexion portant le même nom. L’identité Microsoft Entra peut être un utilisateur individuel ou un groupe. Pour plus d’informations, consultez Utilisateurs de base de données autonome, rendez votre base de données portable et suivez le tutoriel Microsoft Entra sur la façon de s’authentifier avec Microsoft Entra ID.

Remarque

Les utilisateurs de base de données (à l’exception des administrateurs) ne peuvent pas être créés à l’aide du portail Azure. Les rôles Microsoft Entra ne se propagent pas aux entrepôts de données, bases de données ou SQL Servers. Ils servent uniquement à gérer les ressources Azure et ne s’appliquent pas aux autorisations de base de données.

Par exemple, le rôle Contributeur SQL Server ne permet pas de se connecter à une base de données ou à un entrepôt de données. Cette autorisation doit être accordée au sein de la base de données à l’aide d’instructions T-SQL.

Important

Les caractères spéciaux comme le deux-points : ou l’esperluette & ne sont pas pris en charge dans les noms d’utilisateur figurant dans les instructions T-SQL CREATE LOGIN et CREATE USER.

Pour ajouter un utilisateur avec l’authentification Microsoft Entra :

  1. Connectez-vous à votre serveur dans Azure à l’aide d’un compte Microsoft Entra doté au minimum de l’autorisation ALTER ANY USER.

  2. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la base de données et sélectionnez Nouvelle requête.

  3. Dans la fenêtre Requête, entrez la commande suivante et remplacez <Azure_AD_principal_name> par le nom principal de l’utilisateur Microsoft Entra ou le nom d’affichage du groupe Microsoft Entra :

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Remarque

Les utilisateurs Microsoft Entra sont signalés dans les métadonnées de base de données par le type E (EXTERNAL_USER) et le type X (EXTERNAL_GROUPS) pour les groupes. Pour plus d’informations, consultez sys.database_principals.

Chaînes de connexion sécurisées

Pour garantir une connexion sécurisée et chiffrée entre l’application cliente et SQL Database, vous devez configurer une chaîne de connexion dans les buts suivants :

  • Demander une connexion chiffrée
  • Ne pas faire confiance au certificat du serveur

La connexion est établie à l’aide du protocole TLS (Transport Layer Security), ce qui réduit le risque d’attaque de l’intercepteur. Des chaînes de connexion sont disponibles par base de données. Elles sont préconfigurées pour prendre en charge des pilotes de clients comme ADO.NET, JDBC, ODBC et PHP. Pour plus d’informations sur le protocole TLS et la connectivité, consultez Considérations relatives au protocole TLS.

Pour copier une chaîne de connexion sécurisée :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

  2. Dans la page Vue d’ensemble, sélectionnez Afficher les chaînes de connexion de la base de données.

  3. Sélectionnez un onglet de pilote, puis copiez la chaîne de connexion complète.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

Activer les fonctionnalités de sécurité

Azure SQL Database fournit des fonctionnalités de sécurité accessibles à l’aide du portail Azure. Ces fonctionnalités sont disponibles à la fois pour la base de données et le serveur, à l’exception du masquage des données, qui est uniquement disponible sur la base de données. Pour plus d’informations, consultez Microsoft Defender pour SQL, Audit, Masquage dynamique des données et Transparent Data Encryption.

Microsoft Defender pour SQL

La fonctionnalité Microsoft Defender pour SQL détecte les menaces potentielles quand elles se produisent et fournit des alertes de sécurité en cas d’activités anormales. Les utilisateurs peuvent analyser ces événements suspects à l’aide de la fonctionnalité d’audit, afin d’en déterminer le but (accès, violation ou exploitation de données de la base de données). Les utilisateurs disposent également d’une vue d’ensemble de la sécurité qui inclut une évaluation des vulnérabilités et un outil de découverte et de classification des données.

Notes

Une injection de code SQL est un exemple de menace. Il s’agit d’un processus qui permet à des attaquants d’injecter du code SQL malveillant dans des entrées d’application. Une application peut alors exécuter à son insu le code SQL malveillant et permettre à des attaquants de violer ou modifier des données incluses dans la base de données.

Pour activer Microsoft Defender pour SQL :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

  2. Dans la page Vue d’ensemble, sélectionnez le lien Nom du serveur. La page du serveur s’ouvre.

  3. Dans la page Serveur SQL, recherchez la section Sécurité et sélectionnez Defender pour le cloud.

    1. Sélectionnez ACTIVÉ sous Microsoft Defender pour SQL pour activer la fonctionnalité. Choisissez un compte de stockage pour l’enregistrement des résultats de l’évaluation de la vulnérabilité. Ensuite, sélectionnez Enregistrer.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      Vous pouvez également configurer des e-mails pour recevoir des alertes de sécurité, des détails de stockage et des types de détection des menaces.

  4. Revenez à la page Bases de données SQL de votre base de données et sélectionnez Defender pour le cloud sous la section Sécurité. Vous y trouverez divers indicateurs de sécurité disponibles pour la base de données.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

Si des activités anormales sont détectées, vous recevez un e-mail contenant plus d’informations sur l’événement. Ces dernières incluent la nature de l’activité, la base de données, le serveur, l’heure de l’événement, les causes possibles et les mesures recommandées pour analyser et atténuer la menace potentielle. Si vous recevez un tel e-mail, sélectionnez le lien Journal d’audit Azure SQL pour lancer le portail Azure et afficher les enregistrements d’audit correspondant à l’heure de l’événement.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

Audit

La fonctionnalité d’audit effectue le suivi des événements de la base de données. Elle écrit ces événements dans un journal d’audit, soit dans un stockage Azure, les journaux d'activité Azure Monitor ou un hub d’événements. L’audit vous aide à respecter une conformité réglementaire, à comprendre l’activité de la base de données et à découvrir des discordances et anomalies susceptibles d’indiquer des violations potentielles de la sécurité.

Pour activer l’audit :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

  2. Dans la section Sécurité, sélectionnez Audit.

  3. Sous les paramètres Audit, définissez les valeurs suivantes :

    1. Définissez Audit sur ACTIVÉ.

    2. Sélectionnez l’une des destinations du journal d’audit suivantes :

      • Stockage, un compte de stockage Azure où les journaux des événements sont enregistrés et peuvent être téléchargés sous forme de fichiers .xel.

        Conseil

        Utilisez le même compte de stockage pour toutes les bases de données auditées afin de profiter au mieux des modèles de rapport d’audit.

      • Log Analytics, qui stocke automatiquement les événements à des fins de requête ou d’analyse plus approfondie.

        Notes

        Un espace de travail Log Analytics est nécessaire pour prendre en charge des fonctionnalités avancées comme l’analytique, les règles d’alerte personnalisées et les exportations Excel ou Power BI. Sans espace de travail, seul l’éditeur de requête est disponible.

      • Hub d’événements, qui permet de router des événements pour une utilisation dans d’autres applications.

    3. Sélectionnez Enregistrer.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Vous pouvez maintenant sélectionner Afficher les journaux d’audit pour voir les données des événements de la base de données.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

Important

Pour plus d’informations sur la façon d’affiner la personnalisation des événements d’audit à l’aide de PowerShell ou de l’API REST, consultez Audit SQL Database.

Masquage dynamique des données

La fonctionnalité de masquage des données permet de masquer automatiquement les données sensibles dans votre base de données.

Pour activer le masquage des données :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

  2. Dans la section Sécurité, sélectionnez Dynamic Data Masking.

  3. Sous les paramètres de masquage dynamique des données, sélectionnez Ajouter un masque pour ajouter une règle de masquage. Azure renseigne automatiquement les schémas, tables et colonnes de base de données disponibles que vous pouvez sélectionner.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Sélectionnez Enregistrer. Les informations sélectionnées sont maintenant masquées à des fins de confidentialité.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

Chiffrement transparent des données

La fonctionnalité de chiffrement permet de chiffrer automatiquement vos données au repos. Elle ne nécessite aucune modification des applications qui accèdent à la base de données chiffrée. Pour les nouvelles bases de données, le chiffrement est activé par défaut. Vous pouvez également chiffrer les données à l’aide de SSMS et de la fonctionnalité Always Encrypted.

Pour activer ou vérifier le chiffrement :

  1. Dans le portail Azure, sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL.

  2. Dans la section Sécurité, sélectionnez Transparent Data Encryption.

  3. Si nécessaire, définissez Chiffrement des données sur ACTIVÉ. Sélectionnez Enregistrer.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

Remarque

Pour voir l’état du chiffrement, connectez-vous à la base de données à l’aide de SSMS et interrogez la colonne encryption_state de la vue sys.dm_database_encryption_keys. L’état 3 indique que la base de données est chiffrée.

Remarque

Certains éléments considérés comme du contenu client, tels que les noms de tables, les noms d’objets et les noms d’index, peuvent être transmis dans les fichiers journaux pour le support et la résolution des problèmes par Microsoft.

Conseil

Prêt à commencer à développer une application .NET ? Ce module Learn gratuit explique comment Développer et configurer une application ASP.Net qui interroge une base de données Azure SQL Database, ce qui comprend la création d’une base de données simple.

Étape suivante

Passez au tutoriel suivant pour apprendre à implémenter la géodistribution.