Vue d'ensemble de la sécurité (Integration Services)

S’applique à :SQL Server SSIS Integration Runtime dans Azure Data Factory

La sécurité dans SQL Server Integration Services est constituée de plusieurs couches qui fournissent un environnement de sécurité complet et souple. Ces couches de sécurité incluent l’utilisation de signatures numériques, de propriétés de package, de rôles de base de données SQL Server et d’autorisations de système d’exploitation. La plupart de ces fonctionnalités de sécurité se répartissent dans les catégories suivantes : identité et contrôle d'accès.

Limitation des menaces et des risques de vulnérabilité

Bien que Integration Services inclue divers mécanismes de sécurité, les packages et les fichiers que les packages créent ou utilisent peuvent être exploités à des fins malveillantes.

Le tableau ci-dessous répertorie ces risques ainsi que les mesures proactives que vous pouvez prendre pour réduire ces risques.

Menace ou vulnérabilité Définition Limitation des risques
Source du package La source d'un package correspond à l'individu ou à l'organisation qui a créé le package. L'exécution d'un package à partir d'une source inconnue ou non approuvée peut être risquée. Identifiez la source d'un package en utilisant une signature numérique et exécutez uniquement des packages provenant de sources connues et approuvées. Pour plus d’informations, consultez Identifier la source de packages à l’aide de signatures numériques.
Contenu d'un package Le contenu d'un package inclut les éléments dans le package et leurs propriétés. Les propriétés peuvent contenir des données sensibles telles qu'un mot de passe ou une chaîne de connexion. Les éléments de package, tels qu'une instruction SQL, peuvent révéler la structure de votre base de données. Contrôlez l'accès à un package et au contenu en procédant comme suit :

1) Pour contrôler l’accès au package lui-même, appliquez les fonctionnalités de sécurité SQL Server aux packages enregistrés dans la base de données msdb d’une instance de SQL Server. Aux packages enregistrés dans le système de fichiers, appliquez les fonctionnalités de sécurité du système de fichiers, telles que les listes de contrôle d'accès (ACL).

2) Pour contrôler l’accès au contenu du package, définissez le niveau de protection de celui-ci.

Pour plus d’informations, consultez Vue d’ensemble de la sécurité (Integration Services) et Contrôle d’accès pour les données sensibles présentes dans les packages.
Sortie d'un package Lorsque vous configurez un package de façon à utiliser des configurations, des points de contrôle et une journalisation, le package stocke ces informations en dehors du package. Les informations stockées à l'extérieur du package peuvent contenir des données sensibles. Pour protéger les configurations et les journaux que le package enregistre dans les tables de la base de données SQL Server , utilisez les fonctionnalités de sécurité SQL Server .

Pour contrôler l'accès aux fichiers, utilisez les listes de contrôle d'accès (ACL) disponibles dans le système de fichiers.

Pour plus d’informations, consultez Accéder aux fichiers utilisés par des packages

Fonctionnalités d'identité

En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez atteindre l'objectif suivant :

S'assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources approuvées.

Pour vous assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources approuvées, vous devez tout d'abord identifier leur source. Pour ce faire, signez les packages avec des certificats. Puis, lorsque vous ouvrez ou exécutez le package, vous pouvez vérifier la présence et la validité des signatures numériques à l'aide d' Integration Services . Pour plus d’informations, consultez Identifier la source de packages à l’aide de signatures numériques.

Fonctionnalités de contrôle d'accès

En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez atteindre l'objectif suivant :

S'assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages.

Pour vous assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages, vous devez contrôler l'accès aux informations suivantes.

  • Contrôler l'accès au contenu des packages, en particulier les données sensibles.

  • Contrôler l'accès aux packages et configurations de package stockés dans SQL Server.

  • Contrôler l’accès aux packages et aux fichiers connexes tels que les configurations, journaux et fichiers de point de contrôle stockés dans le système de fichiers.

  • Contrôler l'accès au service Integration Services et aux informations sur les packages que le service affiche dans SQL Server Management Studio.

Contrôle de l'accès au contenu des packages

Pour restreindre l’accès au contenu d’un package, vous pouvez chiffrer le package en définissant sa propriété ProtectionLevel. Vous pouvez définir cette propriété au niveau de protection requis par votre package. Par exemple, dans un environnement de développement en équipe, vous pouvez chiffrer un package à l'aide d'un mot de passe uniquement connu des membres de l'équipe qui travaillent sur celui-ci.

