Tutorial: Configurar políticas do Apache HBase no HDInsight com o Enterprise Security Package

Saiba como configurar políticas do Apache Ranger para clusters Apache HBase do ESP (Enterprise Security Package). Os clusters ESP estão conectados a um domínio, permitindo que os usuários se autentiquem com credenciais de domínio. Neste tutorial, você cria duas políticas do Ranger para restringir o acesso a famílias de colunas diferentes em uma tabela do HBase.

Neste tutorial, você aprenderá a:

  • Crie usuários de domínio.
  • Crie políticas do Ranger.
  • Crie tabelas em um cluster do HBase.
  • Teste as políticas do Ranger.

Antes de começar

Conectar-se à interface do usuário de Administração do Apache Ranger

  1. Em um navegador, conecte-se à interface do usuário do administrador do Ranger usando o URL https://<ClusterName>.azurehdinsight.net/Ranger/. Lembre-se de alterar <ClusterName> para o nome do seu cluster HBase.

    Observação

    As credenciais do Ranger não são as mesmas que as credenciais de cluster do Hadoop. Para impedir que os navegadores usem credenciais do Hadoop em cache, use uma nova janela do navegador InPrivate para se conectar à interface de administração do Ranger Admin.

  2. Entre usando suas credenciais de administrador do Microsoft Entra. As credenciais de administrador do Microsoft Entra não são iguais às credenciais do cluster do HDInsight ou às credenciais do SSH (Secure Shell) do nó do HDInsight do Linux.

Crie usuários de domínio

Para saber como criar os usuários de domínio sales_user1 e marketing_user1, confira Criar um cluster do HDInsight com o Enterprise Security Package. Em um cenário de produção, os usuários do domínio vêm do seu locatário do Active Directory.

Criar tabelas do HBase e importar dados de exemplo

Você pode usar o SSH para se conectar a clusters do HBase e, em seguida, usar o Shell do Apache HBase para criar tabelas do HBase, inserir dados e consultar dados. Para obter mais informações, confira Usar SSH com HDInsight.

Usar o shell HBase

  1. No SSH, execute este comando HBase:

    hbase shell
    
  2. Crie uma tabela do HBase Customers com famílias de duas colunas: Name e Contact.

    create 'Customers', 'Name', 'Contact'
    list
    
  3. Insira alguns dados:

    put 'Customers','1001','Name:First','Alice'
    put 'Customers','1001','Name:Last','Johnson'
    put 'Customers','1001','Contact:Phone','333-333-3333'
    put 'Customers','1001','Contact:Address','313 133rd Place'
    put 'Customers','1001','Contact:City','Redmond'
    put 'Customers','1001','Contact:State','WA'
    put 'Customers','1001','Contact:ZipCode','98052'
    put 'Customers','1002','Name:First','Robert'
    put 'Customers','1002','Name:Last','Stevens'
    put 'Customers','1002','Contact:Phone','777-777-7777'
    put 'Customers','1002','Contact:Address','717 177th Ave'
    put 'Customers','1002','Contact:City','Bellevue'
    put 'Customers','1002','Contact:State','WA'
    put 'Customers','1002','Contact:ZipCode','98008'
    
  4. Exiba o conteúdo da tabela:

    scan 'Customers'
    

    Screenshot that shows the HDInsight Hadoop HBase shell output.

Criar políticas do Ranger

