Kerberos の使用
Kerberos
Kerberos でSpark SQL への認証を行うには、AuthScheme をKERBEROS に設定します。
Kerberos 経由でSpark SQL への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。
Kerberos チケットの取得
Kerberos チケットは、依頼者のID を認証するために使用されます。正式なログイン / パスワードの代わりにチケットを使用することで、パスワードをローカルに保存したり、ネットワーク経由で送信したりする必要がなくなります。 ユーザーは、ローカルコンピュータでログインするか、 コマンドプロンプトでkinit USER と入力するたびに、再認証されます(チケットはリフレッシュされます)。connector は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。
MIT Kerberos 資格情報キャッシュファイル
このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。
このオプションは、KRB5CCNAME がシステムに作成されている必要があります。
MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:
- お使いの環境にKRB5CCNAME 変数が存在することを確認します。
- KRB5CCNAME を資格情報キャッシュファイルを指すパスに設定します。(例えば、C:\krb_cache\krb5cc_0 または/tmp/krb5cc_0 です。)資格情報キャッシュファイルは、MIT Kerberos チケットマネージャーを使用してチケットを生成するときに作成されます。
- チケットを取得するには:
- MIT Kerberos チケットマネージャーアプリケーションを開きます。
- Get Ticket をクリックします。
- プリンシパル名とパスワードを入力します。
- OK をクリックします。
チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。
connector はキャッシュファイルを使用してSpark SQL に接続するためのKerberos チケットを取得します。
Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、connector は指定されたキャッシュファイルを使用してSpark SQL に接続するためのKerberos チケットを取得します。
Keytab ファイル
お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。
この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。
User およびPassword
お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。
この方法を使用するには、User およびPassword プロパティを、Spark SQL での認証に使用するユーザー / パスワードの組み合わせに設定します。
クロスレルム認証の有効化
より複雑なKerberos 環境では、複数のレルムおよびKDC サーバーが使用されるクロスレルム認証が必要になる場合があります。例えば、1つのレルム / KDC がユーザー認証に使用され、別のレルム / KDC がサービスチケットの取得に使用される場合です。このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。