Lorsque vous définissez la propriété ProtectionLevel d’un package, Integration Services détecte automatiquement les propriétés sensibles et les gère en fonction du niveau de protection spécifié. Par exemple, vous définissez la propriété ProtectionLevel d’un package à un niveau qui chiffre les informations sensibles à l’aide d’un mot de passe. Pour ce package, Integration Services chiffre automatiquement les valeurs de toutes les propriétés sensibles et n'affichera pas les données correspondantes sans que le mot de passe correct ne soit fourni.

En général, Integration Services identifie des propriétés comme étant sensibles si elles contiennent des informations telles qu’un mot de passe ou une chaîne de connexion, ou si ces propriétés correspondent aux variables ou aux nœuds XML générés par la tâche. Le fait qu' Integration Services considère une propriété comme sensible repose sur le fait que le développeur du composant Integration Services , tel qu'un gestionnaire de connexions ou une tâche, l'a désignée comme sensible. Les utilisateurs ne peuvent pas ajouter de propriétés à, ni en supprimer de, la liste des propriétés considérées sensibles. Si vous écrivez des tâches personnalisées, des gestionnaires de connexions ou des composants de flux de données, vous pouvez spécifier les propriétés Integration Services à considérer comme sensibles.

Pour plus d'informations, consultez Access Control for Sensitive Data in Packages.

Contrôle de l'accès aux packages

Vous pouvez enregistrer des packages Integration Services dans la base de données d'une instance de SQL Serverou dans le système de fichiers sous la forme de fichiers XML avec l'extension .dtsx. Pour plus d’informations, consultez Enregistrer des packages.

Enregistrement de packages dans la base de données msdb

L'enregistrement des packages dans la base de données msdb permet d'assurer la sécurité au niveau du serveur, de la base de données et de la table. Dans la base de données msdb, les packages Integration Services sont stockés dans la table sysssispackages. Les packages étant enregistrés dans les tables sysssispackages et sysdtspackages de la base de données msdb, ils sont automatiquement sauvegardés lors de la sauvegarde de la base de données msdb.

SQL Server Vous pouvez également protéger les packages stockés dans la base de données msdb en appliquant des rôles au niveau de la base de données Integration Services . Integration Services inclut trois rôles fixes au niveau de la base de données : db_ssisadmin, db_ssisltduser et db_ssisoperator pour le contrôle de l’accès aux packages. Un rôle de lecture et d'écriture peut être associé à chaque package. Vous pouvez également définir des rôles personnalisés au niveau de la base de données pour les utiliser dans les packages Integration Services . Les rôles ne peuvent être implémentés que sur les packages enregistrés dans la base de données msdb d'une instance de SQL Server. Pour plus d’informations, consultez Rôles Integration Services (Service SSIS).

Enregistrement de packages dans le système de fichiers

Si vous stockez des packages dans le système de fichiers plutôt que dans la base de données msdb, veillez à sécuriser les fichiers de package et les dossiers qui les contiennent.

Contrôle de l'accès aux fichiers utilisés par des packages

Les packages configurés pour utiliser des configurations, des points de contrôle et une journalisation génèrent des informations stockées en dehors du package. Ces informations peuvent être sensibles et doivent être protégées. Les fichiers de point de contrôle ne peuvent être enregistrés que dans le système de fichiers, mais les configurations et les journaux peuvent l'être dans le système de fichiers ou dans les tables d'une base de données SQL Server . Les configurations et les journaux enregistrés dans SQL Server bénéficient de la sécurité SQL Server , mais les informations écrites dans le système de fichiers requièrent une sécurité supplémentaire.

Pour plus d’informations, consultez Accéder aux fichiers utilisés par des packages.

Stockage sécurisé des configurations de package

Les configurations de package peuvent être enregistrées dans une table d'une base de données SQL Server ou dans le système de fichiers.

Les configurations peuvent être enregistrées dans n'importe qu'elle base de données SQL Server , et non pas uniquement dans la base de données msdb. Vous pouvez donc spécifier la base de données qui sert de référentiel de configurations de package. Vous pouvez également spécifier le nom de la table qui contiendra les configurations : Integration Services crée alors automatiquement la table avec la structure correcte. L'enregistrement des configurations dans une table permet d'assurer la sécurité au niveau du serveur, de la base de données et de la table. En outre, les configurations enregistrées dans SQL Server sont automatiquement sauvegardées lors de la sauvegarde de la base de données.

Si vous stockez des configurations dans le système de fichiers plutôt que dans SQL Server, veillez à sécuriser les dossiers qui contiennent les fichiers de configuration de package.

