HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

Convertendo ACLs do HBase em políticas do Ranger


O CDP está usando o Apache Ranger para gerenciamento de segurança de dados. Se você deseja utilizar o Ranger para ter uma administração de segurança centralizada, as ACLs do HBase precisam ser migradas para as políticas. Isso pode ser feito por meio do Ranger webUI, acessível no Cloudera Manager. Mas primeiro, vamos dar uma rápida visão geral do método HBase para controle de acesso.

Autorização HBase


Se a autorização estiver configurada (por exemplo, com Kerberos e definindo o hbase.security.authorization propriedade para true ), os usuários podem ter regras definidas nos recursos que têm permissão para acessar. Essas regras podem ser definidas para tabelas, colunas e células individuais em uma tabela.

Níveis de acesso HBase


Os níveis de acesso do HBase são concedidos independentemente um do outro e permitem diferentes tipos de operações em um determinado escopo.

Possíveis permissões (zero ou mais letras do conjunto “RWXCA”):
  • Ler (R) – pode ler dados no escopo fornecido
  • Write (W) – pode gravar dados no escopo fornecido
  • Execute (X) – pode executar endpoints do coprocessador no escopo fornecido
  • Criar (C) – pode criar tabelas ou descartar tabelas no escopo fornecido
  • Admin (A) – pode realizar operações de cluster, como balancear o cluster ou atribuir regiões em um determinado escopo

Escopos possíveis:
  • Superusuário – Superusuários podem realizar qualquer operação disponível no HBase, para qualquer recurso. O usuário que executa o HBase em seu cluster é um superusuário. Quaisquer principais atribuídos à propriedade de configuração hbase.superuser no hbase-site.xml arquivo de configuração no HMaster também são superusuários.
  • Global – As permissões concedidas no escopo global permitem que o administrador opere em todas as tabelas do cluster.
  • Namespace – As permissões concedidas no escopo do namespace se aplicam a todas as tabelas em um determinado namespace.
  • Tabela – As permissões concedidas no escopo da tabela se aplicam a dados ou metadados em uma determinada tabela.
  • ColumnFamily – As permissões concedidas no escopo da ColumnFamily se aplicam às células dessa ColumnFamily.
  • Célula – As permissões concedidas no escopo da célula se aplicam a essa coordenada exata da célula.

Exportando ACLs do HBase


1. Faça login via Kerberos com as credenciais do serviço HBase.

2. Inicie o shell hbase e liste as ACLs.

Para listar ACLs, use os seguintes comandos:
  • user_permission '.*'
  • Alternativamente com privilégio de superusuário:scan 'hbase:acl'

Exemplo de saída de scan 'hbase:acl':

LINHA COLUNA+CÉLULA
emp coluna=l:hbase, timestamp=1612190971868, value=RWXCAemp2 column=l:hbase, timestamp=1612191218963, value=RWXCAemp2 column=l:user1, timestamp=1612191426624, value=RWCemp column=l:test,personal data, timestamp=1612273141925, value=RWemp column=l:test,personal data,1, timestamp=1612273322678, value=RWemp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW 
Exemplo de saída de user_permission '.*':
User Namespace,Table,Family,Qualifier:Permissionhbase default,emp,,:[Permission:actions=READ,WRITE,EXEC,CREATE,ADMIN]user1 default,emp2,,:[Permission:actions=READ,WRITE, CREATE]hbase default,emp2,,:[Permission:actions=READ,WRITE,EXEC,CREATE,ADMIN]test default,emp,personal data,:[Permission:actions=READ,WRITE]test default,emp,personal data, 1:[Permissão:actions=READ,WRITE]@group-usr default,emp,personal data,1:[Permission:actions=READ,WRITE]

Observação: Grupos e usuários recebem acesso da mesma maneira, mas os grupos são prefixados com um caractere '@'. Tabelas e namespaces são especificados da mesma maneira, mas namespaces são prefixados com um caractere '@'.

Exemplo de permissão em nível de célula:
test             default,emp,personal data,1:[Permission:actions=READ,WRITE]

O 'teste' o usuário tem permissões RW no 'padrão' namespace, na tabela 'emp' , coluna 'dados pessoais' e linha '1'..

