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.
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
- 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.
- 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
- 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.
- Aprire il file datavirtualization.env nel proprio agente remoto.
vi /root/dv_endpoint/datavirtualization.env
- 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
- 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', ?, ?, ?)
- 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.