Kerberos authentifizierung in der Cloud für Data Virtualization

Um eine Verbindung zu Apache Hive, Apache Impala und Apache Spark SQL mit Kerberos -Authentifizierung herzustellen, müssen Sie die Kerberos -Konfigurationsdatei an Data Virtualization, bevor Sie die Verbindung herstellen.

Vorbereitende Schritte

Sie müssen einen Remote-Agenten mit einer IBM Cloud Satellite -Connector-Verbindung einrichten. Weitere Informationen finden Sie unter "Konfigurieren des Data Virtualization Remote Agent ".

Informationen zu dieser Task

Kerberos ist ein passwortloses Sicherheitsauthentifizierungsprotokoll für Computernetzwerke, das vom MIT entwickelt wurde, um Probleme der Netzwerksicherheit zu lösen. Es wird heute von vielen Organisationen für Single-Sign-On (SSO) verwendet und überträgt Benutzerdaten sicher an Anwendungen mit zwei Hauptfunktionen: Authentifizierung und Sicherheit.

Data Virtualization die lokale Unterstützung Kerberos Authentifizierung für Apache Hive, Apache Impala und Apache Spark SQL und es erfordert, dass der Benutzer eine Keytab-Datei oder eine verschlüsselte Datei hochlädt, die von der Datenquelle generiert wird und für die Authentifizierung über Kerberos verwendet wird.
Hinweis : Die Authentifizierung über Kerberos ist im Data Virtualization webclient aufgrund einer Beschränkung beim Datei-Upload nicht verfügbar.

Vorgehensweise

  1. Öffnen Sie für jede Ihrer Datenquellen Apache Hive, Apache Impala und Apache Spark SQL eine neue Textdatei und führen Sie dann die folgenden Schritte aus, um eine Konfigurationsdatei zu erstellen.
    1. Kopieren Sie die folgenden Informationen und fügen Sie sie in Ihre neue Textdatei ein. Ändern Sie dann die Variablen, die durch die spitzen Klammern (<) gekennzeichnet sind.
      # 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>
      Betrachten Sie den folgenden Text als Beispiel.
      # 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. Speichern Sie die Konfigurationsdatei.
      • Für Apache Hive speichern Sie die Datei als hive_krb5.conf.
      • Für Apache Impala speichern Sie die Datei als Impala_krb5.conf.
      • Für Apache Spark SQL speichern Sie die Datei als spark_krb5.conf.
  2. Öffnen Sie die Datei datavirtualization.env in Ihrem Remote-Agenten.
    vi /root/dv_endpoint/datavirtualization.env
  3. Überprüfen Sie, ob der Inhalt der Datei datavirtualization.env die folgenden Informationen enthält.
    • JAVA_HOME: Dies ist der Pfad, über den Java auf Ihrem Computer installiert ist.
    • DATAVIRTUALIZATION_INSTALL: Dies ist der Dateipfad für datavirtualization.env.
    • KRB5_CONFIG: Dies ist der Dateipfad Ihrer neu erstellten krb5.conf -Konfigurationsdatei.
    Das Folgende ist ein Beispiel für den Text, den Ihre Datei enthalten könnte.
    • JAVA_HOME="/root/jdk-21.0.3+9"
    • DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
    • KRB5_CONFIG=/etc/hive_krb5.conf
  4. Ersetzen Sie die Parameter in dieser gespeicherten Prozedur und führen Sie sie dann in "SQL ausführen" aus. Ersetzen Sie außerdem <Data_source> durch Hive, Impala oder 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>', ?, ?, ?)

    Weitere Informationen zu den Parametern finden Sie unter setRdbcX gespeicherte Prozedur (Variante 2 ).

    Nachfolgend finden Sie ein Beispiel für die gespeicherte Prozedur.
    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. Überprüfen Sie, ob die gespeicherte Prozedur erfolgreich war, indem Sie die Registerkarte "Ergebnisse" auswählen und dann die Spalte "Ausgabewert" überprüfen.
    • Ein erfolgreicher Output hat den ganzzahligen Wert 1.
    • Ein erfolgloser Ausgang hat den ganzzahligen Wert 0. Überprüfen Sie die vorherigen Konfigurationsschritte noch einmal.