Activer le contrôle d'accès aux tables Hive metastore sur un cluster (hérité)
Cet article décrit comment activer le contrôle d'accès aux tables pour le Hive metastore intégré sur un cluster.
Pour l'information sur la façon de définir les privilèges sur les objets sécurisables du Hive metastore une fois que le contrôle d'accès aux tables a été activé sur un cluster, voir Privilèges et objets sécurisables du Hive metastore (hérité).
Le contrôle d'accès aux tables du Hive metastore est un modèle de gouvernance des données hérité. Databricks recommande d'utiliser Unity Catalog à la place pour sa simplicité et son modèle de gouvernance centré sur le compte. Vous pouvez mettre à niveau les tables gérées par le Hive metastore vers le metastore Unity Catalog.
Activer le contrôle d'accès aux tables pour un cluster
Le contrôle d'accès aux tables est disponible en deux versions :
- Contrôle d’accès aux tables SQL uniquement, qui limite les utilisateurs aux commandes SQL.
- Contrôle d'accès aux tables Python et SQL, qui permet aux utilisateurs d'exécuter des commandes SQL, Python et PySpark.
Le contrôle d'accès aux tables n'est pas pris en charge avec Runtime de Machine Learning.
Même si le contrôle d'accès aux tables est activé pour un cluster, les administrateurs de Workspace Databricks ont accès aux données au niveau des fichiers.
Contrôle d'accès de table SQL uniquement
Cette version du contrôle d'accès aux tables restreint les utilisateurs uniquement aux commandes SQL.
Pour activer le contrôle d'accès aux tables SQL uniquement sur un cluster et limiter ce cluster à l'utilisation de commandes SQL uniquement, définissez l'indicateur suivant dans la configuration Spark du cluster :
spark.databricks.acl.sqlOnly true
L'accès au contrôle d'accès aux tables SQL uniquement n'est pas affecté par le paramètre Enable Table Access Control dans la page des paramètres d'administration. Ce paramètre contrôle uniquement l’activation du contrôle d’accès aux tables Python et SQL à l’échelle du Workspace.
Contrôle d’accès aux tables Python et SQL
Cette version du contrôle d'accès aux tables permet aux utilisateurs d'exécuter des commandes Python qui utilisent l'API DataFrame ainsi que SQL. Lorsqu' il est activé sur un cluster, les utilisateurs de ce cluster :
- Il est possible d'accéder à Spark uniquement en utilisant l'API Spark SQL ou l'API DataFrame. Dans les deux cas, l'accès aux tables et aux vues est restreint par les administrateurs, conformément aux privilèges que vous pouvez accorder sur les objets Hive metastore de Databricks.
- Ils doivent exécuter leurs commandes sur des nœuds de clusters en tant qu'utilisateur à faible privilège, n'étant pas autorisé à accéder aux parties sensibles du système de fichiers ou à créer des connexions réseau vers des ports autres que 80 et 443.
- Seules les fonctions Spark intégrées peuvent créer des connexions réseau sur des ports autres que 80 et 443.
- Seuls les administrateurs de Workspace ou les utilisateurs disposant du privilège ANY FILE peuvent lire des données à partir de bases de données externes par le biais du connecteur PySpark JDBC.
- Si vous souhaitez que les processus Python puissent accéder à des ports sortants supplémentaires, vous pouvez définir le paramètre Spark
spark.databricks.pyspark.iptable.outbound.whitelisted.portssur les ports auxquels vous souhaitez autoriser l'accès. Le format pris en charge de la valeur de configuration est[port[:port][,port[:port]]...], par exemple :21,22,9000:9999. Le port doit être compris dans la plage de valeurs valides, c'est-à-dire0-65535.
Les tentatives de contourner ces restrictions échoueront avec une exception. Ces restrictions sont en place afin que les utilisateurs ne puissent jamais accéder à des données non privilégiées via le cluster.
Activez le contrôle d'accès aux tables pour votre workspace.
Avant que les utilisateurs puissent configurer le contrôle d'accès aux tables Python et SQL, un administrateur du Workspace Databricks doit activer le contrôle d'accès aux tables pour le Workspace Databricks et refuser aux utilisateurs l'accès aux clusters qui ne sont pas activés pour le contrôle d'accès aux tables.
- Accédez à la page de paramètres.
- Cliquez sur l'onglet **Security** tab.
- Activez l'option **Contrôle d'accès aux tables**.
Appliquer le contrôle d'accès aux tables
Pour vous assurer que vos utilisateurs n'accèdent qu'aux données que vous souhaitez qu'ils consultent, vous devez limiter vos utilisateurs aux clusters pour lesquels le contrôle d'accès aux tables est activé. En particulier, vous devez vous assurer que :
- Les utilisateurs ne sont pas autorisés à créer des clusters. S'ils créent un cluster sans contrôle d'accès aux tables, ils peuvent accéder à toutes les données de ce cluster.
- Les utilisateurs n'ont pas l'autorisation CAN ATTACH TO pour tout cluster qui n'est pas activé pour le contrôle d'accès aux tables.
Pour plus d'information, consultez Autorisations de compute.
Créer un cluster activé pour le contrôle d'accès aux tables
Le contrôle d'accès aux tables est activé par default dans les clusters dotés du mode d'accès standard.
Pour créer le cluster à l'aide de l'API REST, consultez Créer un nouveau cluster.
Définir les privilèges sur un objet de données
Voir privilèges et objets sécurisables du Hive metastore (hérité).