Guide pratique pour configurer le contrôle d’accès pour votre espace de travail Azure Synapse
Cet article vous apprend à contrôler l'accès à un espace de travail Microsoft Azure Synapse. Nous allons utiliser une combinaison de rôles Azure, de rôles Azure Synapse, d’autorisations SQL et d’autorisations Git pour y parvenir.
Dans ce guide, vous allez configurer un espace de travail et configurer un système de contrôle d’accès de base. Vous pouvez utiliser ces informations dans de nombreux types de projets Synapse. Vous découvrirez ensuite des options avancées pour un contrôle plus fin si vous en avez besoin.
Le contrôle d’accès Synapse peut être simplifié en alignant des rôles et des personnages de votre organisation avec des groupes de sécurité. Cela vous permet de gérer l’accès aux groupes de sécurité simplement en ajoutant et en supprimant des utilisateurs.
Avant de commencer cette procédure pas à pas, lisez la Vue d’ensemble du contrôle d’accès Azure Synapse pour vous familiariser avec les mécanismes de contrôle d’accès utilisés par Synapse Analytics.
Mécanismes de contrôle d’accès
Notes
L'approche décrite dans ce guide consiste à créer des groupes de sécurité. Lorsque vous attribuez des rôles à ces groupes de sécurité, vous devez uniquement gérer les appartenances au sein de ces groupes pour contrôler l’accès aux espaces de travail.
Pour sécuriser un espace de travail Synapse, vous allez configurer les éléments suivants :
- Des groupes de sécurité, pour regrouper les utilisateurs ayant des exigences d’accès similaires
- Des rôles Azure, pour contrôler qui peut créer et gérer des pools SQL, des pools Apache Spark et des runtimes d’intégration, et accéder au stockage ADLS Gen2
- Des rôles Synapse, pour contrôler l’accès aux artefacts de code publiés, l’utilisation des ressources de calcul Apache Spark et les runtimes d’intégration.
- Des autorisations SQL, pour contrôler l’accès des plans de données et d’administration aux pools SQL
- Des autorisations Git, pour contrôler qui peut accéder aux artefacts de code dans le contrôle de code source si vous configurez la prise en charge de Git pour les espaces de travail.
Procédure de sécurisation d’un espace de travail Synapse
Ce document utilise des noms standard pour simplifier les instructions. Remplacez-les par les noms de votre choix.
Paramètre | Nom standard | Description |
---|---|---|
Espace de travail Synapse | workspace1 |
Nom qu’aura l’espace de travail Azure Synapse. |
Compte ADLSGEN2 | storage1 |
Compte ADLS à utiliser avec votre espace de travail. |
Conteneur | container1 |
Conteneur dans storage1 que l’espace de travail utilisera par défaut. |
Locataire Microsoft Entra ID | contoso |
Nom du locataire Microsoft Entra ID. |
Principal du service | SERVICEPRINCIPAL |
Principal de service dans votre locataire Microsoft Entra ID. |
Étape 1 : Configurer des groupes de sécurité
Conseil
Nous vous encourageons à utiliser des options précises pour contrôler l’accès à votre espace de travail, en accordant aux développeurs l’accès à des ressources individuelles plutôt qu’à un espace de travail entier. En savoir plus sur RBAC Synapse.
Créez les groupes de sécurité suivants pour votre espace de travail :
workspace1_SynapseAdministrators
, pour les utilisateurs qui ont besoin d’un contrôle total sur un espace de travail. Ajoutez-vous à ce groupe de sécurité, tout au moins au débutworkspace1_SynapseContributors
, pour les développeurs qui doivent développer, déboguer et publier du code sur un service.workspace1_SynapseComputeOperators
, pour les utilisateurs qui doivent gérer et superviser des pools Apache Spark et des runtimes d’intégrationworkspace1_SynapseCredentialUsers
, pour les utilisateurs qui doivent déboguer et exécuter des pipelines d’orchestration à l’aide des informations d’identification MSI (Managed Service Identity) de l’espace de travail et annuler des exécutions de pipeline.
Vous assignerez bientôt des rôles Synapse à ces groupes au niveau de l’étendue de l’espace de travail.
Créez également ce groupe de sécurité :
workspace1_SQLAdmins
, groupe pour les utilisateurs qui ont besoin d’une autorité d’administration SQL Active Directory dans les pools SQL de l’espace de travail.
Le groupe workspace1_SQLAdmins
pour configurer les autorisations SQL lorsque vous créez des pools SQL.
Pour une configuration de base, ces cinq groupes suffisent. Plus tard, vous pourrez ajouter des groupes de sécurité pour gérer les utilisateurs qui ont besoin d’un accès plus spécialisé ou pour restreindre l’accès à des ressources spécifiques uniquement.
Remarque
- Découvrez comment créer un groupe de sécurité dans cet article : Créer un groupe de base et ajouter des membres avec Microsoft Entra ID.
- Découvrez comment ajouter un groupe de sécurité à partir d’un autre groupe de sécurité dans cet article : Ajouter ou supprimer un groupe dans un autre groupe à l’aide de Microsoft Entra ID.
- Assurez-vous que le type de groupe est Sécurité lors de la création d’un groupe de sécurité. Les groupes Microsoft 365 ne sont pas pris en charge pour Azure SQL.
Conseil
Les utilisateurs Synapse individuels peuvent utiliser Microsoft Entra ID dans le Portail Azure pour afficher leurs appartenances au groupe. Cela leur permet de déterminer les rôles qui leur ont été accordés.
Étape 2 : Préparer votre compte de stockage ADLS Gen2
Les espaces de travail Synapse utilisent des conteneurs de stockage par défaut pour :
- Stockage des fichiers de données de stockage pour les tables Spark
- Journaux d’exécution pour les travaux Spark.
- Gestion des bibliothèques que vous choisissez d’installer
Identifiez les informations suivantes relatives à votre stockage :
Le compte ADLS Gen2 à utiliser pour votre espace de travail. Il est nommé
storage1
dans le présent document.storage1
est considéré comme le compte de stockage « principal » pour votre espace de travailLe conteneur à l’intérieur de
storage1
que votre espace de travail Synapse utilisera par défaut. Il est nommécontainer1
dans le présent documentSélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.
Attribuez le rôle suivant. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Paramètre Valeur Role Contributeur aux données Blob du stockage Attribuer l’accès à SERVICEPRINCIPAL
Membres workspace1_SynapseAdministrators, workspace1_SynapseContributors, and workspace1_SynapseComputeOperators
Étape 3 : Créer et configurer votre espace de travail Synapse
Dans le portail Azure, créez un espace de travail Synapse :
Sélectionnez votre abonnement
Sélectionnez ou créez un groupe de ressources pour lequel vous disposez d’un rôle Propriétaire Azure.
Nommez l’espace de travail
workspace1
.Choisissez
storage1
comme compte de stockage.Choisissez
container1
comme conteneur utilisé en tant que « système de fichiers ».Ouvrir
workspace1
dans Synapse StudioDans Synapse Studio, accédez à Gérer>Contrôle d'accès. Dans l’étendue de l’espace de travail, attribuez des rôles Synapse aux groupes de sécurité comme suit :
- Attribuez le rôle Administrateur Synapse à
workspace1_SynapseAdministrators
. - Attribuez le rôle Contributeur Synapse à
workspace1_SynapseContributors
. - Attribuez le rôle Opérateur de calcul Synapse à
workspace1_SynapseComputeOperators
.
- Attribuez le rôle Administrateur Synapse à
Étape 4 : Accorder à l’espace de travail un accès MSI au conteneur de stockage par défaut
Pour exécuter des pipelines et effectuer des tâches système, Azure Synapse exige qu’une identité de service managée (MSI) travail ait accès à container1
dans le compte ADLS Gen2 par défaut pour l’espace de travail. Pour plus d’informations, consultez Identité managée de l’espace de travail Azure Synapse.
Ouvrez le portail Azure
Recherchez le compte de stockage,
storage1
, puiscontainer1
.Sélectionnez Contrôle d’accès (IAM) .
Pour ouvrir la page Ajouter une attribution de rôle, sélectionnez Ajouter>Ajouter une attribution de rôle.
Attribuez le rôle suivant. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Paramètre Valeur Role Contributeur aux données Blob du stockage Attribuer l’accès à MANAGEDIDENTITY Membres Nom de l’identité managée Notes
Le nom de l’identité managée correspond également au nom de l’espace de travail.
Étape 5 : Accorder aux administrateurs de Synapse un rôle Contributeur Azure pour l’espace de travail
Pour créer des pools SQL, des pools Apache Spark et des runtimes d’intégration, les utilisateurs doivent disposer au minimum d’un rôle Contributeur Azure pour l’espace de travail. Le rôle Contributeur permet également à ces utilisateurs de gérer les ressources, y compris la suspension et la mise à l’échelle. Pour utiliser le Portail Azure ou Synapse Studio pour créer des pools SQL, des pools Apache Spark et des runtimes d’intégration, vous devez disposer d’un rôle Contributeur au niveau du groupe de ressources.
Ouvrez le portail Azure
Recherchez l’espace de travail,
workspace1
.Sélectionnez Contrôle d’accès (IAM) .
Pour ouvrir la page Ajouter une attribution de rôle, sélectionnez Ajouter>Ajouter une attribution de rôle.
Attribuez le rôle suivant. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Paramètre Valeur Rôle Contributeur (listé sous Rôles d’administrateur privilégiés) Attribuer l’accès à SERVICEPRINCIPAL
Membres workspace1_SynapseAdministrators
Étape 6 : Attribuer à SQL un rôle d’Administrateur Active Directory
Le créateur de l'espace de travail est automatiquement affecté comme Administrateur SQL Active Directory de l'espace de travail. Ce rôle ne peut être accordé qu’à un utilisateur ou un groupe unique. Dans cette étape, vous allez affecter l’administrateur SQL Active Directory pour l’espace de travail au groupe de sécurité workspace1_SQLAdmins
. Cela donne à ce groupe un accès administrateur hautement privilégié à tous les pools SQL et à toutes les bases de données de l’espace de travail.
- Ouvrez le portail Azure
- Accédez à
workspace1
. - Sous Paramètres, sélectionner Microsoft Entra ID
- Sélectionnez Définir l’administrateur, puis choisissez
workspace1_SQLAdmins
.
Notes
L’étape 6 est facultative. Vous pouvez choisir d’accorder au groupe workspace1_SQLAdmins
un rôle moins privilégié. Pour attribuer le rôle db_owner
ou d’autres rôles SQL, vous devez exécuter des scripts sur chaque base de données SQL.
Étape 7 : Accorder l’accès aux pools SQL
L’administrateur Synapse est par défaut donné le rôle db_owner
SQL pour les pools de SQL serverless dans l’espace de travail.
L’accès aux pools SQL pour les autres utilisateurs est contrôlé à l’aide d’autorisations SQL. L’attribution d’autorisations SQL nécessite l’exécution de scripts SQL sur chaque bases de données SQL après la création. Voici quelques exemples qui vous obligent à exécuter ces scripts :
Pour octroyer à d’autres utilisateurs l’accès au pool SQL serverless, « Intégré », et à ses bases de données.
Pour accorder aux utilisateurs l’accès aux bases de données de pool SQL dédiées. Les exemples de scripts SQL sont inclus plus loin dans cet article.
Pour accorder l’accès à une base de données de pool SQL dédié, les scripts peuvent être exécutés par le créateur de l’espace de travail ou par n’importe quel membre du groupe
workspace1_SynapseAdministrators
.Pour accorder l’accès au pool SQL serverless, « Intégré », les scripts peuvent être exécutés par n’importe quel membre du groupe
workspace1_SQLAdmins
ou du groupeworkspace1_SynapseAdministrators
.
Conseil
Vous pouvez accorder l’accès à toutes les bases de données SQL en procédant comme suit pour chaque pool SQL. La section Configurer les autorisations étendues à l’espace de travail est une exception à la règle et vous permet d’attribuer à un utilisateur un rôle sysadmin au niveau de l’espace de travail.
Étape 7a : Pool SQL serverless, Intégré
Vous pouvez utiliser les exemples de script de cette section pour accorder aux utilisateurs l’autorisation d’accéder à une base de données individuelle ou à toutes les bases de données du pool SQL serverless, Built-in
.
Remarque
Dans les exemples de script, remplacez alias par l’alias de l’utilisateur ou du groupe auquel l’accès est accordé. Remplacez domain par le domaine d’entreprise que vous utilisez.
Configurer les autorisations au niveau de la base de données
Vous pouvez accorder aux utilisateurs l’accès à une base de données SQL serverless unique avec les étapes décrites dans cet exemple :
Créez une connexion. Accédez au contexte de base de données
master
.--In the master database CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
Créez un utilisateur dans votre base de données. Remplacez le contexte par votre base de données.
-- In your database CREATE USER alias FROM LOGIN [alias@domain.com];
Ajoutez un utilisateur en tant que membre du rôle spécifié dans votre base de données (dans ce cas, le rôle db_owner).
ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
Configurer les autorisations au niveau de l’espace de travail
Vous pouvez accorder un accès complet à tous les pools SQL serverless dans l’espace de travail. Exécutez le script dans cet exemple dans la base de données master
:
CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];
Étape 7b : configurer les pools SQL dédiés
Vous pouvez accorder l’accès à une base de données de pools SQL unique et dédiée. Procédez comme suit dans l’éditeur de script Azure Synapse SQL :
Créez un utilisateur dans la base de données en exécutant les commandes suivantes. Sélectionnez la base de données cible dans la liste déroulante Se connecter à :
--Create user in the database CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER; -- For Service Principals you would need just the display name and @domain.com is not required
Accordez à l’utilisateur un rôle pour accéder à la base de données :
--Grant role to the user in the database EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
Important
Les rôles de base de données db_datareader et db_datawriter peuvent fournir une autorisation en lecture/écriture lorsque vous ne souhaitez pas accorder l’autorisation db_owner. Toutefois, pour qu’un utilisateur Spark puisse lire et écrire directement à partir de Spark dans ou depuis un pool SQL, l’autorisation db_owner est nécessaire.
Vous pouvez exécuter des requêtes pour confirmer que les pools SQL serverless peuvent interroger des comptes de stockage après avoir créé vos utilisateurs.
Étape 8 : Ajouter des utilisateurs à des groupes de sécurité
La configuration initiale de votre système de contrôle d’accès est maintenant terminée.
Vous pouvez maintenant ajouter et supprimer des utilisateurs aux groupes de sécurité que vous avez configurés, pour gérer leurs accès. Vous pouvez affecter manuellement des utilisateurs à des rôles Azure Synapse, mais cela définit des autorisations incohérentes. Au lieu de cela, limitez-vous à ajouter ou supprimer des utilisateurs dans vos groupes de sécurité.
Étape 9 : Sécurité réseau
En guise d’ultime étape pour sécuriser votre espace de travail, vous devez sécuriser l’accès réseau à l’aide du pare-feu de l’espace de travail.
- Avec et sans réseau virtuel managé, vous pouvez vous connecter à votre espace de travail à partir de réseaux publics. Pour plus d’informations, consultez Paramètres de connectivité.
- L’accès à partir de réseaux publics peut être contrôlé en activant la fonctionnalité d’accès réseau public ou le pare-feu de l’espace de travail.
- Vous pouvez également vous connecter à votre espace de travail à l’aide d’un point de terminaison privé managé et d’une liaison privée. Les espaces de travail Azure Synapse sans réseau virtuel managé Azure Synapse Analytics ne peuvent pas se connecter par le biais de points de terminaison privés managés.
Étape 10 : Completion
Votre espace de travail est maintenant entièrement configuré et sécurisé.
Prise en charge de scénarios plus avancés
Ce guide est axé sur la configuration d’un système de contrôle d’accès de base. Vous pouvez prendre en charge des scénarios plus avancés en créant d’autres groupes de sécurité et en attribuant à ces groupes des rôles plus précis à des étendues plus spécifiques. Prenez les cas suivants :
Activez la prise en charge de Git pour l’espace de travail pour des scénarios de développement plus avancés, notamment CI/CD. En mode Git, les autorisations Git et RBAC Synapse déterminent si un utilisateur peut valider les modifications apportées à sa branche de travail. La publication sur le service a lieu uniquement à partir de la branche de collaboration. Il peut être judicieux de créer un groupe de sécurité pour les développeurs qui doivent développer et déboguer des mises à jour dans une branche de travail mais qui n’ont pas besoin de publier des modifications dans le service actif.
Limitez l’accès des développeurs à des ressources spécifiques. Créez d’autres groupes de sécurité plus précis pour les développeurs qui ont besoin d’accéder uniquement à des ressources spécifiques. Attribuez à ces groupes des rôles Azure Synapse appropriés qui sont délimités à des pools Spark, des runtimes d’intégration ou des informations d’identification spécifiques.
Empêchez les opérateurs d’accéder aux artefacts de code. Créez des groupes de sécurité pour les opérateurs qui doivent superviser l’état opérationnel des ressources de calcul Synapse et afficher les journaux, mais qui n’ont pas besoin d’accéder au code ou de publier des mises à jour du service. Attribuez à ces groupes le rôle d’Opérateur de calcul, étendu à des pools Spark et des runtimes d’intégration spécifiques.
Désactivez l’authentification locale. En autorisant uniquement l’authentification Microsoft Entra, vous pouvez gérer de façon centralisée l’accès aux ressources Azure Synapse, telles que les pools SQL. L’authentification locale pour toutes les ressources au sein de l’espace de travail peut être désactivée pendant ou après la création de l’espace de travail. Pour plus d’informations sur l’authentification Microsoft Entra uniquement, consultez Désactivation de l’authentification locale dans Azure Synapse Analytics.