Kerberos autenticazione su cloud per Data Virtualization

Per collegarsi a Apache Hive, Apache Impala e Apache Spark SQL con autenticazione Kerberos , è necessario fornire il file di configurazione Kerberos a Data Virtualization prima di creare la connessione.

Prima di iniziare

Devi avere un Remote Agent configurato con un collegamento al connettore dell IBM Cloud Satellite . Per ulteriori informazioni, vedere Configurazione dell'agente remoto di Data Virtualization.

Informazioni su questa attività

Kerberos è un protocollo di autenticazione per la sicurezza delle reti informatiche senza password creato dal MIT per risolvere i problemi di sicurezza delle reti. È ampiamente utilizzato per il single-sign-on (SSO) da molte organizzazioni oggi, trasmettendo in modo sicuro i dati di identità dell'utente alle applicazioni con due funzioni principali: autenticazione e sicurezza.

Data Virtualization on-premises supporta l'autenticazione Kerberos per Apache Hive, Apache Impala e Apache Spark SQL e richiede all'utente di caricare un file keytab o un file crittografato generato dall'origine dati, utilizzato per l'autenticazione tramite Kerberos.
Nota : l'autenticazione Kerberos non è disponibile nel Data Virtualization client web a causa di una restrizione di caricamento dei file.

Procedura

  1. Per ciascuna delle fonti di dati Apache Hive, Apache Impala e Apache Spark SQL , aprire un nuovo file di testo e quindi completare i seguenti passaggi per creare un file di configurazione.
    1. Copia e incolla le seguenti informazioni nel tuo nuovo file di testo, quindi modifica le variabili, come indicato dalle parentesi triangolari (< >).
      # 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>
      Considera il seguente testo come esempio.
      # 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. Salva il file di configurazione.
      • Per l' Apache Hive, salvare il file come hive_krb5.conf.
      • Per l' Apache Impala, salvare il file come Impala_krb5.conf.
      • Per l' Apache Spark SQL, salvare il file come spark_krb5.conf.
  2. Aprire il file datavirtualization.env nel proprio agente remoto.
    vi /root/dv_endpoint/datavirtualization.env
  3. Verificare che il contenuto del file " datavirtualization.env " contenga le seguenti informazioni.
    • JAVA_HOME: Questo è il percorso in cui Java è installato sul computer.
    • DATAVIRTUALIZATION_INSTALL: Questo è il percorso del file per datavirtualization.env.
    • KRB5_CONFIG: Questo è il percorso del file di configurazione di krb5.conf appena creato.
    Quello che segue è un esempio del testo che potrebbe essere contenuto nel tuo file.
    • JAVA_HOME="/root/jdk-21.0.3+9"
    • DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
    • KRB5_CONFIG=/etc/hive_krb5.conf
  4. Sostituisci i parametri in questa procedura memorizzata e poi eseguila in Esegui SQL. Inoltre, sostituire <Data_source> con Hive, Impala o 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>', ?, ?, ?)

    Per ulteriori informazioni sui parametri, consultare la stored procedure setRdbcX (Variante 2 ).

    Quello che segue è un esempio della procedura memorizzata.
    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. Verificare se la procedura memorizzata ha avuto successo selezionando la scheda Risultati e controllando la colonna Valore di output.
    • Un output di successo ha un numero intero pari a 1.
    • Un output non riuscito ha un numero intero pari a 0. Verificare nuovamente i passaggi precedenti della configurazione.