Autorización de usuarios para Apache Ambari Views
Clústeres de HDInsight habilitados para Enterprise Security Package (ESP) proporcionar funcionalidades de nivel empresarial, incluida la autenticación basada en Microsoft Entra ID. Puede sincronizar nuevos usuarios agregar a grupos de Microsoft Entra que se han proporcionado acceso al clúster, lo que permite a esos usuarios específicos realizar determinadas acciones. Cuando se trabaja con usuarios, grupos y permisos en Apache Ambari es compatible tanto con clústeres de HDInsight ESP como con clústeres de HDInsight estándar.
Los usuarios de Active Directory pueden iniciar sesión en los nodos del clúster con sus credenciales de dominio. También pueden usar sus credenciales de dominio para autenticar las interacciones del clúster con otros puntos de conexión aprobados como Hue, Ambari Views, ODBC, JDBC, PowerShell y las API REST.
Advertencia
No cambie la contraseña del guardián Ambari (hdinsightwatchdog) en el clúster de HDInsight basado en Linux. El cambio de la contraseña impide usar acciones de script o realizar operaciones de escalado con el clúster.
Si no lo ha hecho aún, siga estas instrucciones para aprovisionar un nuevo clúster ESP.
Acceso a la página de administración de Ambari
Para llegar a la página de administración de Ambari en la interfaz de usuario web de Ambari, vaya a https://CLUSTERNAME.azurehdinsight.net
. Escriba el nombre de usuario y la contraseña del administrador del clúster que definió cuando creó el clúster. A continuación, en el panel de Ambari, seleccione Manage Ambari (Administrar Ambari) en el menú admin (Administrador):
Agregar usuarios
Adición de usuarios a través del portal
En la página de administración, seleccione Usuarios.
Seleccione + Crear usuario local.
Proporcione un nombre de usuario y una contraseña. Seleccione Guardar.
Adición de usuarios a través de PowerShell
Edite las variables siguientes, reemplazando CLUSTERNAME
, NEWUSER
y PASSWORD
por los valores adecuados.
# Set-ExecutionPolicy Unrestricted
# Begin user input; update values
$clusterName="CLUSTERNAME"
$user="NEWUSER"
$userpass='PASSWORD'
# End user input
$adminCredentials = Get-Credential -UserName "admin" -Message "Enter admin password"
$clusterName = $clusterName.ToLower()
$createUserUrl="https://$($clusterName).azurehdinsight.net/api/v1/users"
$createUserBody=@{
"Users/user_name" = "$user"
"Users/password" = "$userpass"
"Users/active" = "$true"
"Users/admin" = "$false"
} | ConvertTo-Json
# Create user
$statusCode =
Invoke-WebRequest `
-Uri $createUserUrl `
-Credential $adminCredentials `
-Method POST `
-Headers @{"X-Requested-By" = "ambari"} `
-Body $createUserBody | Select-Object -Expand StatusCode
if ($statusCode -eq 201) {
Write-Output "User is created: $user"
}
else
{
Write-Output 'User is not created'
Exit
}
$grantPrivilegeUrl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/privileges"
$grantPrivilegeBody=@{
"PrivilegeInfo" = @{
"permission_name" = "CLUSTER.USER"
"principal_name" = "$user"
"principal_type" = "USER"
}
} | ConvertTo-Json
# Grant privileges
$statusCode =
Invoke-WebRequest `
-Uri $grantPrivilegeUrl `
-Credential $adminCredentials `
-Method POST `
-Headers @{"X-Requested-By" = "ambari"} `
-Body $grantPrivilegeBody | Select-Object -Expand StatusCode
if ($statusCode -eq 201) {
Write-Output 'Privilege is granted'
}
else
{
Write-Output 'Privilege is not granted'
Exit
}
Write-Host "Pausing for 100 seconds"
Start-Sleep -s 100
$userCredentials = "$($user):$($userpass)"
$encodedUserCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($userCredentials))
$zookeeperUrlHeaders = @{ Authorization = "Basic $encodedUserCredentials" }
$getZookeeperurl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"
# Perform query with new user
$zookeeperHosts =
Invoke-WebRequest `
-Uri $getZookeeperurl `
-Method Get `
-Headers $zookeeperUrlHeaders
Write-Output $zookeeperHosts
Adición de usuarios a través de cURL
Edite las variables siguientes, reemplazando CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
y USERPASSWORD
por los valores adecuados. El script está diseñado para ejecutarse con Bash. Se necesitan ligeras modificaciones para un símbolo del sistema de Windows.
export CLUSTER_NAME="CLUSTERNAME"
export ADMIN_PASSWORD='ADMINPASSWORD'
export USER="NEWUSER"
export USER_PASSWORD='USERPASSWORD'
# create user
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d "{\"Users/user_name\":\"$USER\",\"Users/password\":\"$USER_PASSWORD\",\"Users/active\":\"true\",\"Users/admin\":\"false\"}" \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/users
echo "user created: $USER"
# grant permissions
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d '[{"PrivilegeInfo":{"permission_name":"CLUSTER.USER","principal_name":"'$USER'","principal_type":"USER"}}]' \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/privileges
echo "Privilege is granted"
echo "Pausing for 100 seconds"
sleep 10s
# perform query using new user account
curl -k -u $USER:$USER_PASSWORD -H "X-Requested-By: ambari" \
-X GET "https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"
Concesión de permisos para vistas de Apache Hive
Ambari incluye instancias de vista para Apache Hive y Apache TEZ, entre otros. Para conceder acceso a una o varias instancias de vistas de Hive, vaya a la página de administración de Ambari.
En la página de administración, seleccione el vínculo Views (Vistas) que está debajo del título del menú Views (Vistas) de la izquierda.
En la página de vistas, expanda la fila HIVE. Hay una vista de Hive personalizada que se crea cuando se agrega el servicio Hive al clúster. También puede crear más instancias de la vista de Hive según sea necesario. Seleccione una vista de Hive:
Desplácese hacia la parte inferior de la página de la vista. En la sección Permissions (Permisos), tiene dos opciones para conceder permisos a los usuarios del dominio para la vista:
Conceder permiso a estos usuarios
Conceder permiso a estos grupos
Para agregar un usuario, seleccione el botón Add User (Agregar usuario).
Empiece a escribir el nombre de usuario y se mostrará una lista desplegable de nombres definidos anteriormente.
Seleccione el nombre de usuario o termine de escribirlo. Para agregar este nombre de usuario como un usuario nuevo, seleccione el botón New (Nuevo).
Para guardar los cambios, seleccione la casilla azul.
Para agregar un grupo, seleccione el botón Add Group (Agregar grupo).
Comience a escribir el nombre del grupo. El proceso para seleccionar un nombre de grupo existente o para agregar un grupo nuevo es el mismo que el que se aplica para agregar usuarios.
Para guardar los cambios, seleccione la casilla azul.
Agregar los usuarios directamente a una vista es útil cuando desea asignar permisos a un usuario para que use esa vista, pero no desea que sea miembro de un grupo que tiene permisos adicionales. Para reducir la cantidad de trabajo administrativo, puede ser más fácil asignar permisos a grupos.
Concesión de permisos para vistas de Apache TEZ
Las instancias de vista de Apache TEZ permiten a los usuarios supervisar y depurar todos los trabajos de Tez, enviados por consultas de Apache Hive y scripts de Apache Pig. Hay una instancia de vista de Tez predeterminada que se crea cuando se aprovisiona el clúster.
Para asignar usuarios y grupos a una instancia de vista de Tez, expanda la fila TEZ en la página de vistas, como se describió anteriormente.
Para agregar usuarios o grupos, repita los pasos 3 a 5 de la sección anterior.
Asignación de usuarios a roles
Hay cinco roles de seguridad para usuarios y grupos, que se enumeran como permisos de acceso en orden decreciente:
- Administrador de clústeres
- Operador de clústeres
- Administrador de servicios
- Operador de servicio
- Usuario del clúster
Para administrar roles, vaya a la página de administración de Ambari y después seleccione el vínculo Roles en el grupo de menús Clusters (Clústeres) de la izquierda.
Para ver la lista de permisos concedidos a cada rol, haga clic en el signo de interrogación azul junto al encabezado de tabla Roles de la página Roles.
En esta página, hay dos vistas diferentes que puede usar para administrar roles para los usuarios y grupos: Block (Bloque) y List (Lista).
Vista de bloque
La vista Bloque muestra cada rol en su propia fila y ofrece las opciones Assign roles to these users
y *Assign roles to these groups
descritas anteriormente.
Vista de lista
La vista List (Lista) proporciona funcionalidades de edición rápidas en dos categorías: Users (Usuarios) y Groups (Grupos).
La categoría Users (Usuarios) de la vista List (Lista) muestra una lista de todos los usuarios, que le permite seleccionar un rol para cada usuario en la lista desplegable.
La categoría Groups (Grupos) de la vista List (Lista) muestra todos los grupos y los roles asignados a cada grupo. En nuestro ejemplo, la lista de grupos se sincroniza entre los grupos de Microsoft Entra especificados en el grupo de usuarios de Access propiedad de la configuración de dominio del clúster. Consulte Creación de un clúster de HDInsight con ESP habilitado.
En la imagen anterior, a los usuarios del grupo usuarios del subárbol se le asigna el rol Usuario de clúster. Se trata de un rol de solo lectura que permite a los usuarios de ese grupo ver, pero no cambiar, las configuraciones del servicio y las métricas del clúster.
Inicio de sesión en Ambari como un usuario de solo lectura
Hemos asignado los permisos de usuario de dominio "hiveuser1" de Microsoft Entra a las vistas de Hive y Tez. Al iniciar la interfaz de usuario web de Ambari y escribir las credenciales de dominio de este usuario (nombre de usuario de Microsoft Entra en formato de correo electrónico y contraseña), el usuario se redirige a la página Vistas de Ambari. Desde aquí, el usuario puede seleccionar cualquier vista accesible. El usuario no puede visitar cualquier otra parte del sitio, incluidas las páginas de panel, servicios, hosts, alertas o administrador.
Inicio de sesión en Ambari como un usuario del clúster
Hemos asignado nuestro usuario de dominio de Microsoft Entra "hiveuser2" al rol de usuario de clúster. Este rol puede acceder al panel y a todos los elementos de menú. Un usuario del clúster tiene menos opciones permitidas que un administrador. Por ejemplo, hiveuser2 puede ver las configuraciones de cada uno de los servicios, pero no puede modificarlas.
Pasos siguientes
- Configuración de directivas de Apache Hive en HDInsight con ESP
- Administración de clústeres de HDInsight ESP
- Uso de la vista de Apache Hive con Apache Hadoop en HDInsight
- Sincronizar usuarios de Microsoft Entra con el clúster
- Administración de clústeres de HDInsight mediante la API REST de Apache Ambari