Tutorial: Configuración de directivas de Apache HBase en HDInsight con Enterprise Security Package

Aprenda cómo se configuran las directivas de Apache Ranger para los clústeres de Apache HBase de Enterprise Security Package (ESP). Los clústeres de ESP se conectan a un dominio, lo que permite a los usuarios autenticarse con credenciales de dominio. En este tutorial, creará dos directivas de Ranger para restringir el acceso a diferentes familias de columnas en una tabla de HBase.

En este tutorial, aprenderá a:

  • Crear usuarios de dominio.
  • Crear directivas de Ranger.
  • Crear tablas en un clúster de HBase.
  • Probar las directivas de Ranger.

Antes de empezar

Conexión a la interfaz de usuario administrador de Apache Ranger

  1. En un explorador, conéctese a la interfaz de usuario de administrador de Ranger desde la dirección URL https://<ClusterName>.azurehdinsight.net/Ranger/. No olvide cambiar <ClusterName> por el nombre del clúster de HBase.

    Nota:

    Las credenciales de Ranger no son las mismas que las del clúster de Hadoop. Para evitar que los exploradores usen credenciales almacenadas en caché de Hadoop, use una nueva ventana del explorador InPrivate para conectarse a la interfaz de usuario administrador de Ranger.

  2. Inicie sesión con sus credenciales de administrador de Microsoft Entra. Las credenciales de administrador de Microsoft Entra no son las mismas que las credenciales del clúster de HDInsight ni las credenciales de Secure Shell (SSH) del nodo de HDInsight en Linux.

Crear usuarios de dominio

Para aprender a crear los usuarios de dominio sales_user1 y marketing_user1, consulte Creación de un clúster de HDInsight con Enterprise Security Package. En un escenario de producción, los usuarios del dominio proceden de su inquilino de Active Directory.

Creación de tablas de HBase e importación de datos de ejemplo

Puede usar SSH para conectarse a los clústeres de HBase y, después, usar el shell de Apache HBase para crear tablas de HBase e insertar y consultar datos. Para más información, consulte Uso SSH con HDInsight.

Usar el shell de HBase

  1. Desde SSH ejecute el siguiente comando de HBase:

    hbase shell
    
  2. Cree una tabla de HBase Customers con dos familias de columnas: Name y Contact.

    create 'Customers', 'Name', 'Contact'
    list
    
  3. Inserte algunos datos:

    put 'Customers','1001','Name:First','Alice'
    put 'Customers','1001','Name:Last','Johnson'
    put 'Customers','1001','Contact:Phone','333-333-3333'
    put 'Customers','1001','Contact:Address','313 133rd Place'
    put 'Customers','1001','Contact:City','Redmond'
    put 'Customers','1001','Contact:State','WA'
    put 'Customers','1001','Contact:ZipCode','98052'
    put 'Customers','1002','Name:First','Robert'
    put 'Customers','1002','Name:Last','Stevens'
    put 'Customers','1002','Contact:Phone','777-777-7777'
    put 'Customers','1002','Contact:Address','717 177th Ave'
    put 'Customers','1002','Contact:City','Bellevue'
    put 'Customers','1002','Contact:State','WA'
    put 'Customers','1002','Contact:ZipCode','98008'
    
  4. Vea el contenido de la tabla:

    scan 'Customers'
    

    Screenshot that shows the HDInsight Hadoop HBase shell output.

Creación de directivas de Ranger

Cree una directiva de Ranger para sales_user1 y marketing_user1.

  1. Abra la Interfaz de usuario administrador de Ranger. En HBase, seleccione <ClusterName>_hbase.

    Screenshot that shows the HDInsight Apache Ranger Admin UI.

  2. La pantalla Lista de directivas muestra todas las directivas de Ranger creadas para este clúster. Puede aparecer una directiva configurada previamente. Seleccione Agregar nueva directiva.

    Screenshot that shows the Apache Ranger HBase policies list.

  3. En la página Create Policy (Crear directiva), escriba los siguientes valores:

    Configuración Valor sugerido
    Nombre de la directiva sales_customers_name_contact
    HBase Table Clientes
    HBase Column-family Name, Contact
    HBase Column *
    Select Group
    Seleccionar usuario sales_user1
    Permisos Lectura

    Los siguientes caracteres comodín se pueden incluir en el nombre del tema:

    • * indica ninguna o más repeticiones de caracteres.
    • ? indica cualquier carácter individual.

    Screenshot that shows the Apache Ranger policy Create sales.

    Nota:

    Si un usuario del dominio no se rellena automáticamente en Seleccionar usuario, espere unos instantes a que Ranger se sincronice con Microsoft Entra ID.

  4. Seleccione Agregar para guardar la directiva.

  5. Seleccione Agregar nueva directiva y escriba los siguientes valores:

    Configuración Valor sugerido
    Nombre de la directiva marketing_customers_contact
    HBase Table Clientes
    HBase Column-family Contacto
    HBase Column *
    Select Group
    Seleccionar usuario marketing_user1
    Permisos Leer

    Screenshot that shows the Apache Ranger policy Create marketing.

  6. Seleccione Agregar para guardar la directiva.

Prueba de las directivas de Ranger

Según las directivas de Ranger configuradas, sales_user1 puede ver todos los datos de las columnas de ambas familias de columnas: Name y Contact. marketing_user1 solo puede ver los datos de la familia de columnas Contact.

Acceso a los datos como sales_user1

  1. Abra una nueva conexión SSH al clúster. Use el siguiente comandos para iniciar sesión en el clúster:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Use el comando kinit para cambiar al contexto del usuario deseado:

    kinit sales_user1
    
  3. Abra el shell de HBase y examine la tabla Customers:

    hbase shell
    scan `Customers`
    
  4. Observe que el usuario de ventas puede ver todas las columnas de la tabla Customers. El usuario puede ver las dos columnas de la familia de columnas Name y las cinco columnas de la familia de columnas Contact.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1001                              column=Name:First, timestamp=1548894871561, value=Alice
     1001                              column=Name:Last, timestamp=1548894871707, value=Johnson
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
     1002                              column=Name:First, timestamp=1548894897419, value=Robert
     1002                              column=Name:Last, timestamp=1548894897487, value=Stevens
    2 row(s) in 0.1000 seconds
    

Acceso a los datos como marketing_user1

  1. Abra una nueva conexión SSH al clúster. Use el siguiente comando para iniciar sesión como marketing_user1:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Use el comando kinit para cambiar al contexto de nuestro usuario deseado:

    kinit marketing_user1
    
  3. Abra el shell de HBase y examine la tabla Customers:

    hbase shell
    scan `Customers`
    
  4. Tenga en cuenta que el usuario marketing solo puede ver las cinco columnas de la familia de columnas Contact.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
    2 row(s) in 0.0730 seconds
    
  5. Vea los eventos de acceso de auditoría desde la interfaz de usuario de Ranger.

    Screenshot that shows the HDInsight Ranger UI Policy Audit.

Limpieza de recursos

Si no va a seguir utilizando esta aplicación, elimine el clúster de HBase que creó:

  1. Inicie sesión en Azure Portal.
  2. En el cuadro Buscar de la parte superior, escriba HDInsight.
  3. En Servicios, seleccione Clústeres de HDInsight.
  4. En la lista de clústeres de HDInsight que aparece, seleccione el signo ... situado junto al clúster que ha creado para este tutorial.
  5. Seleccione Eliminar>.

Pasos siguientes