Aller au contenu principal

Configurer le contrôle d'accès Lakewatch

info

Aperçu

Lakewatch est en aperçu privé. Pour demander l'accès, contactez votre équipe de compte Databricks.

La configuration de groupes, d’un service principal d’exécution et d’autorisations Unity Catalog est la méthode recommandée pour configurer le contrôle d’accès de Lakewatch pour une équipe de sécurité. Ce guide met en place un catalogue Lakewatch unique avec quatre groupes qui séparent les tâches d’ingestion, de création de détection et d’analyste avec le moindre privilège. Un utilisateur unique qui a déjà accès aux données sous-jacentes peut utiliser Lakewatch sans cette configuration. Pour choisir entre les modèles mono-utilisateur et basés sur l’équipe, consultez Modèles de déploiement.

Les autorisations utilisent lakewatch comme catalogue et lakewatch.prod comme schéma. Remplacez-les par vos propres noms et remplacez <sp> par le applicationId du service principal d'exécution.

Profils​

La configuration provisionne quatre groupes, un par rôle sur une équipe de sécurité typique. Les groupes sont recommandés mais optionnels. Vous pouvez accorder les mêmes privilèges à n'importe quel principal Unity Catalog.

Groupe

Rôle

lakewatch-admins

Administrer Lakewatch : gérer les ressources, les paramètres et l'accès pour les autres.

lakewatch-data-engineers

Intégrez et maintenez des sources de données et chargez des données dans des tables.

lakewatch-detection-engineers

Créez et affinez des règles de détection et examinez ce qu'elles produisent.

lakewatch-analysts

Traitez la file d’attente des alertes : lisez les alertes, mettez à jour le statut et query les données.

Groupe

Rôle

lakewatch-admins

Administrer Lakewatch : gérer les ressources, les paramètres et l'accès pour les autres.

lakewatch-data-engineers

Intégrez et maintenez des sources de données et chargez des données dans des tables.

lakewatch-detection-engineers

Créez et affinez des règles de détection et examinez ce qu'elles produisent.

lakewatch-analysts

Traitez la file d’attente des alertes : lisez les alertes, mettez à jour le statut et query les données.

Prérequis​

  • Administrateur de compte pour l’étape 1. La création de groupes, le service principal et la délégation run-as est une tâche au niveau du compte.
  • Administrateur du métastore, ou CREATE CATALOG sur le métastore, pour l’étape 2. L’administrateur du compte ne l’accorde pas.
  • Un SQL warehouse et CAN_MANAGE dessus pour l'étape 4. Le warehouse est le compute sur lequel Lakewatch s'exécute.
  • Droits de propriétaire sur tout emplacement externe, connexion ou table source que vous accordez à l'étape 6.

Exécutez les étapes 2, 3, 5 et 6 en tant que SQL dans un notebook ou l’éditeur SQL. Les étapes 1 et 4 sont des actions ponctuelles dans la console de compte et l’interface utilisateur de Workspace.

1. Créez des groupes, le service principal et la délégation d'exécution​

Les sources de données et les règles de détection programmées s’exécutent en tant que service principal ; créez-en donc un et donnez aux groupes qui utilisent Lakewatch le droit d’exécuter des ressources en son nom. Dans la console du compte :

  1. Accédez à Gestion des utilisateurs > Groupes et créez les quatre groupes suivants : lakewatch-admins, lakewatch-data-engineers, lakewatch-detection-engineers et lakewatch-analysts.
  2. Accédez à Gestion des utilisateurs > Service Principal et créez le service principal d’exécution pour Lakewatch. Copiez son applicationId (un UUID) à utiliser comme <sp> dans les étapes suivantes.
  3. Dans le tab Autorisations du Service Principal, attribuez Responsable du Service Principal à lakewatch-admins.
  4. Dans le même tab, attribuez Utilisateur de Service Principal à lakewatch-data-engineers et lakewatch-detection-engineers. Cela permet aux membres de ces groupes de créer des ressources qui s’exécutent en tant que service principal.

