Amazon EMR 認証に使用している期限切れの Kerberos チケットを更新するにはどうすればよいですか?

所要時間2分
0

Amazon EMR クラスターでの認証に Kerberos を使用しています。Kerberos チケットの有効期限が切れています。クラスターでコマンドを実行 (Run command) しようとすると、次のようなエラーメッセージが表示されます。 19/11/04 22:12:16 WARN ipc.Client: サーバーに接続しようとする間に例外が発生しました: java.io.IOException: javax.security.sasl.SaslException: GSS 開始失敗 [原因は GSSException: 有効な認証情報が提供されていません (メカニズムレベル: Kerberos tgt が見つかりませんでした)] ls: ローカル例外で失敗しました: java.io.IOException: javax.security.sasl.SaslException: GSS 開始失敗 [原因は GSSException: 有効な認証情報が提供されていません (メカニズムレベル: Kerberos tgt が見つかりませんでした)]; ホスト 詳細:ローカルホストは:「ip-xxx-x-x.ec2.internal/192.x.x.x.x」、送信先ホストは:「ip-xxx-x-x.ec2.internal」: 8020;

簡単な説明

期限切れの Kerberos チケットを更新するには、次の手順で操作します。

1.    klist コマンドを実行して、キーディストリビューションセンター (KDC) によって発行された認証情報を表示します。

2.    新しいチケットを取得するには、kinit コマンドを実行し、認証情報を含む keytab ファイルを指定するか、プリンシパルのパスワードを入力します。

解決方法

1.    SSH を使用してマスターノードに接続します。

2.    チケットの有効期限が切れていることを確認するには、 klist コマンドを実行します。このコマンドは、認証情報キャッシュをチェックします。認証情報がキャッシュされていない場合、チケットは期限切れです。

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

3.    Kerberos プリンシパル名を確認するには、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.    Kerberos チケットを更新するには、 kinit を実行し、キータブファイルとプリンシパルの両方を指定します。

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

5.    認証情報がキャッシュされていることを確認します。

[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.    HDFS コマンドを実行して、Kerberos チケットが機能していることを確認します。

[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

関連情報

Kerberos 認証の使用

AWS公式
AWS公式更新しました 3年前