Ative a autenticação Kerberos em um workspace do Serverless Spark para exigir a autenticação dos clientes antes do envio de jobs do Spark, melhorando a segurança na execução.
Pré-requisitos
-
Você criou um principal e fez o upload do arquivo keytab exportado para o OSS.
Caso utilize um cluster EMR on ECS, consulte Uso básico do Kerberos para obter mais informações.
Você criou um workspace do Serverless Spark. Para mais detalhes, consulte Gerencie workspaces.
Limitações
É possível vincular um workspace a apenas um cluster Kerberos.
A autenticação Kerberos é compatível apenas com jobs em lote do Spark.
Procedimento
Etapa 1: Preparar a rede
Antes de configurar a autenticação Kerberos, estabeleça a conectividade de rede entre o Serverless Spark e sua VPC. Para saber mais, consulte Estabelecer conectividade de rede entre o EMR Serverless Spark e outras VPCs.
Ao adicionar uma regra de grupo de segurança, recomendamos abrir a porta UDP 88, que é a porta padrão para o serviço Kerberos.
Etapa 2: Configurar a autenticação Kerberos
-
Acesse a página Kerberos Authentication.
Acesse o console do EMR.
No painel de navegação à esquerda, escolha EMR Serverless > Spark.
Na página Spark, clique no nome do workspace de destino.
Na página EMR Serverless Spark, escolha no painel de navegação à esquerda.
Clique em Bind Kerberos.
-
Na página Bind Kerberos, configure os seguintes parâmetros e clique em OK.
Parâmetro
Descrição
Kerberos Name
Insira um nome personalizado.
Normal Network Connection
Selecione a conexão de rede que você criou.
Kerberos krb5.conf
-
Insira o conteúdo do arquivo
krb5.conf.O arquivo
krb5.confgeralmente está localizado em/etc/krb5.confno servidor Kerberos. Obtenha o conteúdo do arquivo com base no seu ambiente:-
Caso utilize o serviço Kerberos de um cluster EMR Datalake, execute as etapas a seguir para obter o conteúdo:
-
Acesse o nó mestre do cluster EMR. Para mais informações, consulte Fazer logon em um cluster.
-
Execute o comando a seguir para exibir e copiar manualmente o conteúdo do arquivo
/etc/krb5.conf.cat /etc/krb5.conf -
Cole o conteúdo no campo Kerberos krb5.conf.
-
-
Para outros clusters EMR ou um serviço Kerberos autogerenciado, substitua o
hostnameno arquivo por um endereço IP privado na VPC.
-
-
(Opcional) Dependendo do protocolo de rede, talvez seja necessário adicionar configurações ao arquivo
krb5.conf.-
Caso tenha aberto a porta UDP 88 ao configurar a conexão de rede na Etapa 1: Preparar a rede, nenhuma configuração adicional é necessária.
-
Caso utilize o protocolo TCP para a conexão de rede configurada na Etapa 1: Preparar a rede, adicione a configuração
udp_preference_limit = 1na seção[libdefaults].
-
-
Na coluna Actions, clique em Enable.
Na caixa de diálogo, clique em OK.
Etapa 3: Enviar um job em lote do Spark
Depois de ativar a autenticação Kerberos, forneça as credenciais do cliente ao enviar um job em lote do Spark. Sem as configurações necessárias, o job falha e retorna o erro spark.kerberos.keytab and spark.kerberos.principal not configured.
Crie um job em lote do Spark. Para mais informações, consulte Início rápido do PySpark.
-
Na nova guia de desenvolvimento, adicione as seguintes configurações e clique em Run.

Parâmetro
Descrição
Normal Network Connection
Selecione o nome da conexão de rede que você criou na Etapa 1.
Spark Configuration
Configure os seguintes parâmetros.
spark.files oss://<bucketname>/path/test.keytab spark.kerberos.keytab test.keytab spark.kerberos.principal <username>@<REALM>A tabela a seguir descreve os parâmetros.
-
spark.files: o caminho completo no OSS do arquivo keytab enviado. -
spark.kerberos.keytab: o nome do arquivo keytab. -
spark.kerberos.principal: o principal no arquivo keytab usado para autenticação com o serviço Kerberos. Execute o comandoklist -kt <keytab_file>para visualizar o nome do principal no arquivo keytab de destino.
Caso precise se conectar a um Hive Metastore com Kerberos ativado para obter metadados, adicione as seguintes informações à seção Spark Configuration.
spark.hive.metastore.sasl.enabled true spark.hive.metastore.kerberos.principal hive/<hostname>@<REALM>Para
spark.hive.metastore.kerberos.principal, especifique o principal do arquivo keytab usado pelo Hive Metastore. Para encontrar o caminho do arquivo keytab, acesse o console do EMR on ECS, localize o serviço Hive e abra a página Configure. Na guia hive-site.xml, verifique o valor de hive.metastore.kerberos.keytab.file. Em seguida, execute o comandoklist -kt <path_to_hive_metastore_keytab_file>para visualizar o principal.O valor do parâmetro
spark.hive.metastore.kerberos.principaldeve estar em um dos seguintes formatos:O formato típico é
hive/<hostname>@<REALM>. Nesse formato,<hostname>é o nome de domínio totalmente qualificado (FQDN) do nó do Hive Metastore. Execute o comandohostname -fpara obter o FQDN.<REALM>é o realm do Key Distribution Center (KDC).Caso o endereço de conexão do Hive Metastore use um hostname, é possível simplificar o formato para
hive/_HOST@<REALM>. Ao se conectar, o Spark substitui automaticamente o_HOSTpelo hostname no endereço de conexão do Hive Metastore. Esse formato é obrigatório caso precise configurar vários Hive Metastores.
-
Quando o job estiver em execução, acesse a seção Execution Records e clique em Details na coluna Actions do job.
-
Na página Application em Job History, visualize as informações de log.

Etapa 4 (Opcional): Conectar a um metastore Kerberos
Caso o catálogo de dados do seu workspace se conecte a um Hive Metastore com Kerberos ativado, especifique o caminho do arquivo keytab e o nome do principal ao adicionar o Hive Metastore externo.

Metastore service address: o endereço deve corresponder ao endereço do serviço definido no principal do serviço do metastore. O endereço geralmente é um hostname.
Kerberos keytab file: o caminho para o arquivo keytab do Kerberos.
Kerberos principal: o principal no arquivo keytab usado para autenticação. Para encontrar o nome do principal, execute o comando
klist -kt <keytab_file>.