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

Apache Hadoop Ozone Security – Autenticação


O Apache Ozone é um armazenamento de objetos distribuído construído sobre o serviço Hadoop Distributed Data Store. Ele pode gerenciar bilhões de arquivos pequenos e grandes que são difíceis de manipular por outros sistemas de arquivos distribuídos. O Ozone oferece suporte a APIs avançadas, como Amazon S3, Kubernetes CSI, bem como APIs nativas do sistema de arquivos Hadoop. Isso torna o Ozone facilmente consumível por diferentes tipos de cargas de trabalho de big data, como data warehouse no Apache Hive, ingestão de dados com Apache Nifi, streaming com Apache Spark/Flink e aprendizado de máquina com Tensorflow.

Com o crescente volume de dados e cargas de trabalho multifacetadas que precisam de colaboração entre vários grupos, a segurança dos dados é de extrema importância. A segurança do Ozone foi adicionada desde o lançamento do Apache Hadoop Ozone 0.4.0 com contribuições das comunidades. Ele também foi incluído como uma prévia técnica na versão CDP Data Center 7.0 da Cloudera. A segurança pode ser classificada em quatro blocos de construção:autenticação, autorização, auditoria e criptografia. Abordaremos a parte de autenticação neste blog junto com o restante nos próximos.

Autenticação é o processo de reconhecimento da identidade de um usuário para componentes do Ozone. Ozone é compatível com a arquitetura de segurança Apache Hadoop, suportando autenticação forte usando Kerberos, bem como tokens de segurança.

Autenticação baseada em Kerberos


Conforme mostrado na Figura 1 abaixo, os componentes de serviço, incluindo OM (Ozone Manager), SCM (Storage Container Manager) e Datandoes, são todos autenticados entre si via Kerberos. Cada serviço deve ser configurado com o nome principal do Kerberos e o arquivo keytab válidos, que serão usados ​​pelo serviço para fazer login no início do serviço no modo seguro. Mais detalhes sobre a configuração do OM/SCM/Datanode Kerberos podem ser encontrados nos documentos do Apache Hadoop Ozone. Da mesma forma, os clientes Ozone devem fornecer um tíquete Kerberos válido ou tokens de segurança para acessar serviços Ozone, como Ozone Manager para metadados e Datanode para blocos de leitura/gravação.


Tokens de segurança


Assim como os tokens de delegação do Hadoop, o token de segurança Ozone tem um identificador de token junto com uma assinatura assinada do emissor. O gerenciador Ozone emite tokens de delegação e tokens de bloco para usuários ou aplicativos cliente autenticados com Kerberos. A assinatura do token pode ser validada por validadores de token para verificar a identidade do emissor. Dessa forma, um detentor de token válido pode usar o token para realizar operações nos serviços de cluster como se tivesse tíquetes Kerberos do emissor.

Token de delegação emitido pelo Ozone Manager permite que os detentores de token acessem os serviços de metadados fornecidos pelo Ozone Manager, como criar um volume ou listar os objetos em um bucket. Ao receber uma solicitação de um cliente com um token de delegação, o gerente da Ozone valida o token de delegação verificando a assinatura do assinante por meio de sua chave pública. As operações de token de delegação, como obter, renovar e cancelar, só podem ser executadas em uma conexão autenticada por Kerberos.

Bloquear tokens são semelhantes aos tokens de delegação no sentido de que são emitidos/assinados pelo gerente do Ozone. Eles são emitidos pelo gerenciador do Ozone quando uma solicitação do cliente envolve leitura ou gravação de bloco no Datanode. Ao contrário dos tokens de delegação solicitados com APIs explícitas de obter/renovar/cancelar, eles são entregues de forma transparente aos clientes junto com as informações de localização da chave/bloco. Os tokens de bloco são validados pelos Datanodes ao receber a solicitação de leitura/gravação de clientes usando a chave pública do gerente do cantor Ozone. O token de bloco não pode ser renovado explicitamente pelo cliente. Uma vez expirado, o cliente deve buscar novamente os locais de chave/bloco para obter novos tokens de bloco.

Segredo do S3


O Ozone oferece suporte ao protocolo Amazon S3 por meio do Ozone S3 Gateway. No modo seguro, o Ozone Manager emite um segredo s3 para usuários autenticados do Kerberos ou aplicativos cliente que acessam o Ozone usando APIs do S3. Abordaremos isso em blogs posteriores no Ozone S3 Gateway.

Como funciona o token de segurança Ozone?


Conforme mostrado na Figura 2, o token de delegação tradicional do Apache Hadoop e o token de bloco dependem de segredos compartilhados entre o emissor do token e o validador de token para assinar e validar o token. Portanto, quando o emissor e o validador são diferentes, por exemplo, no caso de token de bloco, a chave mestra compartilhada deve ser periodicamente transferida pela rede para sincronizar entre o emissor do token (namenode) e o validador do token (datanodes).



Em vez disso, o token de segurança Ozone adota uma abordagem baseada em certificado. Conforme mostrado na Figura 3, ele dissocia completamente os emissores de token e validadores de token com uma assinatura baseada em certificado. Dessa forma, os tokens são mais seguros, pois os segredos compartilhados nunca são transportados pela rede.



No modo seguro, o SCM se autoinicia como uma CA (Autoridade de Certificação) e cria um certificado de CA autoassinado. O Datanode e o Ozone Manager devem se registrar no SCM CA por meio de um CSR (solicitação de assinatura de certificado). O SCM valida a identidade do Datanode e do Ozone Manager via Kerberos e assina o certificado do componente. Os certificados assinados são usados ​​pelo Ozone Manager e Datanode para provar sua identidade. Isso é especialmente útil para assinatura e validação de token de delegação/token de bloco.

No caso de token de bloco, o Ozone Manager (emissor de token) assina o token com sua chave privada e o Datanodes (validador de token) usa o certificado do Ozone Manager para validar tokens de bloco porque o Ozone Manager e o datanode confiam em certificados assinados por SCM CA.

No caso de token de delegação, quando o Ozone Manager (emissor e validador de token) estiver sendo executado no modo HA (alta disponibilidade). Existem várias instâncias do Ozone Manager em execução simultaneamente. Um token de delegação emitido e assinado pela instância 1 do Ozone Manager pode ser validado pela instância 2 do Ozone Manager quando o líder Ozone Manager muda, pois ambas as instâncias confiam em certificados assinados pela CA do SCM. Mais detalhes do documento de design do Ozone HA podem ser encontrados aqui.

Conclusão


A autenticação é um dos blocos de construção mais importantes da segurança do Apache Hadoop Ozone. Agora você deve ter uma melhor compreensão de quais mecanismos de autenticação são suportados pelo Apache Hadoop Ozone e como eles funcionam. Isso ajudará a entender outros pilares de segurança do Ozone, como autorização e auditoria.

Fique atento aos artigos de acompanhamento sobre autorização de segurança do ozônio, auditoria, criptografia e GDPR. Se você estiver interessado em mergulhar fundo, poderá encontrar mais detalhes técnicos no documento de design de segurança do Ozone.

Referência


[1] Arquitetura Apache Hadoop Ozone

[2] Benchmarking Ozone:Armazenamento de próxima geração da Cloudera para CDP

[3] O que é Kerberos? · Hadoop e Kerberos:a loucura além do portão

[4] Documento Apache Hadoop Ozone

[5] Adicionando segurança ao Apache Hadoop

[6] Documento de design do Apache Hadoop Ozone HA no HDDS-505.

[7] Documento de design de segurança do Apache Hadoop Ozone no HDDS-4.