DLF-Auth est un composant de Data Lake Formation (DLF). Il active la fonctionnalité de gestion des autorisations de données de DLF, qui offre un contrôle d'accès granulaire aux bases de données, tables, colonnes et fonctions. Cela permet une gestion unifiée des autorisations de données sur votre lac de données. Cette rubrique explique comment activer les autorisations DLF-Auth.
Contexte
Data Lake Formation (DLF) est un service entièrement géré qui vous aide à créer rapidement un lac de données dans le cloud. Il fournit une gestion unifiée des autorisations et des métadonnées pour votre lac de données. Pour plus d'informations, consultez Présentation du produit.
Prérequis
Vous disposez d'un cluster E-MapReduce avec le service OpenLDAP sélectionné. Pour plus d'informations, consultez Créer un cluster.
Sur la page Software Configuration, la valeur par défaut de Metadata est DLF Unified Metadata.
Instructions
Limites
La gestion des autorisations Data Lake Formation (DLF) est prise en charge uniquement pour les utilisateurs Resource Access Management (RAM). Vous pouvez ajouter des utilisateurs sur la page de gestion des utilisateurs dans la console EMR.
Pour obtenir la liste des régions qui prennent en charge la fonctionnalité de gestion des autorisations de données de Data Lake Formation (DLF), consultez la rubrique Régions et endpoints pris en charge.
Si vous activez Hive ou Spark pour DLF-Auth, vous ne pouvez pas les activer ni les désactiver pour Ranger, et inversement.
-
Le tableau suivant répertorie les versions d'EMR et les moteurs de calcul pris en charge par DLF-Auth.
Version majeure d'EMR
Hive
Spark
Presto
Impala
EMR 3.x
EMR 3.39.0 et versions antérieures
Non pris en charge
Non pris en charge
Non pris en charge
Non pris en charge
EMR-3.40.0
Pris en charge
Pris en charge
Pris en charge
Non pris en charge
EMR 3.41.0 à EMR 3.43.1
Pris en charge
Pris en charge
Non pris en charge
Non pris en charge
EMR 3.44.0 et versions ultérieures
Pris en charge
Pris en charge
Pris en charge
Pris en charge
EMR 5.x
EMR 5.5.0 et versions antérieures
Non pris en charge
Non pris en charge
Non pris en charge
Non pris en charge
EMR 5.6.0
Pris en charge
Pris en charge
Pris en charge
Non pris en charge
EMR 5.7.0 à EMR 5.9.1
Pris en charge
Pris en charge
Non pris en charge
Non pris en charge
EMR 5.10.0 et versions ultérieures
Pris en charge
Pris en charge
Pris en charge
Pris en charge
Procédure
Suivez les étapes ci-dessous pour activer DLF-Auth et mettre en œuvre une gestion unifiée et entièrement gérée des autorisations pour votre lac de données.
Étape 1 : Activer le contrôle d'accès Hive
-
Accédez à la page DLF-Auth.
Connectez-vous à EMR on ECS.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page EMR on ECS, localisez le cluster que vous souhaitez gérer et cliquez sur Services dans la colonne Actions.
Sur la page Services , cliquez sur Status dans la section du service DLF-Auth.
-
Activez le contrôle d'accès Hive.
Sur la page du service DLF-Auth, activez l'option enableHive.
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
-
Redémarrez HiveServer.
Sur la page Services , cliquez sur le service Hive.
Sur la page du service Hive, localisez HiveServer et cliquez sur dans la colonne Actions.
Dans la boîte de dialogue qui s'affiche, saisissez un Execution Reason puis cliquez sur OK.
Dans la boîte de dialogue Confirm , cliquez sur OK.
Étape 2 : Ajouter un utilisateur RAM
Ajoutez un utilisateur via la fonctionnalité de gestion des utilisateurs.
-
Accédez à la page User Management.
Connectez-vous à EMR on ECS.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page EMR on ECS, localisez le cluster que vous souhaitez gérer et cliquez sur Services dans la colonne Actions.
Cliquez sur l'onglet Users .
Sur la page Users , cliquez sur Add User.
Dans la boîte de dialogue Add User , sélectionnez un utilisateur RAM existant dans la liste déroulante Username pour l'utiliser comme nom d'utilisateur EMR. Saisissez ensuite un mot de passe dans les champs Password et Confirm Password .
Cliquez sur OK.
Étape 3 : Valider les autorisations
Si un utilisateur RAM dispose de l'autorisation AliyunDLFDssFullAccess ou de l'autorisation AdministratorAccess, il a accès à toutes les ressources DLF granulaires. Dans ce cas, vous n'avez pas besoin d'accorder des autorisations sur les données.
-
Validez les autorisations de l'utilisateur actuel avant d'accorder de nouvelles autorisations.
Connectez-vous au cluster via le protocole Secure Shell (SSH). Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Exécutez la commande suivante pour accéder à HiveServer2.
beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>RemarqueLes paramètres <user> et <password> correspondent respectivement au nom d'utilisateur et au mot de passe définis à l'étape Étape 2 : Ajouter un utilisateur RAM.
-
Consultez les informations relatives à une table existante.
Par exemple, exécutez la commande suivante pour afficher les informations de la table test. Remplacez
testdb.testpar vos propres informations.select * from testdb.test;L'utilisateur actuel ne disposant pas des autorisations requises, la requête échoue et une erreur d'autorisation est renvoyée.
0: jdbc:hive2://xxx:10000> select * from testdb.test; 22/07/07 19:03:32 [main]: WARN conf.HiveConf: HiveConf of name hive.metastore.delta.compatible.mode.enabled does not e xist Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [dlf-test] does not have [SELECT] privilege on [database=testdb/table=test/*]. Permission denied: DLF checkPermission failed. message=[Ac tion: CHECK_PERMISSIONS ErrorCode: NoPermission Message: Authorization Failed [4019], You have NO privilege 'Select' o n {acs:dlf:cn-hangzhou:xxx:metastore/catalogs/xxx/databases/testdb/tables/test}. Deny as def ault for Resource. Context ID:dd198392-9b30-4899-9b32-61e1a993bd55. --->Tips: Principal:acs:ram::xxx: user/dlf-test Not pass by dlf permission check. RequestId: C4EC27BE-31ED-5A4B-AD40-2C8EF60359C0] (state=42000,code=400 00)
-
Accordez des autorisations à l'utilisateur RAM.
Connectez-vous à la console Data Lake Formation.
Dans le volet de navigation de gauche, choisissez .
Sur la page Grant Permissions , cliquez sur Add Authorization.
-
Sur la page Add Authorization , configurez les paramètres suivants.
Paramètre
Description
Principal
Principal Type
La valeur par défaut est Utilisateur RAM.
Choose Principal
Dans la liste déroulante Choose Principal , sélectionnez l'utilisateur ajouté à l'étape 2 : Ajouter un utilisateur RAM.
Resources
Authorization Method
La valeur par défaut est Autorisation basée sur les ressources.
Resource Type
Sélectionnez l'option appropriée.
Dans cet exemple, Table de métadonnées est sélectionné.
Permission
Data Permission
Dans cet exemple, Select est utilisé.
Permissions
Cliquez sur OK.
-
Validez les autorisations de l'utilisateur actuel après avoir accordé les nouvelles autorisations.
Suivez les instructions de la sous-étape a de l'étape 1 pour consulter à nouveau les informations de la table. L'autorisation requise ayant été accordée, la requête renvoie désormais les informations de la table.
(Facultatif) Étape 4 : Activer l'authentification LDAP pour Hive
Si vous activez les autorisations DLF-Auth, vous devez également activer l'authentification LDAP pour Hive. Cela garantit que les utilisateurs qui se connectent à Hive sont authentifiés par LDAP avant de pouvoir exécuter des scripts.
-
Accédez à la page Cluster Services.
Connectez-vous à EMR on ECS.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page EMR on ECS, localisez le cluster à gérer et cliquez sur Services dans la colonne Actions.
-
Activez l'authentification LDAP.
Sur la page Services, cliquez sur Status dans la section du service Hive.
-
Activez le commutateur enableLDAP.
-
Pour EMR 5.11.1 ou version ultérieure et EMR 3.45.1 ou version ultérieure
Dans la section Service Overview, activez le commutateur enableLDAP.
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
-
Pour EMR 5.11.0 ou version antérieure et EMR 3.45.0 ou version antérieure
Dans la section Components, localisez HiveServer et choisissez dans la colonne Actions.
Dans la boîte de dialogue qui s'affiche, saisissez un Execution Reason et cliquez sur OK.
Dans la boîte de dialogue Confirm, cliquez sur OK.
-
-
Redémarrez HiveServer.
Dans la section Components, localisez HiveServer et cliquez sur Restart dans la colonne Actions.
Dans la boîte de dialogue qui s'affiche, saisissez un Execution Reason et cliquez sur OK.
Dans la boîte de dialogue Confirm, cliquez sur OK.
> enableLDAP