sql >> Base de Datos >  >> NoSQL >> HBase

Conversión de ACL de HBase en políticas de Ranger

CDP utiliza Apache Ranger para la gestión de seguridad de datos. Si desea utilizar Ranger para tener una administración de seguridad centralizada, las ACL de HBase deben migrarse a políticas. Esto se puede hacer a través de la webUI de Ranger, accesible desde Cloudera Manager. Pero primero, echemos un vistazo rápido al método HBase para el control de acceso.

Autorización HBase

Si se configura la autorización (por ejemplo, con Kerberos y configurando hbase.security.authorization propiedad a verdadero ), los usuarios pueden tener reglas definidas sobre los recursos a los que pueden acceder. Estas reglas se pueden definir para tablas, columnas y celdas individuales dentro de una tabla.

Niveles de acceso HBase

Los niveles de acceso de HBase se otorgan de forma independiente y permiten diferentes tipos de operaciones en un ámbito determinado.

Posibles permisos (cero o más letras del conjunto “RWXCA”):

  • Read (R) – puede leer datos en el alcance dado
  • Escribir (W):puede escribir datos en el ámbito dado
  • Ejecutar (X):puede ejecutar puntos finales del coprocesador en el ámbito dado
  • Crear (C):puede crear tablas o eliminar tablas en el ámbito dado
  • Administrador (A):puede realizar operaciones de clúster, como equilibrar el clúster o asignar regiones en el ámbito dado

Alcances posibles:

  • Superusuario:los superusuarios pueden realizar cualquier operación disponible en HBase, en cualquier recurso. El usuario que ejecuta HBase en su clúster es un superusuario. Cualquier principal asignado a la propiedad de configuración hbase.superuser en el hbase-sitio.xml archivo de configuración en el HMaster también son superusuarios.
  • Global:los permisos otorgados en el ámbito global permiten al administrador operar en todas las tablas del clúster.
  • Espacio de nombres:los permisos otorgados en el ámbito del espacio de nombres se aplican a todas las tablas dentro de un espacio de nombres determinado.
  • Tabla:los permisos otorgados en el ámbito de la tabla se aplican a los datos o metadatos dentro de una tabla determinada.
  • ColumnFamily:los permisos otorgados en el ámbito de ColumnFamily se aplican a las celdas dentro de esa ColumnFamily.
  • Celda:los permisos otorgados en el alcance de la celda se aplican a esa coordenada exacta de la celda.

Exportación de ACL de HBase

1. Inicie sesión a través de Kerberos con las credenciales del servicio HBase.

2. Inicie el shell de hbase y enumere las ACL.

Para enumerar las ACL, utilice los siguientes comandos: 

  • permiso_usuario ‘.*’
  • Alternativamente con privilegio de superusuario:escanear ‘hbase:acl’

Ejemplo de salida de escanear 'hbase:acl':

FILA COLUMNA+CELDA

emp column=l:hbase, timestamp=1612190971868, value=RWXCA
emp2 column=l:hbase, timestamp=1612191218963, value=RWXCA
emp2 column=l:user1, timestamp=1612191426624, value=RWC
emp column=l:test,personal data, timestamp=1612273141925, value=RW
emp column=l:test,personal data,1, timestamp=1612273322678, value=RW
emp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW

Ejemplo de salida de permiso_de_usuario ‘.*‘:

User Namespace,Table,Family,Qualifier:Permission
hbase default,emp,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
user1 default,emp2,,: [Permission: actions=READ,WRITE,CREATE]
hbase default,emp2,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
test default,emp,personal data,: [Permission: actions=READ,WRITE]
test default,emp,personal data,1: [Permission: actions=READ,WRITE]
@group-usr default,emp,personal data,1: [Permission: actions=READ,WRITE]

Nota: A los grupos y usuarios se les otorga acceso de la misma manera, pero los grupos tienen un prefijo con el carácter '@'. Las tablas y los espacios de nombres se especifican de la misma manera, pero los espacios de nombres tienen el prefijo '@'.

Ejemplo de permiso a nivel de celda:

test             default,emp,personal data,1: [Permission: actions=READ,WRITE]

La ‘prueba’ el usuario tiene permisos RW en el ‘predeterminado’ espacio de nombres, en la tabla 'emp' , columna ‘datos personales’ y fila ‘1’..