Crie uma política do Ranger para sales_user1 e marketing_user1.

  1. Abra o interface do usuário administrador do Ranger. Em HBase, selecione <ClusterName>_hbase.

    Screenshot that shows the HDInsight Apache Ranger Admin UI.

  2. A tela Lista de Políticas mostra todas as políticas do Ranger criadas para este cluster. Uma política pré-configurada pode ser listada. Selecione Adicionar nova política.

    Screenshot that shows the Apache Ranger HBase policies list.

  3. Na página Criar Política, insira os seguintes valores:

    Configuração Valor sugerido
    Nome da política sales_customers_name_contact
    Tabela do HBase Clientes
    Família de colunas do HBase Nome, Contato
    Coluna do HBase *
    Selecionar grupo
    Selecionar usuário sales_user1
    Permissões Ler

    Os curingas a seguir podem ser incluídos no nome do tópico:

    • * indica zero ou mais ocorrências de caracteres.
    • ? indica um caractere único.

    Screenshot that shows the Apache Ranger policy Create sales.

    Observação

    Aguarde alguns instantes para que o Ranger sincronize com o Microsoft Entra ID se um usuário de domínio não for preenchido automaticamente para Selecionar usuário.

  4. Selecione Adicionar para salvar a política.

  5. Selecione Adicionar nova política e, em seguida, insira os seguintes valores:

    Configuração Valor sugerido
    Nome da política marketing_customers_contact
    Tabela do HBase Clientes
    Família de colunas do HBase Contato
    Coluna do HBase *
    Selecionar grupo
    Selecionar usuário marketing_user1
    Permissões Ler

    Screenshot that shows the Apache Ranger policy Create marketing.

  6. Selecione Adicionar para salvar a política.

Testar as políticas do Ranger

Com base nas políticas do Ranger configuradas, sales_user1 pode exibir todos os dados das colunas nas famílias de colunas Name e Contact. O marketing_user1 pode exibir dados apenas na família de colunas Contact.

Acessar dados como sales_user1

  1. Abra uma nova conexão de SSH ao cluster. Use o seguinte comando para entrar no cluster:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Use o comando kinit para alterar para o contexto do usuário desejado:

    kinit sales_user1
    
  3. Abra o shell do HBase e verifique a tabela Customers:

    hbase shell
    scan `Customers`
    
  4. Observe que o usuário de vendas pode exibir todas as colunas da tabela Customers. O usuário pode ver as duas colunas na família de colunas Name e as cinco colunas na família de colunas Contact.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1001                              column=Name:First, timestamp=1548894871561, value=Alice
     1001                              column=Name:Last, timestamp=1548894871707, value=Johnson
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
     1002                              column=Name:First, timestamp=1548894897419, value=Robert
     1002                              column=Name:Last, timestamp=1548894897487, value=Stevens
    2 row(s) in 0.1000 seconds
    

Acessar dados como marketing_user1

  1. Abra uma nova conexão de SSH ao cluster. Use o seguinte comando para entrar como marketing_user1:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Use o comando kinit para alterar para o contexto do nosso usuário desejado:

    kinit marketing_user1
    
  3. Abra o shell do HBase e verifique a tabela Customers:

    hbase shell
    scan `Customers`
    
  4. Observe que o usuário de marketing pode exibir somente as cinco colunas da família de colunas Contact.

    ROW                                COLUMN+CELL
     1001                              column=Contact:Address, timestamp=1548894873820, value=313 133rd Place
     1001                              column=Contact:City, timestamp=1548895061523, value=Redmond
     1001                              column=Contact:Phone, timestamp=1548894871759, value=333-333-3333
     1001                              column=Contact:State, timestamp=1548895061613, value=WA
     1001                              column=Contact:ZipCode, timestamp=1548895063111, value=98052
     1002                              column=Contact:Address, timestamp=1548894899174, value=717 177th Ave
     1002                              column=Contact:City, timestamp=1548895103129, value=Bellevue
     1002                              column=Contact:Phone, timestamp=1548894897524, value=777-777-7777
     1002                              column=Contact:State, timestamp=1548895103231, value=WA
     1002                              column=Contact:ZipCode, timestamp=1548895104804, value=98008
    2 row(s) in 0.0730 seconds
    
  5. Exiba os eventos de auditoria de acesso da interface do usuário do Ranger.

    Screenshot that shows the HDInsight Ranger UI Policy Audit.

Limpar os recursos

Se você não quiser continuar a usar este aplicativo, exclua o cluster do HBase criado:

  1. Entre no portal do Azure.
  2. Na caixa Pesquisar na parte superior, insira HDInsight.
  3. Em Serviços, selecione clusters do HDInsight.
  4. Na lista de clusters do HDInsight exibida, selecione ao lado do cluster que você criou para este tutorial.
  5. Selecione Excluir>Sim.

Próximas etapas