Este tópico explica como ativar o controle de acesso do Ranger para o Hive e fornece exemplos de configuração das permissões do Ranger Hive.
Pré-requisitos
Crie um cluster DataLake e selecione o serviço Ranger. Para mais informações, consulte Criar um cluster.
Observações de uso
Após a ativação do controle de acesso do Ranger para o Hive, o serviço HiveServer2 carrega o plugin Ranger Hive. O Ranger verifica as permissões apenas quando você envia jobs SQL pelo HiveServer2. O acesso ao Hive por outros métodos não aciona essa verificação.
-
Métodos de acesso compatíveis com a verificação de permissões
Acesso ao HiveServer2 com um cliente Beeline.
Conexão ao HiveServer2 por uma JDBC URL.
-
Métodos de acesso incompatíveis com a verificação de permissões
Conexão direta ao Metastore com um cliente Hive.
Conexão direta ao Metastore pela API Hive-Client.
O controle de acesso do Ranger aplica-se somente à camada de metadados e operações SQL do Hive. O Ranger não oferece suporte a controle de acesso na camada de armazenamento OSS ou OSS-HDFS. Não configure políticas de permissão da camada de armazenamento no Ranger, pois elas não entrarão em vigor.
Procedimento
-
Acesse a página Cluster Service.
Faça login no console EMR on ECS.
Na barra de navegação superior, selecione uma região e um grupo de recursos conforme necessário.
Na coluna Actions do cluster desejado, clique em Services.
-
Ative o Hive no Ranger.
Na página Services, localize o serviço Ranger-plugin e clique em seu Status.
Na seção Service Overview, ative a chave enableHive.
Na caixa de diálogo exibida, clique em OK.
-
Reinicie o HiveServer.
Na página Services, selecione .
Na seção Components, clique em Restart na coluna Actions do HiveServer.
Na caixa de diálogo exibida, insira um Execution Reason e clique em OK.
Na caixa de diálogo Confirm, clique em OK.
Configuração de permissões
Visão geral
Configure as permissões do Ranger na Ranger UI. Para obter instruções sobre como acessar a Ranger UI, consulte Visão geral do Ranger.
Para configurar as permissões do Hive no Ranger, clique em emr-hive em HADOOP SQL, conforme mostra a figura a seguir.
Caso o serviço emr-hive não apareça na Ranger UI, execute as etapas abaixo:
Faça login no console EMR on ECS.
Na página de serviços do cluster, localize o serviço Ranger-plugin e clique em Status para abrir a página de configuração.
Pesquise o parâmetro enableImpala e defina seu valor como true.
Salve a configuração.
Atualize a página da Ranger UI. O serviço emr-hive aparecerá em HADOOP SQL.
Ao abrir o serviço emr-hive, você verá uma lista com todas as políticas de permissão configuradas. Por padrão, o Ranger inclui várias políticas. Por exemplo, uma política padrão concede ao usuário hive (usuário de inicialização do serviço HiveServer) acesso total a todos os recursos de banco de dados, tabela, coluna, UDF e URL. Outra política padrão concede a todos os usuários a permissão de criação para bancos de dados e para recursos dentro do banco de dados default.
Adicionar uma política de permissão
Clique em Add New Policy no canto superior direito para adicionar uma política de permissão. Cada política exige um Policy Name exclusivo. Uma política básica consiste em três componentes principais: recursos, usuários e permissões. Os recursos são os ativos regidos pela política, como banco de dados, tabela, coluna ou URL. Os usuários são as contas às quais a política se aplica. As permissões definem os tipos de acesso concedidos.
-
Recursos da política
No Ranger para Hive, os recursos da política incluem database, table, column, url e udf. Selecione um tipo de recurso para configurar suas permissões. Por padrão, o formulário da política exibe campos para database, table e column. Clique no nome de um recurso para alternar para outro tipo.
Ao configurar uma política, insira o nome do recurso. Por exemplo, insira testdb para database, test para table, id para column ou oss://test-bucket/test/tmp para url. Também é possível inserir um asterisco (*) para corresponder a todos os recursos desse tipo, conforme ilustra a figura a seguir.