Crear políticas de Ranger 

  1. En Cloudera Manager, seleccione el servicio Ranger.
  2. Buscar la webUI enlace que lo redirige a la interfaz de usuario de Ranger.
  3. Inicie sesión en la interfaz de usuario de Ranger.

El Administrador de acceso página mostrada:

1. Seleccione un servicio HBase existente.
La Lista de Políticas aparece la página.

2. Haga clic en Agregar nueva política .
Aparece la página Crear política.

3. Complete la página Crear política de la siguiente manera:

3.1 Detalles de la póliza

Nombre de la política Ingrese un nombre de política apropiado. Este nombre no se puede duplicar en todo el sistema. Este campo es obligatorio.
Etiqueta de política Especifique una etiqueta para esta política. Puede buscar informes y filtrar políticas en función de estas etiquetas.
normal/anular Le permite especificar una política de anulación. Cuando se selecciona anular, los permisos de acceso de la política anulan los permisos de acceso de las políticas existentes. Esta característica se puede usar con Agregar período de validez para crear políticas de acceso temporales que anulen las políticas existentes.
Tabla HBase Seleccione la base de datos adecuada. Se pueden seleccionar múltiples bases de datos para una política en particular. Este campo es obligatorio.
Familia de columnas HBase Para la tabla seleccionada, especifique las familias de columnas a las que se aplica la política.
Columna HBase Para las familias de tablas y columnas seleccionadas, especifique las columnas a las que se aplica la política.
Descripción (Opcional) Describa el propósito de la política.
Registro de auditoría Especifique si esta política se audita. (Anule la selección para deshabilitar la auditoría).
Agregar período de validez Especifique una hora de inicio y finalización para la política.

3.2 Condiciones Permitir/Denegar
Apache Ranger admite las siguientes condiciones de acceso:

  • Permitir
  • Excluir de Permitir
  • Denegar
  • Excluir de Denegar

Estas condiciones de acceso le permiten configurar políticas de control de acceso detalladas.

Por ejemplo, puede permitir el acceso a una finanzas tabla a todos los usuarios en finanzas grupo, pero negar el acceso a todos los usuarios en los internos grupo. Digamos que uno de los miembros de los internos grupo, scott , necesita trabajar en una tarea que requiere acceso a las finanzas mesa. En ese caso, puede agregar una condición Excluir de Denegar que permitirá al usuario scott para acceder a las finanzas base de datos.

Seleccionar rol Especifique las funciones a las que se aplica esta política.

Para designar una función como administrador, seleccione la casilla de verificación Administrador delegado. Los administradores pueden editar o eliminar la política y también pueden crear políticas secundarias basadas en la política original.
Seleccionar grupo Especifique los grupos a los que se aplica esta política.

Para designar un grupo como administrador, seleccione la casilla de verificación Administrador delegado. Los administradores pueden editar o eliminar la política y también pueden crear políticas secundarias basadas en la política original.
Seleccionar usuario Especifique los usuarios a los que se aplica esta política.

Para designar un usuario como administrador, seleccione la casilla de verificación Administrador delegado. Los administradores pueden editar o eliminar la política y también pueden crear políticas secundarias basadas en la política original.
Permisos Agregar o editar permisos:Leer, Escribir, Crear, Administrar, Seleccionar/Deseleccionar todo.
Administrador delegado Puede usar Administrador delegado para asignar privilegios de administrador a los usuarios o grupos especificados en la política. Los administradores pueden editar o eliminar la política y también pueden crear políticas secundarias basadas en la política original.

3.3 Puede usar el símbolo Más (+) para agregar condiciones adicionales. Las condiciones se evalúan en el orden indicado en la póliza. La condición en la parte superior de la lista se aplica primero, luego la segunda, luego la tercera y así sucesivamente. Negar las condiciones son siempre más fuertes. El siguiente diagrama de flujo proporciona información sobre el flujo de evaluación de políticas de guardabosques.

3.4 Finalmente haga clic en Agregar.

Conclusión

En esta publicación de blog, analizamos cómo puede migrar sus ACL de HBase a las políticas de Ranger mediante Cloudera Manager. Desafortunadamente, no hay automatización para la migración, ya que los dos métodos de autorización difieren enormemente. Si bien Ranger tiene una función de importación para políticas de carga masiva, no hay forma de exportar ACL de HBase en el formato que entiende Ranger (JSON/CSV con formato específico).