Isilon: Configuração automatizada do Kerberos no Ambari com Isilon
Summary: Este artigo orienta você sobre como configurar a segurança do Kerberos com um cluster do Hadoop gerenciado pelo Ambari.
Symptoms
Cause
Resolution
Este artigo descreve como configurar a segurança do Kerberos com um cluster do Hadoop gerenciado pelo Ambari.
O Kerberos é central para autenticação e criptografia sólidas para Hadoop, mas pode ser um desafio para configurar e administrar. O Ambari 2.0 introduziu a configuração automatizada do Kerberos orientada por assistente, o que torna o processo muito mais rápido e menos propenso a erros. A partir do OneFS 8.0.0.1, os clientes do Dell EMC Isilon podem aproveitar esse excelente recurso.
Pré-requisitos
- OneFS 8.0.0.1 ou superior.
- Ambari 2.0 ou superior.
- KDC do MIT em execução (não há suporte para heimdal). Siga as etapas aqui para configurar sua infraestrutura Kerberos.
- Avançar e inverter o DNS entre todos os hosts.
- Todos os serviços estão em execução (verde) no painel de controle do Ambari.
Habilitar Kerberos
Pré-configuração
Antes de iniciar o assistente, você deve definir duas configurações e reiniciar todos os serviços.- No HDFS - Definição> personalizada do core-site "hadoop.security.token.service.use_ip" para "false"
- No MapReduce2 —> o mapred-site avançado adiciona "'hadoop classpath':" ao início de "mapreduce.application.classpath". Observe os dois pontos e os backticks (mas não copie as aspas).
Introdução
Navegue até Admin -> Kerberos e pressione o botão "Enable Kerberos". Os títulos desta seção referem-se aos títulos das páginas do assistente Kerberos.
Selecione "Existing MIT KDC", certifique-se de que os pré-requisitos sejam atendidos e, em seguida, clique em "Next". Observe que o Isilon não usa Java e não precisa do JCE.
Configurar o client Kerberos/Instalar e testar o Kerberos
Preencha todas as informações do KDC e do servidor administrador. Na etapa 3 (Instalar e testar o client Kerberos), o servidor Ambari fará um teste de fumaça para garantir que você configurou o Kerberos corretamente.
Configurar identidades/confirmar configuração
a) UpNs (User Principals, principais de usuário) do Ambari
O Ambari cria os principais do usuário no formato $ -$ @$ e, em seguida, usa hadoop.security.auth_to_local em core-site.xml para mapear os principais em apenas $ no file system.O Isilon não cumpre as regras de mapeamento, portanto, você deve remover o -$ de todos os principais na seção "Ambari Principals". O Isilon removerá o @$ , portanto, nenhum alias será necessário. Em um cluster do Ambari 2.2.1 que executa HDFS, YARN, MapReduce2, Tez, Hive, HBase, Pig, Sqoop, Oozie, Zookeeper, Falcon, Storm, Flume, Accumulo, Métricas do Ambari, Kafka, Park, Out, Slider e Spark, faça as seguintes modificações na guia "Geral":
- Nome principal do Smokeuser: ${cluster-env/smokeuser}-$ @$ => ${cluster-env/smokeuser}@$
- spark.history.kerberos.principal: ${spark-env/spark_user}-$ @$ => ${spark-env/spark_user}-@$
- Nome principal do Storm: ${storm-env/storm_user}-$ @$ => ${storm-env/storm_user}-@$
- Principal do usuário do HBase: ${hbase-env/hbase_user}-$ @$ => ${hbase-env/hbase_user}@$
- Principal do usuário do HDFS: ${hadoop-env/hdfs_user}-$ @$ => ${hadoop-env/hdfs_user}@$
- accumulo_principal_name: ${accumulo-env/accumulo_user}-$ @$ => ${accumulo-env/accumulo_user}@$
- trace.user: tracer-$ @$ => tracer@$
b) SpNs (Service Principals, principais de serviço)
O Ambari cria principais de serviço, alguns dos quais são diferentes dos nomes de usuário do UNIX. Novamente, como o Isilon não cumpre as regras de mapeamento, você deve modificar os nomes de principal para corresponder aos nomes de usuário do UNIX. No cluster do Ambari 2.2.1, faça as seguintes modificações na guia "Avançado":
- HDFS -> dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$
- YARN -> yarn.resourcemanager.principal: rm/_HOST@$ => yarn/_HOST@$
- YARN -> yarn.nodemanager.principal: nm/_HOST@$ => yarn/_HOST@$
- MapReduce2 -> mapreduce.jobhistory.principal: jhs/_HOST@$ => mapred/_HOST@$
- Falcon -> *.dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$