2. Créer le catalogue et le schéma​

Créez le catalogue et le schéma qui contiennent vos ressources Lakewatch. Exécutez ce qui suit :

SQL
CREATE CATALOG IF NOT EXISTS lakewatch;
CREATE SCHEMA IF NOT EXISTS lakewatch.prod;

3. Accorder au service principal l'accès aux données​

Le service principal utilisé pour l’exécution doit être en mesure de lire et d’écrire des données dans le schéma. Pour accorder son accès de base, exécutez la commande suivante :

SQL
GRANT USE CATALOG ON CATALOG lakewatch TO `<sp>`;
GRANT USE SCHEMA ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT CREATE TABLE ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT MODIFY ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT SELECT ON SCHEMA lakewatch.prod TO `<sp>`;

4. Accorder au service principal « Peut utiliser » sur un SQL warehouse​

Le service principal exécute SQL sur un warehouse. Autoriser l'utilisation d'un warehouse est une autorisation au niveau du workspace, pas un octroi Unity Catalog :

  1. Allez dans SQL Warehouses et ouvrez le warehouse que vous souhaitez voir utiliser par Lakewatch.
  2. Sur ses Autorisations , accordez Peut utiliser au service principal. Cela nécessite CAN_MANAGE sur le warehouse.

5. Accorder des privilèges à chaque groupe​

Accordez à chaque groupe ses privilèges sur le catalogue. Étant donné que les privilèges sont hérités de la hiérarchie Unity Catalog, une autorisation sur le catalogue s'applique à toutes les ressources Lakewatch situées en dessous. Pour savoir ce que permet chaque privilège, consultez les Rôles et fonctionnalités.

Pour accorder les privilèges d'administrateur, exécutez la commande suivante :

SQL
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT MANAGE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT MODIFY ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_DATASOURCE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_RULE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_SECRET ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT UPDATE_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-admins`;

Pour accorder des privilèges au data engineer, exécutez ce qui suit :

SQL
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE_DATASOURCE ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE_SECRET ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT MODIFY ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE TABLE ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE SCHEMA ON CATALOG lakewatch TO `lakewatch-data-engineers`;

Pour accorder les privilèges à l’ingénieur de détection, exécutez la commande suivante :

SQL
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT CREATE_RULE ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-detection-engineers`;

Pour accorder les privilèges à l’analyste, exécutez la commande suivante :

SQL
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT UPDATE_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-analysts`;

6. Accorder l'accès aux sources (facultatif)​

N’accordez ces privilèges que pour les sources que vous utilisez. Chacun exige que vous possédiez l'élément sécurisable sur lequel vous accordez des droits.

Pour permettre au service principal de lire à partir d’un emplacement externe, exécutez la commande suivante :

SQL
GRANT READ FILES ON EXTERNAL LOCATION <external_location> TO `<sp>`;

Pour permettre au service principal d’utiliser chaque connexion dans le métastore, exécutez la commande suivante :

SQL
GRANT USE CONNECTION ON METASTORE TO `<sp>`;

Pour permettre au Service Principal de lire une table source existante, exécutez ce qui suit :

SQL
GRANT USE CATALOG ON CATALOG <src_catalog> TO `<sp>`;
GRANT USE SCHEMA ON SCHEMA <src_catalog>.<src_schema> TO `<sp>`;
GRANT SELECT ON TABLE <src_catalog>.<src_schema>.<src_table> TO `<sp>`;

7. Vérifier​

Confirmez l’application des autorisations. Pour lister les autorisations sur le catalogue et le schéma, exécutez ce qui suit :

SQL
SHOW GRANTS ON CATALOG lakewatch;
SHOW GRANTS ON SCHEMA lakewatch.prod;

Limitations​

  • Accorder USE CONNECTION ON METASTORE permet au service principal d’utiliser toutes les connexions du métastore, ce qui est plus large que le principe du privilège minimal. Utilisez-le uniquement sur un métastore dédié à Lakewatch.

Connexes​