DLF-Auth es un componente de Data Lake Formation (DLF). Habilita la función de permisos de datos de DLF, que proporciona control de acceso detallado para bases de datos, tablas, columnas y funciones. Esto permite gestionar de manera unificada los permisos de datos en su data lake. Este tema describe cómo habilitar los permisos de DLF-Auth.
Contexto
Data Lake Formation (DLF) es un servicio totalmente administrado que le ayuda a construir rápidamente un data lake en la nube. Proporciona gestión unificada de permisos y metadatos para su data lake. Para obtener más información, consulte Product Introduction.
Requisitos previos
Debe contar con un clúster de E-MapReduce que tenga seleccionado el servicio OpenLDAP. Para obtener más información, consulte Create a cluster.
En la página Software Configuration, el valor predeterminado de Metadata es DLF Unified Metadata.
Límites
La gestión de permisos de Data Lake Formation (DLF) solo es compatible con usuarios de Resource Access Management (RAM). Agregue usuarios en la página de gestión de usuarios de la consola de EMR.
Para conocer las regiones compatibles con la función de gestión de permisos de datos de Data Lake Formation (DLF), consulte Supported regions and endpoints.
Si habilita Hive o Spark para DLF-Auth, no podrá habilitarlos ni deshabilitarlos para Ranger, y viceversa.
-
A continuación se muestran las versiones de EMR y los motores de cómputo compatibles con DLF-Auth.
Versión principal de EMR
Hive
Spark
Presto
Impala
EMR 3.x
EMR 3.39.0 y anteriores
No compatible
No compatible
No compatible
No compatible
EMR-3.40.0
Compatible
Compatible
Compatible
No compatible
De EMR 3.41.0 a EMR 3.43.1
Compatible
Compatible
No compatible
No compatible
EMR 3.44.0 y posteriores
Compatible
Compatible
Compatible
Compatible
EMR 5.x
EMR 5.5.0 y anteriores
No compatible
No compatible
No compatible
No compatible
EMR 5.6.0
Compatible
Compatible
Compatible
No compatible
De EMR 5.7.0 a EMR 5.9.1
Compatible
Compatible
No compatible
No compatible
EMR 5.10.0 y posteriores
Compatible
Compatible
Compatible
Compatible
Procedimiento
Siga estos pasos para habilitar DLF-Auth e implementar una gestión de permisos unificada y totalmente administrada en su data lake.
Paso 1: Habilitar el control de acceso de Hive
-
Vaya a la página de DLF-Auth.
Inicie sesión en EMR on ECS.
En la barra de navegación superior, seleccione una región y un resource group según sea necesario.
En la página EMR on ECS, busque el clúster que desea gestionar y haga clic en Services en la columna Actions.
En la página Services, haga clic en Status dentro de la sección del servicio DLF-Auth.
-
Habilite el control de acceso de Hive.
En la página del servicio DLF-Auth, active el interruptor enableHive.
En el cuadro de diálogo que aparece, haga clic en OK.
-
Reinicie HiveServer.
En la página Services, haga clic en el servicio Hive.
En la página del servicio Hive, busque HiveServer y haga clic en en la columna Actions.
En el cuadro de diálogo que aparece, introduzca un valor en Execution Reason y haga clic en OK.
En el cuadro de diálogo Confirm, haga clic en OK.
Paso 2: Agregar un usuario de RAM
Agregue un usuario mediante la función de gestión de usuarios.
-
Vaya a la página User Management.
Inicie sesión en EMR on ECS.
En la barra de navegación superior, seleccione una región y un resource group según sea necesario.
En la página EMR on ECS, busque el clúster que desea gestionar y haga clic en Services en la columna Actions.
Haga clic en la pestaña Users.
En la página Users, haga clic en Add User.
En el cuadro de diálogo Add User, seleccione un usuario de RAM existente en la lista desplegable Username para usarlo como nombre de usuario de EMR. Luego, introduzca una contraseña en los campos Password y Confirm Password.
Haga clic en OK.
Paso 3: Validar los permisos
Si un usuario de RAM tiene el permiso AliyunDLFDssFullAccess o se le otorgó AdministratorAccess, dicho usuario cuenta con permisos de acceso a todos los recursos detallados de DLF. En este caso, no es necesario otorgar permisos de datos.
-
Valide los permisos del usuario actual antes de otorgar nuevos permisos.
Inicie sesión en el clúster mediante el protocolo Secure Shell (SSH). Para obtener más información, consulte Log on to a cluster.
-
Ejecute el siguiente comando para acceder a HiveServer2.
beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>Nota<user> y <password> representan el nombre de usuario y la contraseña que estableció en Step 2: Add a RAM user.
-
Consulte la información de una tabla existente.
Por ejemplo, ejecute el siguiente comando para consultar la información de la tabla test. Reemplace
testdb.testcon su información real.select * from testdb.test;Dado que el usuario actual no tiene los permisos obligatorios, la consulta falla y devuelve un error de permisos.
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)
-
Agregue permisos para el usuario de RAM.
Inicie sesión en la consola de Data Lake Formation.
En el panel de navegación izquierdo, elija .
En la página Grant Permissions, haga clic en Add Authorization.
-
En la página Add Authorization, configure los siguientes parámetros.
Parámetro
Descripción
Principal
Principal Type
El valor predeterminado es RAM User.
Choose Principal
En la lista desplegable Choose Principal, seleccione el usuario que agregó en Step 2: Add a RAM user.
Resources
Authorization Method
El valor predeterminado es Resource-based authorization.
Resource Type
Seleccione la opción adecuada.
En este ejemplo, se selecciona Metadata Table.
Permission
Data Permission
En este ejemplo, se utiliza Select.
Permissions
Haga clic en OK.
-
Valide los permisos del usuario actual después de otorgar los nuevos permisos.
Siga las instrucciones de Substep a of Step 1 para volver a consultar la información de la tabla. Como ya se otorgó el permiso obligatorio, la consulta ahora devuelve la información de la tabla.
(Opcional) Paso 4: Habilitar la autenticación LDAP de Hive
Si habilita los permisos de DLF-Auth, también debe habilitar la autenticación LDAP de Hive. De esta manera, se garantiza que los usuarios que se conectan a Hive sean autenticados por LDAP antes de ejecutar scripts.
-
Vaya a la página Cluster Services.
Inicie sesión en EMR on ECS.
En la barra de navegación superior, seleccione una región y un resource group según sea necesario.
En la página EMR on ECS, busque el clúster que desea gestionar y haga clic en Services en la columna Actions.
-
Habilite la autenticación LDAP.
En la página Services, haga clic en Status dentro de la sección del servicio Hive.
-
Active el interruptor enableLDAP.
-
Para EMR 5.11.1 o posterior y EMR 3.45.1 o posterior
En la sección Service Overview, active el interruptor enableLDAP.
En el cuadro de diálogo que aparece, haga clic en OK.
-
Para EMR 5.11.0 o anterior y EMR 3.45.0 o anterior
En la sección Components, busque HiveServer y elija en la columna Actions.
En el cuadro de diálogo que aparece, introduzca un valor en Execution Reason y haga clic en OK.
En el cuadro de diálogo Confirm, haga clic en OK.
-
-
Reinicie HiveServer.
En la sección Components, busque HiveServer y haga clic en Restart en la columna Actions.
En el cuadro de diálogo que aparece, introduzca un valor en Execution Reason y haga clic en OK.
En el cuadro de diálogo Confirm, haga clic en OK.
> enableLDAP