Limiter l’accès au catalogue à des espaces de travail spécifiques
Cet article présente la liaison de catalogue d’espaces de travail et décrit comment lier un catalogue de Catalogue Unity à un espace de travail Azure Databricks pour empêcher d’autres espaces de travail de votre compte Azure Databricks d’y accéder.
Qu’est-ce que la liaison espace de travail-catalogue ?
Si vous utilisez des espaces de travail pour isoler l’accès aux données utilisateur, vous pouvez limiter l’accès au catalogue à des espaces de travail spécifiques dans votre compte, également appelés liaison espace de travail-catalogue. La valeur par défaut consiste à partager le catalogue avec tous les espaces de travail attachés au metastore actuel.
L’exception à cette valeur par défaut est le catalogue d’espaces de travail créé automatiquement pour tous les nouveaux espaces de travail. Ce catalogue d’espace de travail est lié uniquement à votre espace de travail, sauf si vous choisissez d’autoriser d’autres espaces de travail à y accéder. Pour obtenir des informations importantes sur l’attribution d’autorisations si vous annulez la liaison de ce catalogue, consultez la section Dissocier un catalogue d’un espace de travail.
Vous pouvez soit autoriser l’accès en lecture et en écriture au catalogue à partir d’un espace de travail, soit spécifier un accès en lecture seule. Si vous spécifiez un accès en lecture seule, toutes les opérations d’écriture sont bloquées de l’espace de travail vers le catalogue.
Les cas d’usage classiques pour lier un catalogue à des espaces de travail spécifiques sont les suivants :
- S’assurer que les utilisateurs peuvent accéder uniquement aux données de production à partir d’un environnement d’espace de travail de production.
- S’assurer que les utilisateurs peuvent traiter uniquement les données sensibles à partir d’un espace de travail dédié.
- Permettre aux utilisateurs d’accéder en lecture seule aux données de production à partir d’un espace de travail « développeur » pour effectuer des tâches de développement et des tests.
Remarque
Vous pouvez également lier des emplacements externes et des informations d’identification de stockage à des espaces de travail spécifiques, limitant ainsi la capacité à accéder aux données dans des emplacements externes aux utilisateurs privilégiés de ces espaces de travail. Voir (Facultatif) Affecter un emplacement externe à des espaces de travail spécifiques et (Facultatif) Affecter des informations d’identification de stockage à des espaces de travail spécifiques.
Exemple de liaison espace de travail-catalogue
Prenons l’exemple de l’isolation de la production et du développement. Si vous spécifiez que vos catalogues de données de production ne sont accessibles qu’à partir d’espaces de travail de production, cela remplace les subventions individuelles accordées aux utilisateurs.
Dans ce diagramme, prod_catalog
est lié à deux espaces de travail de production. Supposons qu’un utilisateur a obtenu l’accès à une table dans prod_catalog
appelée my_table
(à l’aide de GRANT SELECT ON my_table TO <user>
). Si l’utilisateur tente d’accéder my_table
dans l’espace de travail Dev, il reçoit un message d’erreur. L’utilisateur peut accéder uniquement à my_table
partir des espaces de travail Prod ETL et Prod Analytics.
Les liaisons de catalogue d’espace de travail sont respectées dans toutes les zones de la plateforme. Par exemple, si vous interrogez le schéma d’informations, vous voyez uniquement les catalogues accessibles dans l’espace de travail où vous émettez la requête. La traçabilité des données et les interfaces utilisateur de recherche affichent également uniquement les catalogues affectés à l’espace de travail (que ce soit à l’aide de liaisons ou par défaut).
Lier un catalogue à un ou plusieurs espaces de travail
Pour affecter un catalogue à des espaces de travail spécifiques, vous pouvez utiliser Catalog Explorer ou Databricks CLI.
Autorisations requises : administrateur de metastore ou propriétaire des objets partage.
Remarque
Les administrateurs de metastore peuvent voir tous les catalogues d’un metastore à l’aide de Catalog Explorer, et les propriétaires de catalogues peuvent voir tous les catalogues qu’ils possèdent dans un metastore, que le catalogue soit ou non affecté à l’espace de travail actuel. Les catalogues qui ne sont pas affectés à l’espace de travail apparaissent grisés, et aucun objet enfant n’est visible ou interrogeable.
Explorateur de catalogues
Connectez-vous à un espace de travail lié au metastore.
Cliquez sur Catalogue.
Dans le volet Catalogue, à gauche, cliquez sur le nom du catalogue.
Le volet principal de Catalog Explorer est défini par défaut sur la liste Catalogs. Vous pouvez également sélectionner le catalogue.
Sous l’onglet Espaces de travail , désactivez la case à cocher Tous les espaces de travail ont accès .
Si votre catalogue est déjà lié à un ou plusieurs espaces de travail, cette case à cocher est déjà désactivée.
Cliquez sur Affecter à des espaces de travail, puis entrez ou recherchez les espaces de travail que vous souhaitez attribuer.
(Facultatif) Spécifiez un accès en lecture seule à l’espace de travail.
Dans le menu Gérer le niveau d’accès, sélectionnez Changer l’accès pour En lecture seule.
Vous pouvez annuler cette sélection à tout moment en modifiant le catalogue et en sélectionnant Modifier l’accès en lecture et en écriture.
Pour révoquer l’accès, accédez à l’onglet Espaces de travail, sélectionnez l’espace de travail, puis cliquez sur Révoquer.
INTERFACE DE LIGNE DE COMMANDE
Il existe deux groupes de commandes Databricks CLI et deux étapes nécessaires pour affecter un catalogue à un espace de travail.
Dans les exemples suivants, remplacez <profile-name>
par le nom de votre profil de configuration d’authentification Azure Databricks. Il doit inclure la valeur d’un jeton d’accès personnel, en plus du nom de l’instance de l’espace de travail et de l’ID d’espace de travail de l’espace de travail où vous avez généré le jeton d’accès personnel. Consultez Authentification à l’aide de jetons d’accès personnels Azure Databricks.
Utilisez la commande
catalogs
du groupe de commandesupdate
pour définir leisolation mode
du catalogue surISOLATED
:databricks catalogs update <my-catalog> \ --isolation-mode ISOLATED \ --profile <profile-name>
La valeur par défaut
isolation-mode
concerneOPEN
tous les espaces de travail attachés au metastore.Utilisez la commande
workspace-bindings
du groupe de commandesupdate-bindings
pour affecter les espaces de travail au catalogue :databricks workspace-bindings update-bindings catalog <my-catalog> \ --json '{ "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...], "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...] }' --profile <profile-name>
Utilisez les propriétés
"add"
et"remove"
pour ajouter ou supprimer des liaisons d’espace de travail. Le<binding-type>
peut avoir la valeur“BINDING_TYPE_READ_WRITE”
(par défaut) ou“BINDING_TYPE_READ_ONLY”
.
Pour répertorier toutes les attributions d’espace de travail pour un catalogue, utilisez la commande workspace-bindings
du groupe de commandes get-bindings
:
databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>
Dissocier un catalogue d’un espace de travail
Les instructions pour révoquer l’accès à un espace de travail à un catalogue à l’aide de Catalog Explorer ou du groupe de commandes CLI workspace-bindings
sont fournies dans Lier un catalogue à un ou plusieurs espaces de travail.
Important
Si votre espace de travail a été activé automatiquement pour le catalogue Unity et que vous disposez automatiquement d’un catalogue d’espaces de travail, les administrateurs de l’espace de travail possèdent ce catalogue et disposent de toutes les autorisations sur ce catalogue dans l’espace de travail uniquement. Si vous dissociez ce catalogue ou le liez à d’autres catalogues, vous devez accorder manuellement les autorisations requises aux membres du groupe d’administrateurs d’espace de travail en tant qu’utilisateurs individuels ou à l’aide de groupes au niveau du compte, car le groupe d’administrateurs d’espace de travail est un groupe local d’espace de travail. Pour plus d’informations sur les groupes de comptes et les groupes locaux à l’espace de travail, consultez la section Différence entre les groupes de comptes et les groupes locaux d’espace de travail.