Criação de políticas do Ranger 

  1. No Cloudera Manager, selecione o serviço Ranger.
  2. Encontre a webUI link que redireciona você para a IU do Ranger.
  3. Faça login na interface do Ranger.

O Gerenciador de Acesso página exibida:



1. Selecione um serviço HBase existente.
A Lista de políticas página aparece.



2. Clique em Adicionar nova política .
A página Criar Política é exibida.



3. Preencha a página Criar política da seguinte forma:

3.1 Detalhes da Política
Nome da política Digite um nome de política apropriado. Este nome não pode ser duplicado no sistema. Este campo é obrigatório.
Etiqueta da política Especifique um rótulo para esta política. Você pode pesquisar relatórios e filtrar políticas com base nesses rótulos.
normal/substituir Permite especificar uma política de substituição. Quando a substituição é selecionada, as permissões de acesso na política substituem as permissões de acesso nas políticas existentes. Esse recurso pode ser usado com Adicionar período de validade para criar políticas de acesso temporárias que substituem as políticas existentes.
Tabela HBase Selecione o banco de dados apropriado. Vários bancos de dados podem ser selecionados para uma política específica. Este campo é obrigatório.
Família de colunas HBase Para a tabela selecionada, especifique os grupos de colunas aos quais a política se aplica.
Coluna HBase Para as famílias de tabelas e colunas selecionadas, especifique as colunas às quais a política se aplica.
Descrição (Opcional) Descreva a finalidade da política.
Registro de auditoria Especifique se esta política é auditada. (Desmarque para desativar a auditoria).
Adicionar período de validade Especifique um horário de início e término para a política.

3.2 Condições de permissão/negação
O Apache Ranger suporta as seguintes condições de acesso:
  • Permitir
  • Excluir de Permitir
  • Negar
  • Excluir de Negar

Essas condições de acesso permitem que você configure políticas de controle de acesso refinadas.

Por exemplo, você pode permitir o acesso a um financiamento tabela para todos os usuários no finanças grupo, mas negue o acesso a todos os usuários no estagiários grupo. Digamos que um dos membros dos estagiários grupo, scott , precisa trabalhar em uma tarefa que exija acesso às finanças tabela. Nesse caso, você pode adicionar uma condição Excluir de Negar que permitirá ao usuário scott para acessar as finanças base de dados.


Selecionar função Especifique as funções às quais esta política se aplica.

Para designar uma função como Administrador, marque a caixa de seleção Delegar Admin. Os administradores podem editar ou excluir a política e também podem criar políticas filhas com base na política original.
Selecionar grupo Especifique os grupos aos quais esta política se aplica.

Para designar um grupo como Administrador, marque a caixa de seleção Delegar Admin. Os administradores podem editar ou excluir a política e também podem criar políticas filhas com base na política original.
Selecionar usuário Especifique os usuários aos quais esta política se aplica.

Para designar um usuário como Administrador, marque a caixa de seleção Delegar Admin. Os administradores podem editar ou excluir a política e também podem criar políticas filhas com base na política original.
Permissões Adicione ou edite permissões:Ler, Gravar, Criar, Admin, Selecionar/Desmarcar Tudo.
Administrador delegado Você pode usar Delegar Admin para atribuir privilégios de administrador aos usuários ou grupos especificados na política. Os administradores podem editar ou excluir a política e também podem criar políticas filhas com base na política original.

3.3 Você pode usar o símbolo de adição (+) para adicionar condições adicionais. As condições são avaliadas na ordem listada na política. A condição no topo da lista é aplicada primeiro, depois a segunda, depois a terceira e assim por diante. As condições de negação são sempre mais fortes. O fluxograma a seguir fornece informações sobre o fluxo de avaliação de política do Ranger.



3.4 Por fim, clique em Adicionar.

Conclusão


Nesta postagem do blog, vimos como você pode migrar suas ACLs do HBase para as políticas do Ranger, usando o Cloudera Manager. Infelizmente, não há automação para a migração, pois os dois métodos de autorização diferem muito. Embora haja um recurso de importação no Ranger para políticas de carregamento em massa, não há como exportar ACLs do HBase no formato que o Ranger entende (JSON/CSV especificamente formatado).