Autorizar utilizadores para as Vistas do Apache Ambari
Os clusters HDInsight habilitados para ESP (Enterprise Security Package) fornecem recursos de nível empresarial, incluindo autenticação baseada em ID do Microsoft Entra. Você pode sincronizar novos usuários adicionados aos grupos do Microsoft Entra que receberam acesso ao cluster, permitindo que esses usuários específicos executem determinadas ações. Quando você trabalha com usuários, grupos e permissões no Apache, o Ambari é suportado para clusters ESP HDInsight e clusters HDInsight padrão.
Os utilizadores do Active Directory podem iniciar sessão nos nós de cluster com as credenciais de domínio. Eles também podem usar suas credenciais de domínio para autenticar interações de cluster com outros pontos de extremidade aprovados, como Hue, Ambari Views, ODBC, JDBC, PowerShell e APIs REST.
Aviso
Não altere a senha do cão de guarda Ambari (hdinsightwatchdog) em seu cluster HDInsight baseado em Linux. A alteração da senha interrompe a capacidade de usar ações de script ou executar operações de dimensionamento com o cluster.
Se ainda não tiver feito isso, siga estas instruções para provisionar um novo cluster ESP.
Acesse a página de gerenciamento do Ambari
Para acessar a página de gerenciamento do Ambari na interface do usuário da Web do Apache Ambari, navegue até https://CLUSTERNAME.azurehdinsight.net
. Insira o nome de usuário e a senha do administrador do cluster que você definiu ao criar o cluster. Em seguida, no painel do Ambari, selecione Gerenciar Ambari abaixo do menu admin :
Adicionar utilizadores
Adicionar utilizadores através do portal
Na página de gerenciamento, selecione Usuários.
Selecione + Criar usuário local.
Forneça nome de usuário e senha. Selecione Salvar.
Adicionar usuários por meio do PowerShell
Edite as variáveis abaixo substituindo CLUSTERNAME
, NEWUSER
e PASSWORD
com os valores apropriados.
# 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
Adicionar usuários através do Curl
Edite as variáveis abaixo substituindo CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
e USERPASSWORD
com os valores apropriados. O script é projetado para ser executado com bash. Pequenas modificações seriam necessárias para um prompt de comando do 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"
Conceder permissões para visualizações do Apache Hive
O Ambari vem com instâncias de visualização para Apache Hive e Apache TEZ, entre outros. Para conceder acesso a uma ou mais instâncias de exibição do Hive, vá para a página de gerenciamento do Ambari.
Na página de gerenciamento, selecione o link Modos de exibição no título do menu Modos de exibição à esquerda.
Na página Modos de exibição, expanda a linha HIVE. Há uma exibição padrão do Hive que é criada quando o serviço Hive é adicionado ao cluster. Você também pode criar mais instâncias de exibição do Hive, conforme necessário. Selecione uma visualização do Hive:
Desloque-se para a parte inferior da página Ver. Na seção Permissões, você tem duas opções para conceder aos usuários do domínio suas permissões para a exibição:
Conceder permissão a esses usuários
Conceder permissão a estes grupos
Para adicionar um usuário, selecione o botão Adicionar usuário .
Comece a digitar o nome de usuário e você verá uma lista suspensa de nomes definidos anteriormente.
Selecione ou termine de digitar o nome de usuário. Para adicionar esse nome de usuário como um novo usuário, selecione o botão Novo .
Para salvar as alterações, marque a caixa de seleção azul.
Para adicionar um grupo, selecione o botão Adicionar grupo .
Comece a digitar o nome do grupo. O processo de seleção de um nome de grupo existente ou de adição de um novo grupo é o mesmo que para adicionar usuários.
Para salvar as alterações, marque a caixa de seleção azul.
Adicionar usuários diretamente a um modo de exibição é útil quando você deseja atribuir permissões a um usuário para usar esse modo de exibição, mas não deseja que ele seja membro de um grupo que tenha permissões adicionais. Para reduzir a quantidade de sobrecarga administrativa, pode ser mais simples atribuir permissões a grupos.
Conceder permissões para visualizações do Apache TEZ
As instâncias de visualização do Apache TEZ permitem que os usuários monitorem e depurem todos os trabalhos do Tez, enviados por consultas do Apache Hive e scripts do Apache Pig . Há uma instância de exibição Tez padrão que é criada quando o cluster é provisionado.
Para atribuir usuários e grupos a uma instância de exibição Tez, expanda a linha TEZ na página Visualizações, conforme descrito anteriormente.
Para adicionar usuários ou grupos, repita as etapas 3 a 5 na seção anterior.
Atribuir usuários a funções
Há cinco funções de segurança para usuários e grupos, listadas em ordem decrescente de permissões de acesso:
- Administrador de Cluster
- Operador de cluster
- Administrador de Serviços
- Operador de Serviços
- Usuário do cluster
Para gerenciar funções, vá para a página de gerenciamento do Ambari e selecione o link Funções no grupo de menus Clusters à esquerda.
Para ver a lista de permissões dadas a cada função, clique no ponto de interrogação azul ao lado do cabeçalho da tabela Funções na página Funções.
Nesta página, há dois modos de exibição diferentes que você pode usar para gerenciar funções para usuários e grupos: Bloquear e Lista.
Visualização de bloco
O modo de exibição Bloquear exibe cada função em sua própria linha e fornece as Assign roles to these users
opções e *Assign roles to these groups
conforme descrito anteriormente.
Vista de lista
O modo de exibição Lista fornece recursos de edição rápida em duas categorias: Usuários e Grupos.
A categoria Usuários do modo de exibição Lista exibe uma lista de todos os usuários, permitindo que você selecione uma função para cada usuário na lista suspensa.
A categoria Grupos do modo de exibição Lista exibe todos os grupos e a função atribuída a cada grupo. Em nosso exemplo, a lista de grupos é sincronizada a partir dos grupos do Microsoft Entra especificados na propriedade Access user group das configurações de Domínio do cluster. Consulte Criar um cluster HDInsight com ESP habilitado.
Na imagem acima, o grupo de usuários do hive recebe a função Usuário do Cluster. Essa é uma função somente leitura que permite que os usuários desse grupo visualizem, mas não alterem, as configurações de serviço e as métricas de cluster.
Faça login no Ambari como um usuário somente visualização
Atribuímos nossas permissões de usuário de domínio do Microsoft Entra "hiveuser1" para as visualizações Hive e Tez. Quando iniciamos a interface do usuário da Web do Ambari e inserimos as credenciais de domínio desse usuário (nome de usuário do Microsoft Entra em formato de email e senha), o usuário é redirecionado para a página Visualizações do Ambari. A partir daqui, o usuário pode selecionar qualquer visualização acessível. O usuário não pode visitar qualquer outra parte do site, incluindo o painel, serviços, hosts, alertas ou páginas de administração.
Faça login no Ambari como um usuário de cluster
Atribuímos nosso usuário de domínio Microsoft Entra "hiveuser2" à função Usuário do Cluster. Essa função é capaz de acessar o painel e todos os itens de menu. Um usuário de cluster tem menos opções permitidas do que um administrador. Por exemplo, hiveuser2 pode visualizar configurações para cada um dos serviços, mas não pode editá-las.