Compartir vía


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):

Administración del panel de Apache Ambari.

Agregar usuarios

Adición de usuarios a través del portal

  1. En la página de administración, seleccione Usuarios.

    Usuarios de la página de administración de Apache Ambari.

  2. Seleccione + Crear usuario local.

  3. 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.

  1. 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.

    Vínculos de Apache Ambari.

  2. 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:

    Vistas de HDInsight: vista de Apache Hive.

  3. 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 usuariosConceda permisos a estos usuarios.

Conceder permiso a estos gruposConceda permisos a estos grupos.

  1. 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.

      El usuario de Apache Ambari se autocompleta.

    • 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.

      Apache Ambari concede permisos de usuario.

  2. 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.

      Apache Ambari concede permisos.

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.

HDInsight Views: vista de Apache Tez.

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.

Vínculos del menú de roles de Apache Ambari.

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.

Permisos de los vínculos del menú de roles de Apache Ambari.

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 bloques de roles de Apache Ambari.

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.

    Vista de lista de roles de Apache Ambari: usuarios.

  • 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.

    Vista de lista de roles de Apache Ambari: grupos.

    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.

Usuario de Apache Ambari solo con vistas.

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.

Pantalla del panel de Apache Ambari.

Pasos siguientes