Depois de configurar os principais apropriados, pressione "Next". Na tela "Confirm Configuration", pressione "Next".
Interromper serviços/Kerberize Cluster
Os serviços de interrupção e kerberização devem ser bem-sucedidos.

Não prossiga: O Isilon não permite que o Ambari crie keytabs para os principais do Isilon. Em vez disso, você deve configurar manualmente o Kerberos no Isilon usando as etapas abaixo.
a) Crie o KDC como um provedor de autenticação do Isilon
Nota: Se essa zona do Isilon já estiver configurada para usar seu KDC do MIT, ignore essas etapas.
isi auth krb5 create --realm=$REALM --admin-server=$admin_server --kdc=$kdc_server --user=$admin_principal --password=$admin_password
isi zone zones modify --zone=$isilon_zone --add-auth-provider=krb5:$REALM
b) Crie principais de serviço para HDFS e HTTP (para WebHDFS).
isi auth krb5 spn create --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
isi auth krb5 spn create --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
c) Crie todos os usuários de proxy necessários
Em clusters não protegidos, qualquer usuário pode representar qualquer outro usuário. Em clusters protegidos, os usuários de proxy precisam ser explicitamente especificados.
Se você tiver Hive ou Oozie, adicione os usuários de proxy apropriados.
isi hdfs proxyusers create oozie --zone=$isilon_zone --add-user=ambari-qa
isi hdfs proxyusers create hive --zone=$isilon_zone --add-user=ambari-qa
d) Desabilitar autenticação simples
Somente autenticação kerberos ou token de delegação é permitida.
isi hdfs settings modify --zone=$isilon_zone --authentication-mode=kerberos_only
Agora que o Isilon também está configurado, pressione "Next" no Ambari para passar para a última etapa do assistente.
Serviços de início e teste

Se os serviços não iniciarem, aqui estão alguns truques para depurar problemas do Kerberos:
- Devido a um bug no YARN, você precisa definir o "yarn.resourcemanager.principal" como yarn/$rm_hostname@$REALM in YARN ->Custom yarn-site. A sintaxe "_HOST" não funciona com o Kerberos ativado.
- Para depurar erros do Java GSSAPI/Kerberos, adicione "-Dsun.security.krb5.debug=true" ao HADOOP_OPTS.
- Para erros HTTP 401, use curl with -iv para obter informações adicionais de depuração.
- Certifique-se de que o DNS reverso e de avanço esteja configurado entre todos os hosts.
No HDFS — conjunto> personalizado de core-site "hadoop.rpc.protection" como "integridade" ou "privacidade". Além da autenticação, as mensagens de garantia de integridade não foram violadas e a privacidade criptografa todas as mensagens.
Execute um trabalho!
Em qualquer host de client, tente um trabalho MapReduce!
kinit <some-user> yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 1 1000
Job Finished in 37.635 seconds
Estimated value of Pi is 3.14800000000000000000
Congratulations--you have secured your cluster with Kerberos!
(Opcional) Desativar Kerberos
Limpar o Isilon
Você deve limpar o Isilon primeiro. Isso é essencialmente o inverso de habilitar o Kerberos.
a) Desabilite a autenticação Kerberos
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) Exclua todos os usuários de proxy
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
c) Excluir principais
isi auth krb5 spn delete --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --all
isi auth krb5 spn delete --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --all
Observe que os comandos acima removem apenas os principais do Isilon, mas não os removam do Key Distribution Center. Use estes comandos para remover os principais do Isilon do Key Distribution Center:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) Remover o KDC como um provedor de autenticação do Isilon
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
Limpar clients usando o Ambari
Pressione "Disable Kerberos" em Admin -> Kerberos. Todos os serviços devem ficar em verde.