Pour plus d'informations sur les configurations, consultez Package Configurations.

Contrôle de l'accès au service Integration Services

SQL Server Management Studio utilise le service SQL Server pour établir la liste des packages stockés. Pour empêcher tout utilisateur non autorisé de consulter des informations sur les packages stockées sur des ordinateurs locaux et distants, et par conséquent d'accéder à des informations privées, restreignez l'accès aux ordinateurs qui exécutent le service SQL Server .

Pour plus d’informations, consultez Accéder au service Integration Services.

Accéder aux fichiers utilisés par des packages

Le niveau de protection de package ne protège pas les fichiers stockés en dehors du package. Il s'agit des fichiers suivants :

  • Fichiers de configuration

  • fichiers de point de contrôle

  • Fichiers journaux

Ces fichiers doivent être protégés séparément, notamment s'ils contiennent des informations sensibles.

Fichiers de configuration

Si une configuration contient des informations sensibles, telles que des informations de connexion et de mot de passe, vous devez penser à enregistrer la configuration dans SQL Server, ou à utiliser une liste de contrôle d’accès pour limiter l’accès à l’emplacement ou au dossier de stockage des fichiers et pour autoriser l’accès uniquement à certains comptes. En règle générale, vous accordez l'accès aux comptes que vous autorisez à exécuter des packages et à ceux qui gèrent et résolvent les problèmes des packages, ce qui peut comprendre l'inspection du contenu des fichiers de configuration, des fichiers de point de contrôle et des fichiers journaux. SQL Server fournit le stockage le plus sécurisé, car il offre une protection aux niveaux du serveur et des bases de données. Pour enregistrer des configurations dans SQL Server, vous utilisez le type de configuration SQL Server . Pour enregistrer dans le système de fichiers, vous utilisez le type de configuration XML.

Pour plus d’informations, consultez Configurations de package, Créer des configurations de packageet Considérations sur la sécurité pour une installation SQL Server.

fichiers de point de contrôle

De même, si le fichier de point de contrôle utilisé par le package contient des informations sensibles, vous devez utiliser une liste de contrôle d'accès pour sécuriser l'emplacement ou le dossier de stockage du fichier. Les fichiers de points de contrôle contiennent des informations d'état relatives à la progression du package, ainsi que les valeurs actuelles de certaines variables. Par exemple, le package peut inclure une variable personnalisée qui contient un numéro de téléphone. Pour plus d'informations, consultez Redémarrer des packages à l'aide de points de contrôle.

Fichiers journaux

Les entrées de journaux qui sont écrites dans le système de fichiers doivent également être sécurisées au moyen d'une liste de contrôle d'accès. Elles peuvent aussi être stockées dans des tables SQL Server et protégées par la sécurité SQL Server . Les entrées de journaux peuvent inclure des informations sensibles. Par exemple, si le package contient une tâche d'exécution SQL qui construit une instruction SQL faisant référence à un numéro de téléphone, l'entrée de journal de l'instruction SQL inclut le numéro de téléphone. L'instruction SQL peut également révéler des informations confidentielles relatives à des noms de tables et de colonnes dans des bases de données. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).

Accéder au service Integration Services

Les niveaux de protection des packages peuvent définir des restrictions quant aux utilisateurs autorisés à modifier et exécuter un package. Une protection supplémentaire est nécessaire pour limiter les utilisateurs autorisés à afficher la liste des packages actuellement en cours d’exécution sur un serveur et ceux qui peuvent arrêter les packages en cours d’exécution dans SQL Server Management Studio.

SQL Server Management Studio utilise le service SQL Server pour établir la liste des packages en cours d’exécution. Les membres du groupe Administrateurs de Windows peuvent afficher et arrêter tous les packages en cours d'exécution. Les utilisateurs n'appartenant pas au groupe Administrateurs de Windows ne peuvent afficher et arrêter que les packages qu'ils ont démarrés.

Il est important de restreindre l'accès aux ordinateurs qui exécutent un service SQL Server , notamment un service SQL Server qui peut énumérer des dossiers distants. Tout utilisateur authentifié peut demander l'énumération des packages. Même si le service ne trouve pas le service, il énumère les dossiers. Ces noms de dossiers peuvent être utilisés par un utilisateur malveillant. Si un administrateur a configuré le service pour qu'il énumère les dossiers sur un ordinateur distant, les utilisateurs peuvent également voir des noms de dossiers qu'ils ne pourraient pas voir en temps normal.

La liste suivante contient des liens vers les rubriques qui indiquent comment effectuer une tâche particulière relative à la sécurité.