Kerberos クラウド上の認証 Data Virtualization

最終更新: 2025年3月17日
Kerberos クラウド上の認証 Data Virtualization

Apache HiveApache ImpalaApache Spark SQLKerberos 認証で接続するには、接続を作成する前に、 Kerberos 構成ファイルを Data Virtualization に提供する必要があります。

始める前に

IBM Cloud Satellite Connector 接続用のリモートエージェントがセットアップされている必要があります。 詳細については、 Data Virtualization リモートエージェントの設定 をご覧ください。

このタスクについて

Kerberos MITがネットワークセキュリティの問題を解決するために開発した、パスワード不要のコンピュータネットワークセキュリティ認証プロトコルです。 現在、多くの組織でシングルサインオン(SSO)に広く使用されており、主に認証とセキュリティという2つの機能により、ユーザーのIDデータをアプリケーションに安全に送信します。

Data Virtualization オンプレミスでは、、、 の 認証をサポートしており、ユーザーはデータソースが生成するキータブファイルまたは暗号化ファイルをアップロードする必要があります。 を使用して認証に使用されます。 Apache Hive Apache Impala Apache Spark SQL Kerberos Kerberos
注: Kerberos Data Virtualization ウェブクライアントでは、ファイルアップロードの制限により認証は利用できません。

手順

  1. Apache HiveApache ImpalaApache Spark SQL の各データソースについて、新しいテキストファイルを開き、以下の手順に従って構成ファイルを作成します。
    1. 以下の情報を新しいテキストファイルにコピー&ペーストし、三角括弧(< >)で示された変数を修正します。
      # To opt out of the system crypto-policies configuration of krb5, remove the
      # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
      includedir /etc/krb5.conf.d/
      
      [logging]
          default = FILE:/var/log/krb5libs.log
          kdc = FILE:/var/log/krb5kdc.log
          admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
          spake_preauth_groups = edwards25519
          dns_canonicalize_hostname = fallback
          qualify_shortname = ""
          default_realm = <DEFAULT_DOMAIN_REALM>
          default_ccache_name = KEYRING:persistent:%{uid}
      
      [realms]
       <KERBEROS_REALM> = {
           kdc = <KDC_SERVER>
           admin_server = <ADMIN_SERVER>
       }
      
      [domain_realm]
       <SUBDOMAIN_REALM> = <DOMAIN_REALM>
       <DOMAIN_TO_REALM> = <SUBDOMAIN_TO_REALM>
      以下の文章を例として考えてみましょう。
      # To opt out of the system crypto-policies configuration of krb5, remove the
      # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
      includedir /etc/krb5.conf.d/
      
      [logging]
          default = FILE:/var/log/krb5libs.log
          kdc = FILE:/var/log/krb5kdc.log
          admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
          spake_preauth_groups = edwards25519
          dns_canonicalize_hostname = fallback
          qualify_shortname = ""
          default_realm = EXAMPLE.COM
          default_ccache_name = KEYRING:persistent:%{uid}
      
      [realms]
       EXAMPLE.COM = {
           kdc = kerberos.example.com
           admin_server = kerberos.example.com
       }
      
      [domain_realm]
       .example.com = EXAMPLE.COM
       example.com = EXAMPLE.COM
    2. 構成ファイルを保存します。
      • Apache Hive の場合は、ファイルを hive_krb5.conf として保存します。
      • Apache Impala の場合は、ファイルを Impala_krb5.conf として保存します。
      • Apache Spark SQL の場合は、ファイルを spark_krb5.conf として保存します。
  2. リモートエージェントで datavirtualization.env ファイルを開きます。
    vi /root/dv_endpoint/datavirtualization.env
  3. datavirtualization.env ファイルの内容が以下の情報であることを確認してください。
    • JAVA_HOME: これは、お使いのマシンにJavaがインストールされているパスです。
    • DATAVIRTUALIZATION_INSTALL: これは datavirtualization.env のファイルパスです。
    • KRB5_CONFIG: これは、新しく作成した krb5.conf 構成ファイルのファイルパスです。
    以下は、お客様のファイルに含まれる可能性のあるテキストの例です。
    • JAVA_HOME="/root/jdk-21.0.3+9"
    • DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
    • KRB5_CONFIG=/etc/hive_krb5.conf
  4. このストアドプロシージャのパラメータを置き換えてから、 [SQLの実行]で実行します。 さらに、 <Data_source>HiveImpala 、または SparkSQL に置き換えてください。
    call dvsys.setrdbcx('<Data_source>', '<host_name>', <db_port>, '<database_name>', '', '', '', <use_SSL>, <validate_cert>, '', '<SSL_certificate>', '<RemoteAgentName:Port>', 'UserPrincipal=<User_principal>,ServicePrincipal=<Service_principal>,Keytab=<Keytab_info>', ?, ?, ?)

    パラメータの詳細については、 setRdbcX ストアドプロシージャ(バリエーション2) を参照してください。

    以下は、ストアドプロシージャの例です。
    call dvsys.setrdbcx('SparkSQL', 'krbds-hive.fyre.ibm.com', 10000, 'sparkdb01', '', '', '', 0, 0, '', '', 'RA_FOR_KRB:6415', 'UserPrincipal=spark/xxxx.fyre.ibm.com@IBM.COM,ServicePrincipal=hive/xxx.fyre.ibm.com@IBM.COM,Keytab=XXXXXXEQAQcheKq6W+vSDlrJ1GSZAITwAAAAIAAABMAAIAB0lCTS5DT00ABXNwYXJrABdrcmJkcy1oaXZlLmZ5cmUuaWJtLmNvbQAAAAFlHD9NAgAXABBTo30Yd3yTHr8rzj8V9lGKAAAAAgAAAFwAAgAHSUJNLkNPTQAFc3BhcmsAF2tyYmRzLWhpdmUuZnlyZS5pYm0uY29tAAAAAWUcP00CABoAIJNL0pQT6SkPC+JfILB+yq3rcCQo/6uRfLuBSPUmlS6XAAAAAgAAAEwAAgAHSUJNLkNPTQAFc3BhcmsAF2tyYmRzLWhpdmUuZnlyZS5pYm0uY29tAAAAAWUcP00CABkAEAa0R7FrW9AX+Q4GfmCLiG4AAAAC', ?, ?, ?)
    
    
  5. 「Results」タブを選択し 、「Output value」列を確認して、ストアドプロシージャが成功したかどうかを確認します。
    • 正常に終了した場合は、1が返されます。
    • 出力に失敗した場合は、0という整数が返されます。 もう一度、前段階の構成手順を確認してください。