-
Usuários da política
Toda política deve ser aplicada a usuários específicos. Selecione os usuários na lista Select User, conforme mostra a figura a seguir.

-
Permissões da política
Clique em Add Permissions para exibir a seção add/edit permissions. Em seguida, selecione a permission desejada, conforme ilustra a figura a seguir.

Exemplo 1: Permissões no nível de coluna
Um caso de uso comum do controle de acesso do Ranger é conceder a um usuário específico a permissão select em uma tabela. Isso garante que o usuário possa executar consultas select columns from table. A figura a seguir mostra um exemplo de configuração.
Essa política concede ao usuário test a permissão select na column=id da table=test dentro do database=testdb. Assim, o usuário pode executar a consulta select id from testdb.test. Para permitir que um usuário selecione todas as colunas de testdb.test, defina o campo column como *.
Exemplo 2: Permissões no nível de tabela
No Ranger para Hive, a permissão create para tabelas pode ser configurada no nível da tabela. Por exemplo, se você conceder a permissão create para database=testdb, table=test e column=*, o usuário poderá criar apenas a tabela chamada test. A criação de outras tabelas não será permitida. Para permitir que um usuário crie qualquer tabela em um banco de dados, conceda a permissão create para database=testdb, table= e column=. A figura a seguir ilustra essa configuração.
Exemplo 3: Permissões de URL
Ao executar uma instrução SQL do Hive que inclui uma cláusula LOCATION com o esquema oss, o Ranger verifica as permissões de leitura e gravação do usuário para essa URL. Por exemplo, a execução de create external table test(id int, name string) location 'oss://test-bucket/test' aciona uma verificação de permissão de leitura em oss://test-bucket/test.
Nesse cenário, configure uma política para a permissão de URL. Para alterar o tipo de recurso para url, consulte as instruções na seção "Adicionar uma política de permissão". A figura a seguir apresenta um exemplo de configuração.
Se não for necessário controlar as permissões de URL, modifique a política all - url no Policy Name padrão e adicione public ao Select Group. Essa ação concede a todos os usuários permissões de leitura e gravação em todas as URLs. As etapas específicas estão ilustradas na figura abaixo.
No Ranger, public é um grupo especial que representa todos os usuários. Quando o Select Group de uma política é definido como public, as permissões dessa política se aplicam a todos os usuários.

Perguntas frequentes
Como configuro permissões do Ranger Hive para uma conta somente leitura?
Para conceder a uma conta somente leitura apenas a permissão select em recursos específicos do Hive, crie uma política do Ranger seguindo estas etapas:
Na Ranger UI, clique em emr-hive em HADOOP SQL para abrir a lista de políticas do Hive.
Clique em Add New Policy no canto superior direito.
-
Configure os recursos da política:
database: Insira o nome do banco de dados desejado ou use * para corresponder a todos os bancos de dados.
table: Insira o nome da tabela desejada ou use * para corresponder a todas as tabelas.
column: Insira * para corresponder a todas as colunas ou especifique nomes de colunas individuais.
No campo Select User, selecione a conta somente leitura.
Clique em Add Permissions e selecione apenas a permissão select.
Clique em Add para salvar a política.
Caso tenha dúvidas sobre qual conta especificar, selecione todos os usuários na lista suspensa Select User ou verifique os logs de auditoria do Ranger para identificar as contas que se conectaram anteriormente ao Hive.
O EMR 4.9.0 suporta o uso do Ranger para controlar permissões do Impala?
Não. O EMR 4.9.0 não oferece suporte ao uso do Ranger para controlar permissões do Impala. Para utilizar o Ranger no controle de acesso do Impala, atualize seu cluster para uma versão posterior do EMR compatível com esse recurso ou adote uma solução alternativa de gerenciamento de permissões.
> Hive