Ative a autenticação Kerberos em um workspace do Serverless Spark para exigir que todos os clientes se autentiquem antes de enviar tarefas Spark. Essa configuração reduz o acesso não autorizado e aumenta a segurança na execução das tarefas.
Limitações
Um workspace pode ser vinculado a apenas um cluster Kerberos.
A autenticação Kerberos é compatível apenas com jobs em lote do Spark.
A autenticação Kerberos exige conectividade de rede entre o EMR Serverless Spark e sua Virtual Private Cloud (VPC). Além disso, a porta UDP 88 deve estar aberta para o tráfego Kerberos. Conclua a configuração de rede na Etapa 1 antes de configurar a autenticação.
Pré-requisitos
Antes de começar, verifique se você tem:
-
Um principal Kerberos criado, com seu arquivo keytab exportado e carregado no Object Storage Service (OSS)
Para clusters EMR on ECS, consulte Uso básico do Kerberos
Um workspace do Serverless Spark. Consulte Gerenciar workspaces
Etapa 1: Preparar a rede
Estabeleça conectividade de rede entre o EMR Serverless Spark e sua VPC. Consulte Estabelecer conectividade de rede entre o EMR Serverless Spark e outras VPCs.
Ao adicionar uma regra de grupo de segurança, abra a porta UDP 88 para o tráfego Kerberos. Se configurar a conexão de rede via TCP, adicione udp_preference_limit = 1 em [libdefaults] no arquivo krb5.conf durante a Etapa 2.
Etapa 2: Configurar a autenticação Kerberos
Esta etapa vincula seu workspace do Serverless Spark a um cluster Kerberos e ativa a imposição de autenticação.
No console do EMR, escolha EMR Serverless > Spark no painel de navegação à esquerda.
Na página Spark, clique em nome do workspace desejado.
No painel de navegação à esquerda, clique em Security > Kerberos Authentication.
Clique em Bind Kerberos.
-
Na página Bind Kerberos, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Kerberos Name
Insira um nome personalizado.
Network Connection
Selecione a conexão de rede criada na Etapa 1.
Kerberos krb5.conf
Insira o conteúdo do seu arquivo
krb5.conf. Consulte as instruções abaixo.**Como obter o conteúdo do
krb5.conf**O arquivo
krb5.confgeralmente está localizado em/etc/krb5.confno servidor Kerberos.Cluster EMR DataLake: Faça login no nó mestre (consulte Fazer login em um cluster), execute
cat /etc/krb5.confe copie a saída para o campo Kerberos krb5.conf.Outros clusters EMR ou Kerberos autogerenciado: Substitua o valor
hostnameno arquivo pelo endereço IP privado da sua VPC.
Se você abriu a porta UDP 88 na Etapa 1, nenhuma alteração no
krb5.confé necessária. Caso tenha usado TCP, adicioneudp_preference_limit = 1em[libdefaults].
Na coluna Actions, clique em Enable e, em seguida, clique em OK na caixa de diálogo de confirmação.
Etapa 3: Enviar um job em lote do Spark com autenticação Kerberos
Após ativar a autenticação Kerberos, todo job em lote do Spark deve incluir as credenciais Kerberos. O envio de um job sem essas credenciais retorna o erro: spark.kerberos.keytab and spark.kerberos.principal not configured.
Crie um job em lote do Spark. Consulte Início rápido do PySpark.
-
Na aba de desenvolvimento, defina Network Connection como a conexão adicionada na Etapa 1. Em seguida, adicione os seguintes parâmetros Kerberos à Spark Configuration e clique em Run.
spark.files oss://<bucketname>/path/test.keytab spark.kerberos.keytab test.keytab spark.kerberos.principal <username>@<REALM>Parâmetro
Descrição
spark.filesCaminho completo do arquivo keytab carregado no OSS.
spark.kerberos.keytabNome do arquivo keytab.
spark.kerberos.principalPrincipal no arquivo keytab, usado para autenticação de identidade com o Kerberos. Execute
klist -kt <keytab_file>para visualizar o principal.(Opcional) Conectar-se a um Hive Metastore com Kerberos ativado a partir do job Para consultar metadados de um Hive Metastore protegido por Kerberos, adicione estes parâmetros à Spark Configuration:
spark.hive.metastore.sasl.enabled true spark.hive.metastore.kerberos.principal hive/<hostname>@<REALM>Defina
spark.hive.metastore.kerberos.principalcomo o principal do arquivo keytab usado pelo Hive Metastore. Para encontrá-lo:No console do EMR on ECS, acesse a página Configuration do serviço Hive e abra a aba hive-site.xml. Localize o valor de
hive.metastore.kerberos.keytab.file.Execute
klist -kt <path_to_Hive_Metastore_keytab_file>para recuperar o principal.
O formato do principal é
hive/<hostname>@<REALM>, onde<hostname>é o nome de domínio totalmente qualificado (FQDN) do nó que executa o Hive Metastore (executehostname -fpara obtê-lo) e<REALM>é o realm do KDC.Se o endpoint do Hive Metastore usar um nome de host, utilize
hive/_HOST@<REALM>. O Spark substitui automaticamente_HOSTpelo nome de host do endpoint do Hive Metastore. Esse formato é obrigatório ao configurar múltiplos Hive Metastores. Após a execução do job, acesse a seção Execution Records e clique em Details na coluna Actions.
-
Em Job History, visualize os logs na página Log Exploration.

Etapa 4 (Opcional): Conectar o catálogo de dados do workspace a um Hive Metastore com Kerberos ativado
Se o catálogo de dados do workspace precisar buscar metadados de um Hive Metastore protegido por Kerberos, especifique o caminho do arquivo keytab e o principal ao adicionar um Hive Metastore externo.

|
Campo |
Descrição |
|
Kerberos keytab file |
Caminho para o arquivo keytab do Kerberos. |
|
Kerberos principal |
Nome do principal no arquivo keytab, usado para autenticação de identidade com o Kerberos. Execute |