¿Cómo puedo renovar un ticket de Kerberos caducado que utilizo para la autenticación de Amazon EMR?

2 minutos de lectura
0

Utilizo Kerberos para la autenticación en un clúster de Amazon EMR. Mi ticket de Kerberos ha caducado. Cuando intento ejecutar comandos en el clúster, aparece un mensaje de error similar al siguiente: 19/11/04 22:12:16 WARN ipc.Client: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)] ls: Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: "ip-xxx-x-x-x.ec2.internal/192.x.x.x";destination host is: "ip-xxx-x-x-x.ec2.internal":8020;

Breve descripción

Haga lo siguiente para renovar un ticket de Kerberos caducado:

1.    Ejecute el comando klist para mostrar las credenciales emitidas por el centro de distribución de claves (KDC).

2.    Para obtener un nuevo ticket, ejecute el comando kinit y especifique un archivo keytab que contenga las credenciales o introduzca la contraseña de su entidad principal.

Resolución

1.    Conéctese al nodo maestro mediante SSH.

2.    Para confirmar que el ticket ha caducado, ejecute el comando klist. Este comando comprueba si hay una caché de credenciales. Si no hay ninguna credencial almacenada en la caché, el ticket ha caducado.

[hadoop@ip-xxx-x-x-xxx ~]$ klist
klist: No credentials cache found (filename: /tmp/krb5cc_498)

3.    Para confirmar el nombre de la entidad principal de Kerberos, enumere el contenido del archivo keytab:

[hadoop@ip-xxx-x-x-xxx ~]$ klist -kt /etc/hadoop.keytab
Keytab name: FILE:/etc/hadoop.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   2 07/04/2019 21:48:46 hadoop/ip-xxx-x-x-xxx.ec2.internal@EC2.INTERNAL
   2 07/04/2019 21:48:46 hadoop/ip-xxx-x-x-xxx.ec2.internal@EC2.INTERNAL
   2 07/04/2019 21:48:46 hadoop/ip-xxx-x-x-xxx.ec2.internal@EC2.INTERNAL

4.    Para renovar el ticket de Kerberos, ejecute kinit y especifique tanto el archivo keytab como la entidad principal:

[hadoop@ip-xxx-x-x-xxx ~]$ kinit -kt /etc/hadoop.keytab hadoop/ip-xxx-x-x-xxx.ec2.internal@EC2.INTERNAL

5.    Confirme que las credenciales estén almacenadas en la caché:

[hadoop@ip-xxx-x-x-xxx ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_498
Default principal: hadoop/ip-xxx-x-x-xxx.ec2.internal@EC2.INTERNAL
Valid starting       Expires              Service principal
11/04/2019 22:13:47  11/05/2019 08:13:47  krbtgt/EC2.INTERNAL@EC2.INTERNAL
renew until 11/06/2019 22:13:47

6.    Ejecute un comando HDFS para confirmar que el ticket Kerberos funciona:

[hadoop@ip-XXX-XX-XX-XXX ~]$ hdfs dfs -ls /
Found 4 items
drwxr-xr-x   - hdfs hadoop          0 2019-11-05 22:45 /apps
drwxrwxrwt   - hdfs hadoop          0 2019-11-05 22:46 /tmp
drwxr-xr-x   - hdfs hadoop          0 2019-11-05 22:45 /user
drwxr-xr-x   - hdfs hadoop          0 2019-11-05 22:45 /var

Información relacionada

Use Kerberos authentication

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años