Partager via


Bonnes pratiques en matière de sécurité de la réplication

s’applique à :SQL ServerAzure SQL Managed Instance

La réplication permet de déplacer des données d'environnements distribués qui englobent tant des intranets sur un domaine unique que des applications accédant à des données entre des domaines non approuvés et sur Internet. Il est important de bien connaître toutes les méthodes de sécurisation des connexions de réplication afin de choisir celle qui répond le mieux à la situation.

Les informations suivantes concernent la réplication dans tous les environnements :

  • Chiffrez les connexions entre des ordinateurs d'une topologie de réplication à l'aide d'une méthode standard dans l'industrie, telle que les réseaux privés virtuels (VPN, Virtual Private Networks), TLS (Transport Layer Security), précédemment appelé SSL (Secure Sockets Layer), et IPSEC (IP Security). Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server). Pour plus d'informations sur l'utilisation des réseaux VPN et de TLS pour répliquer les données sur Internet, consultez Securing Replication Over the Internet.

    Si vous utilisez TLS 1.2 pour sécuriser les connexions entre les ordinateurs d’une topologie de réplication, spécifiez la valeur 1 ou 2 pour le paramètre -EncryptionLevel de chaque agent de réplication (la valeur 2 est recommandée). La valeur 1 spécifie que le chiffrement est utilisé, mais que l'agent ne vérifie pas si le certificat de serveur TLS/SSL est signé par un émetteur fiable ; la valeur 2 indique que le certificat est vérifié. Azure SQL Managed Instance prend en charge TLS 1.3 pour les connexions entre les instances en spécifiant la valeur 3 et les connexions à SQL Server à partir d’Azure SQL Managed Instance en spécifiant la valeur 4.

    Pour plus d’informations sur l’utilisation des agents, consultez :

  • Exécutez chaque agent de réplication sous un compte Windows différent et utilisez l'authentification Windows pour toutes les connexions des agents de réplication. Pour plus d’informations sur la spécification de comptes, consultez Identité et contrôle d’accès pour la réplication.

  • Accordez à chaque agent les autorisations dont ils ont besoin et pas davantage. Pour plus d'informations, consultez la section « Autorisations requises par les agents » de Replication Agent Security Model.

  • Vérifiez que tous les comptes de l'Agent de fusion et de l'Agent de distribution figurent dans la liste d'accès à la publication. Pour plus d’informations, consultez Sécuriser le serveur de publication.

  • Suivez le principe du moindre privilège en accordant aux comptes du PAL uniquement les autorisations nécessaires pour effectuer des tâches de réplication. N'ajoutez pas de connexions aux rôles de serveur fixes qui ne sont pas nécessaires pour la réplication.

  • Configurez le partage d'instantanés de telle sorte que tous les Agent de fusion et tous les Agents de distribution puissent disposer d'un accès en lecture. Dans le cas d'instantanés pour des publications avec des filtres paramétrés, vérifiez que chaque dossier est configuré pour n'autoriser l'accès qu'aux comptes appropriés de l'Agent de fusion.

  • Configurez le partage d'instantanés de telle sorte que l'Agent d'instantané puisse disposer d'un accès en écriture.

  • Si vous utilisez des abonnements de type 'pull', préférez un partage réseau plutôt qu'un chemin d'accès local pour le dossier d'instantanés.

Si votre topologie de réplication comprend des ordinateurs qui se trouvent dans des domaines différents ou dans des domaines sans relations de confiance, vous pouvez utiliser l’authentification Windows ou l’authentification SQL Server pour les connexions établies par des agents (pour plus d'informations sur les domaines, consultez la cocumentation Windows). L'authentification Windows est une méthode de sécurité préconisée.

  • Pour utiliser l'authentification Windows

    • Ajoutez un compte Windows local (et non un compte de domaine) pour chaque agent sur les nœuds appropriés (utilisez le même nom et le même mot de passe sur chaque nœud). Par exemple, l'Agent de distribution d'un abonnement par envoi de données (push) s'exécute sur le serveur de distribution et établit des connexions avec le serveur de distribution et l'Abonné. Le compte Windows de l'Agent de distribution doit être ajouté au Distributeur et à l'abonné.

    • Vérifiez qu'un agent donné (par exemple, l'Agent de distribution pour un abonnement) s'exécute sous le même compte sur chaque ordinateur.

  • Pour utiliser l’authentification SQL Server

    • Ajoutez un compte SQL Server pour chaque agent sur les nœuds appropriés (utilisez le même nom de compte et le même mot de passe sur chaque nœud). Par exemple, l'Agent de distribution d'un abonnement par envoi de données (push) s'exécute sur le serveur de distribution et établit des connexions avec le serveur de distribution et l'Abonné. Le compte SQL Server de l’agent de distribution doit être ajouté au serveur de distribution et à l’abonné.

    • Vérifiez qu'un agent donné (par exemple, l'Agent de distribution d'un abonnement) établit des connexions sous le même compte sur chaque ordinateur.

    • Dans les situations exigeant l’authentification SQL Server, l’accès aux partages d’instantanés UNC n’est souvent pas disponible (par exemple, l’accès peut être bloqué par un pare-feu). Dans ce cas, vous pouvez transférer l'instantané aux abonnés via FTP (File Transfer Protocol). Pour plus d’informations, consultez Transférer des instantanés via FTP.

Améliorez votre posture de sécurité avec la clé principale de base de données

Remarque

Les instructions de cette section s’appliquent actuellement à SQL Server 2022 CU18 et versions ultérieures, et à SQL Server 2019 CU31 et versions ultérieures. Ces instructions ne s’appliquent pas à Azure SQL Managed Instance.

Lorsque vous utilisez l’authentification SQL Server pour la réplication, les secrets que vous fournissez lorsque vous configurez la réplication sont stockés dans SQL Server, en particulier dans la base de données de distribution et, pour les abonnements par extraction, également dans la base de données de l’abonné.

Pour améliorer la posture de sécurité de la réplication, avant de commencer à configurer la réplication :

  • Créez une clé principale de base de données (DMK) dans la base de données de distribution du serveur qui héberge le serveur de distribution.
  • Pour les abonnements par extraction, créez également un DMK dans la base de données de l’abonné.

Si la réplication a été créée avant le DMK, créez d’abord le DMK, puis mettez à jour les secrets de réplication en mettant à jour les mots de passe pour les travaux de réplication. Vous pouvez mettre à jour le travail avec le même mot de passe ou utiliser un nouveau mot de passe.

Pour mettre à jour les secrets de réplication, utilisez l’une des procédures stockées appropriées suivantes pour mettre à jour les mots de passe pour les travaux de réplication :

La configuration de la réplication transactionnelle sans DMK peut entraîner un avertissement 14130 SQL Server sur :

  • Azure SQL Managed Instance (Instance gérée Azure SQL)
  • SQL Server 2022 CU18 et versions ultérieures
  • SQL Server 2019 CU31 et versions ultérieures