Предоставление пользователям доступа к представлениям Apache Ambari
Кластеры HDInsight с поддержкой корпоративного пакета безопасности (ESP) предоставляют возможности корпоративного уровня, включая проверку подлинности на основе идентификатора Microsoft Entra. Вы можете синхронизировать новых пользователей , добавленных в группы Microsoft Entra, которым предоставлен доступ к кластеру, что позволяет конкретным пользователям выполнять определенные действия. При работе с пользователями, группами и разрешениями в Apache Ambari поддерживается как для кластеров ESP HDInsight, так и для стандартных кластеров HDInsight.
Пользователи Active Directory могут входить на узлы кластера с доменными учетными данными. Кроме того, эти учетные данные можно использовать для аутентификации в других утвержденных конечных точках, например Hue, Ambari Views, ODBC, JDBC, PowerShell и интерфейсах REST API.
Предупреждение
Не изменяйте пароль модуля наблюдения Ambari (hdinsightwatchdog) в кластере HDInsight под управлением Linux. Это не позволит выполнять действия сценария или операции масштабирования в кластере.
Выполните эти инструкции, чтобы подготовить новый кластер ESP, если у вас его еще нет.
Переход на страницу управления Ambari
Чтобы открыть страницу управления Ambari в пользовательском веб-интерфейсе Apache Ambari, перейдите по адресу https://CLUSTERNAME.azurehdinsight.net
. Введите имя пользователя и пароль администратора кластера, определенные при создании кластера. Затем на панели мониторинга Ambari выберите Manage Ambari (Управление Ambari) в меню admin (Администрирование).
Добавить пользователей
Добавление пользователей с помощью портала
На странице управления выберите Пользователи.
Выберите + Create Local User (Создать локального пользователя).
Введите имя пользователя и пароль. Щелкните Save (Сохранить).
Добавление пользователей с помощью PowerShell
Измените переменные в предложенном выражении, заменив CLUSTERNAME
, NEWUSER
и PASSWORD
реальными значениями.
# 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
Добавление пользователей с помощью cURL
Измените переменные в предложенном выражении, заменив CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
и USERPASSWORD
реальными значениями. Скрипт предназначен для выполнения в оболочке bash. Для командной строки 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"
Предоставление разрешений для представлений Apache Hive
В Ambari доступны экземпляры представлений для Apache Hive и Apache TEZ, среди прочих. Чтобы предоставить доступ к одному или нескольким экземплярам представлений Hive, перейдите на страницу управления Ambari.
На странице управления щелкните ссылку Views (Представления) под заголовком меню Views (Представления) в левой части экрана.
На странице "Views" (Представления) разверните строку HIVE. При добавлении службы Hive в кластер создается представление по умолчанию Hive. При необходимости можно также создать дополнительные экземпляры представлений Hive. Выберите представление Hive.
Прокрутите страницу "Views" (Представления) вниз. В разделе Permissions (Разрешения) доступно два параметра для предоставления разрешений на представление пользователям домена:
Предоставление разрешения этим пользователям
Предоставление разрешения этим группам
Чтобы добавить пользователя, нажмите кнопку Add User (Добавить пользователя).
Начните вводить имя пользователя, и вы увидите раскрывающийся список ранее определенных имен.
Выберите имя пользователя из списка или завершите его ввод. Чтобы добавить нового пользователя с этим именем, нажмите кнопку New (Создать).
Чтобы сохранить изменения, щелкните синий флажок.
Чтобы добавить группу, нажмите кнопку Add Group (Добавить группу).
Начните вводить имя группы. Процедура выбора существующего имени группы или добавления новой группы выполняется так же, как и добавление пользователей.
Чтобы сохранить изменения, щелкните синий флажок.
Непосредственное добавление пользователей для представления удобно, когда пользователю нужно назначить разрешения для использования этого представления, но вы не хотите добавлять его в группу, имеющую дополнительные разрешения. Чтобы уменьшить объем административных операций, может оказаться проще назначать разрешения группам.
Предоставление разрешений для представлений Apache TEZ
С помощью экземпляров представлений Apache TEZ пользователи могут отслеживать и отлаживать все задания Tez, отправляемые запросами Apache Hive и сценариями Apache Pig. Доступен один экземпляр представления по умолчанию Tez, создаваемый при подготовке кластера.
Чтобы назначить пользователей и группы для экземпляра представления Tez, разверните строку TEZ на странице "Views" (Представления), как было описано выше.
Чтобы добавить пользователей или группы, повторите шаги 3–5 из предыдущего раздела.
Назначение пользователей ролям
Существуют пять ролей безопасности для пользователей и групп, которые приведены ниже в порядке убывания уровня разрешений на доступ:
- Администратор кластера
- оператор кластера;
- Администратор служб
- оператор службы;
- пользователь кластера.
Для управления ролями перейдите на страницу управления Ambari, а затем щелкните ссылку Roles (Роли) в группе меню Clusters (Кластеры) в левой части экрана.
Чтобы просмотреть список разрешений, предоставляемых каждой роли, щелкните синий вопросительный знак рядом с заголовком таблицы Roles (Роли) на странице "Roles" (Роли).
На этой странице размещены два разных представления, которые можно использовать для управления ролями пользователей и групп: "Block" (Блок) и "List" (Список).
Представление "Block" (Блок)
Представление блоков отображает каждую роль в отдельной строке и предоставляет Assign roles to these users
параметры и *Assign roles to these groups
, как описано ранее.
Представление списка
Представление "List" (Список) предоставляет возможности быстрого редактирования в двух категориях: "Users" (Пользователи) и "Groups" (Группы).
В категории "Users" (Пользователи) представления "List" (Список) отображается список всех пользователей, в котором из раскрывающегося списка можно выбрать роль для каждого пользователя.
Категория "Groups" (Группы) представления "List" (Список) содержит все группы, а также роли, назначенные каждой группе. В нашем примере список групп синхронизируется из групп Microsoft Entra, указанных в свойстве группы пользователей Access параметров домена кластера. См. Создание кластера HDInsight с корпоративным пакетом безопасности.
На приведенном выше изображении группа пользователей hive назначается роль "Пользователь кластера". Это роль только для чтения, которая позволяет пользователям в группе просматривать, но не изменять конфигурации службы и метрики кластера.
Вход в Ambari от имени пользователя с доступом только к представлениям
Мы назначили пользователям домена Microsoft Entra разрешения hiveuser1 для представлений Hive и Tez. При запуске веб-интерфейса Ambari и вводе учетных данных домена этого пользователя (имя пользователя Microsoft Entra в формате электронной почты и пароль) пользователь перенаправляется на страницу "Представления Ambari". Здесь пользователь сможет выбрать любое доступное представление. Пользователь не может посетить какую-либо другую часть сайта, включая страницы панели мониторинга, служб, узлов, предупреждений или администрирования.
Вход в Ambari от имени пользователя кластера
Мы назначили пользователю домена Microsoft Entra hiveuser2 роль пользователя кластера. Эта роль предоставляет доступ к панели мониторинга и всем пунктам меню. Пользователю кластера доступно меньше параметров, чем администратору. Например, пользователь hiveuser2 может просмотреть конфигурации для каждой из служб, но не может их изменить.