Nesta postagem anterior do blog, fornecemos uma visão geral de alto nível do Cloudera Replication Plugin, explicando como ele traz replicação multiplataforma com pouca configuração. Neste post, abordaremos como esse plug-in pode ser aplicado em clusters CDP e explicaremos como o plug-in permite autenticação forte entre sistemas que não compartilham confiança de autenticação mútua.
Usando o plug-in de replicação de banco de dados operacional
O Plugin de replicação de banco de dados operacional está disponível tanto como um plug-in autônomo quanto instalado automaticamente via Cloudera Replication Manager. O plug-in permite que os clientes configurem a replicação em tempo quase real de dados HBase de clusters CDH/HDP/AWS EMR/Azure HDInsight para CDP Private Cloud Base e/ou CDP Operational Database (COD) na nuvem pública. Ele também é implantado automaticamente ao usar o Cloudera Replication Manager para configurar a replicação entre CDP Private Cloud Base e COD ou entre instâncias COD na Nuvem Pública. O Cloudera Replication Manager também permite combinar o recurso de instantâneo do HBase com este plug-in para também gerenciar a replicação de dados pré-existentes em uma única configuração.
Para obter instruções de instalação, consulte a política de replicação do HBase tópico sobre Gerenciador de replicação documentação oficial.
Para versões herdadas de CDH/HDP, o plug-in é fornecido como um pacote para ser instalado apenas no cluster herdado.
- CDH 5.x
- CDH 6.x
- HDP 2.6
- HDP 3.1
- EMR 5.x &6.x
O pacote é bloqueado por versão com os binários específicos da versão. Para cada uma das versões mencionadas acima, ele deve ser adquirido por cluster. Entre em contato com sua equipe de vendas da Cloudera se estiver interessado em obter algum deles.
Detalhes de implementação
O impedimento resolvido pelo Plugin de Replicação de Banco de Dados Operacional é a autenticação mútua entre clusters em diferentes configurações de segurança. Lembrando esta postagem de blog anterior, a replicação padrão do HBase requer que ambos os clusters não estejam configurados para segurança ou ambos estejam configurados com segurança. No caso deste último, ambos os clusters devem estar no mesmo domínio kerberos ou ter a autenticação entre domínios definida no sistema kerberos. Isso seria um desafio extra no contexto do CDP, onde cada ambiente é executado em um domínio de segurança independente. Para entender isso com mais detalhes, precisamos revisar como a segurança do Apache HBase é implementada.
Usando SASL para estabelecer confiança
Na replicação do HBase, RegionServers no cluster de origem contatam RegionServers no cluster de destino por meio de conexões RPC. Quando a segurança está habilitada, a autenticação é realizada na fase de estabelecimento da conexão RPC usando a estrutura Simple Authentication and Security Layer (SASL). O HBase já fornece o seguinte incorporado autenticação SASL mecanismos:kerberos, resumo e simples. Quando o kerberos estiver habilitado, as credenciais do cluster de origem serão esperadas pelo cluster de destino, que validará essas credenciais em relação ao seu próprio KDC, usando o SASL kerberos mecanismo. Isso depende do kerberos GSSAPI implementação para autenticar as credenciais fornecidas no KDC do cluster de destino, portanto, a confiança para o principal do cluster de origem deve ter sido implementada no nível do sistema kerberos, tendo ambas as credenciais de clusters no mesmo domínio ou fazendo com que o KDC do cluster de destino confie nas credenciais de domínio do cluster de origem (uma abordagem comumente conhecida como cross-realm autenticação).
Extensão da autenticação HBase SASL
Felizmente, o SASL foi projetado para permitir implementações de autenticação personalizadas. Isso significa que uma solução baseada em SASL pode ser projetada, se um mecanismo SASL adicional puder ser conectado ao conjunto de opções internas mencionadas acima. Com esse objetivo, a Cloudera propôs uma refatoração da camada RPC do HBase, que foi revisada e aceita pela comunidade Apache HBase em HBASE-23347 .
Mecanismo SASL conectável
Com as alterações introduzidas por HBASE-23347 , mecanismos adicionais de autenticação SASL podem ser definidos por meio da configuração do HBase para serem usados pela camada RPC. As conexões RPC de entrada definem o tipo específico de SASL no cabeçalho e, em seguida, o servidor RPC seleciona a implementação específica para realizar a autenticação real:
Plugin de replicação de banco de dados operacional implementa seu mecanismo SASL personalizado, permitindo que clusters em diferentes reinos kerberos se comuniquem com esforços de configuração contínuos (sem a necessidade de kerberos cross-realm ). Ele estende a replicação do HBase para que a fonte crie um token SASL de Plugin de replicação tipo personalizado, com credenciais de um usuário de máquina predefinido no cluster COD de destino. Esse tipo de usuário pode ser criado facilmente no Cloudera Management Console IU, e, em seguida, propagado para o cluster COD subjacente à autoridade de autenticação kerberos. Instruções detalhadas sobre como criar usuários de máquina de replicação são abordadas na seção de etapas de pré-requisito da documentação do Cloudera Replication Manager.
Quando o servidor RPC no destino lê o token e identifica que é um Plugin de replicação tipo, as credenciais relacionadas são analisadas do token e usadas para autenticação.
Plugin de replicação de banco de dados operacional usa a autenticação PAM para validar as credenciais do usuário da máquina. Os clusters COD são sempre provisionados com autenticação PAM no domínio de segurança FreeIPA do ambiente CDP.
Protegendo as credenciais do usuário da máquina
Um problema crítico nesta solução é que o cluster de origem deve obter as credenciais do usuário da máquina do cluster de destino. Por razões óbvias, isso não deve ser exposto de forma alguma na configuração de origem. Essas credenciais também são enviadas por fio no token SASL dentro da conexão RPC, portanto, devem ser criptografadas antes da transmissão. O Replication Plugin fornece sua própria ferramenta para gerar um jceks arquivo que armazena as credenciais do usuário da máquina, criptografado. Uma vez que este arquivo é criado, ele deve ser copiado para ambos os clusters e tornado legível pelo hbase apenas usuário. O diagrama abaixo mostra uma visão geral da implantação do Plugin de replicação de banco de dados operacional componentes que se integram às classes de replicação HBase padrão no contexto de RegionServers. As caixas rosa representam o código de replicação e conexão RPC já fornecido pelo HBase, enquanto as caixas amarelas mostram a camada de abstração introduzida no HBASE-23347. Por fim, as classes laranja destacam os artefatos relevantes que implementam o Plugin de replicação de banco de dados operacional lógica.
Conclusão
A replicação é uma ferramenta valiosa para implementar soluções de migração de DR e DC para HBase. Ele tem algumas ressalvas, como mostrado aqui, ao lidar com as configurações de segurança dos clusters. No entanto, a capacidade de migrar dados de implantações “on-prem” atuais para clusters CDP na nuvem é fundamental. Plugin de replicação de banco de dados operacional Cloudera traz flexibilidade na integração de clusters seguros, juntamente com uma melhor capacidade de manutenção para essa integração de segurança, pois é totalmente implementada no nível HBase, em contraste com kerberos cross-realm, que exige mudanças na definição do sistema kerberos, muitas vezes responsabilidade de uma equipe completamente diferente, com suas próprias políticas restritivas.
Experimente o modelo de banco de dados operacional em Cloudera Data Platform (CDP)!