Partilhar via


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 :

Gerenciamento do painel do Apache Ambari.

Adicionar utilizadores

Adicionar utilizadores através do portal

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

    Usuários da página de gerenciamento Apache Ambari.

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

    Visualizações do HDInsight - Visualização do Apache Hive.

  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áriosConceda permissão a esses usuários.

Conceder permissão a estes gruposConceda permissão a esses grupos.

  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.

      O usuário do Apache Ambari é concluído automaticamente.

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

      O Apache Ambari concede permissões de usuário.

  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 conceder permissões.

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.

Visualizações do HDInsight - Visualização Apache Tez.

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.

Links do menu de funções do Apache Ambari.

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.

Permissões de link do menu de funções do Apache Ambari.

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.

Visualização de bloco de funções do Apache Ambari.

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.

    Visualização da lista de funções do Apache Ambari - usuários.

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

    Visualização da lista de funções do Apache Ambari - grupos.

    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.

Usuário Apache Ambari apenas com visualizações.

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.

Exibição do painel do Apache Ambari.

Próximos passos