Liste blanche de bibliothèques et de scripts d'initialisation sur compute avec un mode d'accès standard (anciennement mode d'accès partagé)
Dans Databricks Runtime 13.3 LTS et versions ultérieures, le allowlist dans Unity Catalog contrôle quelles bibliothèques et quels scripts d'initialisation peuvent s'exécuter sur le compute en mode d'accès standard. Cela permet aux utilisateurs de tirer parti de ces artefacts sur le compute configuré avec le mode d'accès standard.
Par default, la liste d'autorisation est vide. Vous ne pouvez pas désactiver cette fonctionnalité. Pour modifier la liste d'autorisation, vous devez disposer du privilège MANAGE ALLOWLIST. Voir GÉRER LA LISTE D'AUTORISATION.
Vous pouvez ajouter un répertoire ou un fichier à la liste d’autorisation même s’il n’a pas encore été créé. Consultez Travailler avec les fichiers dans les volumes Unity Catalog.
Les bibliothèques utilisées comme drivers JDBC ou sources de données Spark personnalisées sur des computes standards compatibles avec Unity Catalog nécessitent ANY FILE autorisations.
Certaines bibliothèques installées stockent les données de tous les utilisateurs dans un répertoire temporaire commun. Ces bibliothèques pourraient compromettre l'isolation des utilisateurs.
Risques de sécurité et opérationnels
Comprendre les implications en matière de sécurité des listes d'autorisations est essentiel pour maintenir l'isolation des clusters et protéger vos données sur le compute en mode d'accès standard. Une utilisation appropriée de la liste des autorisations empêche les utilisateurs d'ajouter des bibliothèques et des scripts d'initialisation arbitraires. Cela réduit la probabilité de problèmes de sécurité, d'instabilité des clusters et d'autres comportements imprévisibles.
Soyez attentif à qui reçoit les privilèges MANAGE ALLOWLIST. Les utilisateurs disposant des privilèges MANAGE ALLOWLIST peuvent ajouter à la liste d'autorisation tout chemin ou coordonnée Maven, contrôlant ainsi ce code peut s'exécuter sur le compute en mode d'accès standard.
En tant qu'administrateur du métastore, examinez périodiquement les éléments de la liste verte et vérifiez qu'ils proviennent de sources fiables. Les artefacts sur liste blanche peuvent accéder aux Ressources du cluster et aux données utilisateur, ils doivent donc être soumis aux mêmes contrôles de sécurité et de gouvernance que les autres composants sensibles.
Databricks recommande les bonnes pratiques suivantes pour la gestion de la liste d'autorisation :
- Accordez le privilège
MANAGE ALLOWLISTuniquement aux administrateurs de métastore et aux administrateurs de plateforme de confiance. Pour les autres utilisateurs, accordezMANAGE ALLOWLISTuniquement sur une base temporaire et au besoin. - Examinez et auditez régulièrement les ajouts à la liste des autorisations.
- Utilisez des chemins et des coordonnées Maven spécifiques plutôt que des modèles généraux.
- Configurez les emplacements de stockage pour les artefacts figurant sur la liste blanche avec des autorisations en lecture seule.
- Mettez en œuvre un processus d'approbation formel pour les ajouts à la liste d'autorisation dans les environnements de production.
- Testez les bibliothèques et les scripts d'initialisation figurant sur la liste d'autorisation dans des environnements hors production avant de les ajouter aux listes d'autorisation de production.
Comment ajouter des éléments à la liste d'autorisation
Vous pouvez ajouter des éléments à allowlist avec l'Explorateur de catalogues ou l'API REST.
Pour ouvrir la boîte de dialogue permettant d'ajouter des éléments à la liste d'autorisation dans l'Explorateur de catalogues, procédez comme suit :
- Dans votre workspace Databricks, cliquez sur
Catalogue .
- Cliquez sur l'icône d'engrenage
.
- Cliquez sur le nom du metastore pour ouvrir l'interface utilisateur des détails et des autorisations du metastore.
- Sélectionnez Fichiers JAR/scripts d'initialisation autorisés .
- Cliquez sur **Ajouter**.
Cette option ne s’affiche que pour les utilisateurs disposant du privilège MANAGE ALLOWLIST sur le metastore. Si vous ne pouvez pas accéder à l'interface utilisateur de la liste d'autorisation, contactez votre administrateur de metastore pour obtenir de l'aide concernant l'ajout de bibliothèques et de scripts d'initialisation à la liste d'autorisation.
Ajouter un script d'initialisation à la liste d'autorisation
Effectuez les étapes suivantes dans la boîte de dialogue de la liste d'autorisation pour ajouter un script d'initialisation à la liste d'autorisation :
- Pour Type , sélectionnez Init Script .
- Pour Type de source , sélectionnez Volume ou le protocole de stockage d'objets.
- Spécifiez le chemin source à ajouter à la liste d'autorisation. Consultez Comment les autorisations sur les chemins sont-elles appliquées dans la liste d'autorisation ?
Ajouter un JAR à la liste d'autorisation
Suivez les étapes suivantes dans la boîte de dialogue de la liste d'autorisation pour ajouter un JAR à la liste d'autorisation :
- Pour Type , sélectionnez JAR .
- Pour Type de source , sélectionnez Volume ou le protocole de stockage d'objets.
- Spécifiez le chemin source à ajouter à la liste d'autorisation. Consultez Comment les autorisations sur les chemins sont-elles appliquées dans la liste d'autorisation ?
Ajouter les coordonnées Maven à la liste d'autorisation
Avant d'ajouter des coordonnées Maven à la liste d'autorisation, vous devez disposer des autorisations CAN ATTACH TO et CAN MANAGE sur le compute où vous souhaitez installer la bibliothèque. Voir les permissions de Compute.
Effectuez les étapes suivantes dans la boîte de dialogue de la liste d'autorisation pour ajouter des coordonnées Maven à la liste d'autorisation :
- Pour Type , sélectionnez Maven .
- Pour Type de source , sélectionnez Coordonnées .
- Saisissez les coordonnées au format suivant :
groudId:artifactId:version.- Vous pouvez inclure toutes les versions d'une bibliothèque en autorisant le format suivant :
groudId:artifactId. - Vous pouvez inclure tous les artefacts dans un groupe en autorisant le format suivant :
groupId.
- Vous pouvez inclure toutes les versions d'une bibliothèque en autorisant le format suivant :
Comment les autorisations sur les chemins sont-elles appliquées dans la liste d'autorisation ?
Vous pouvez utiliser la liste blanche pour accorder l'accès aux fichiers JAR ou aux scripts d'initialisation stockés dans les volumes Unity Catalog et le stockage d'objets. Si vous ajoutez un chemin pour un répertoire plutôt que pour un fichier, les autorisations de liste blanche se propagent aux fichiers et répertoires contenus.
La correspondance de préfixe est utilisée pour tous les artefacts stockés dans les volumes Unity Catalog ou le stockage d'objets. Pour empêcher la correspondance de préfixe à un niveau de répertoire donné, incluez une barre oblique de fin (/). Par exemple, /Volumes/prod-libraries/ n'effectuera pas de correspondance de préfixe pour les fichiers préfixés par prod-libraries. Au lieu de cela, tous les fichiers et répertoires dans /Volumes/prod-libraries/ sont ajoutés à la liste d'autorisation.
Vous pouvez définir les autorisations aux niveaux suivants :
- Le chemin de base pour le volume ou le conteneur de stockage.
- Un répertoire imbriqué quelle que soit la profondeur à partir du chemin d'accès de base.
- Un fichier unique.
L'ajout d'un chemin à la liste d'autorisation signifie seulement que le chemin peut être utilisé pour les scripts d'initialisation ou l'installation de JAR. Databricks vérifie toujours les autorisations d'accéder aux données à l'emplacement spécifié.
Le principal utilisé doit disposer des autorisations READ VOLUME sur le volume spécifié. Consultez READ VOLUME.
En mode d'accès dédié (anciennement mode d'accès utilisateur unique), l'identité du principal attribué (un utilisateur ou un groupe) est utilisée.
En mode d'accès standard :
- Les bibliothèques utilisent l'identité de l'installateur de la bibliothèque.
- Les scripts d'initialisation utilisent l'identité du propriétaire du cluster.
Le mode d'accès partagé sans isolement ne prend pas en charge les volumes, mais utilise la même attribution d'identité que le mode d'accès standard.
Databricks recommande de configurer tous les privilèges de stockage d'objets liés aux scripts d'initialisation et aux bibliothèques avec des droits en lecture seule. Les utilisateurs disposant de droits d'écriture sur ces emplacements peuvent potentiellement modifier le code dans les fichiers de bibliothèque ou les scripts d'initialisation.
Databricks recommande d'utiliser des profils d'instance pour gérer l'accès aux JARs ou aux scripts d'initialisation stockés dans S3. Utilisez la documentation suivante dans le Link de renvoi pour compléter cette configuration :
- Créez un rôle IAM avec des autorisations de lecture et de liste sur les compartiments souhaités. Consultez Tutoriel : Configurer l'accès à S3 avec un profil d'instance.
- Lancez un cluster avec le profil d'instance. Consultez les profils d'instance.
Les autorisations de la liste d'autorisation pour les JAR et les scripts d'initialisation sont gérées séparément. Si vous utilisez le même emplacement pour stocker les deux types d'objets, vous devez ajouter l'emplacement à la liste d'autorisation pour chacun.