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. O trabalho com usuários, grupos e permissões no Apache 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 :

Apache Ambari dashboard manage.

Adicionar utilizadores

Adicionar utilizadores através do portal

  1. Na página de gerenciamento, selecione Usuários.

    Apache Ambari management page users.

  2. Selecione + Criar usuário local.

  3. Forneça nome de usuário e senha. Selecione Salvar.

Adicionar usuários por meio do PowerShell

Edite as variáveis abaixo substituindo CLUSTERNAME, NEWUSERe 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, NEWUSERe 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.

  1. Na página de gerenciamento, selecione o link Modos de exibição no título do menu Modos de exibição à esquerda.

    Apache Ambari views view links.

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

    HDInsight Views - Apache Hive view.

  3. 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áriosGrant permission to these users.

Conceder permissão a estes gruposGrant permission to these groups.

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

      Apache Ambari user auto completes.

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

      Apache Ambari grant user permissions.

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

      Apache Ambari grant permissions.

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.

HDInsight Views - Apache Tez view.

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.

Apache Ambari roles menu links.

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.

Apache Ambari roles menu link permissions.

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 opções Atribuir funções a esses usuários e Atribuir funções a esses grupos , conforme descrito anteriormente.

Apache Ambari roles block view.

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.

    Apache Ambari roles list view - users.

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

    Apache Ambari roles list view - groups.

    Na imagem acima, o grupo "hiveusers" recebe a função de 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.

Apache Ambari user with views only.

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.

Apache Ambari dashboard display.

Próximos passos