Para se conectar a Apache Hive, Apache Impala e Apache Spark SQL com a autenticação Kerberos , você deve fornecer o arquivo de configuração Kerberos para Data Virtualization antes de criar a conexão.
Sobre essa tarefa
Kerberos é um protocolo de autenticação de segurança de rede de computadores sem senha, criado pelo MIT para resolver problemas de segurança de rede. Ele é amplamente usado para logon único (SSO) por muitas organizações atualmente, transmitindo com segurança os dados de identidade do usuário para aplicativos com duas funções principais: autenticação e segurança.
Data Virtualization no local, é compatível com a autenticação Kerberos para
Apache Hive,
Apache Impala e
Apache Spark SQL e exige que o usuário carregue um arquivo keytab ou um arquivo criptografado gerado pela fonte de dados, que é usado para autenticação usando Kerberos.
Observação: a autenticação Kerberos não está disponível no Data Virtualization cliente da Web devido a uma restrição de upload de arquivo.
Procedimento
- Para cada uma das fontes de dados Apache Hive, Apache Impala e Apache Spark SQL , abra um novo arquivo de texto e conclua as etapas a seguir para criar um arquivo de configuração.
- Copie e cole as informações a seguir em seu novo arquivo de texto e, em seguida, modifique as variáveis, conforme indicado pelos colchetes triangulares (< >).
# 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>
Considere o texto a seguir como um exemplo.
# 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
- Salve o arquivo de configuração.
- Para Apache Hive, salve o arquivo como hive_krb5.conf.
- Para Apache Impala, salve o arquivo como Impala_krb5.conf.
- Para Apache Spark SQL, salve o arquivo como spark_krb5.conf.
- Abra o arquivo datavirtualization.env em seu agente remoto.
vi /root/dv_endpoint/datavirtualization.env
- Verifique se o conteúdo do arquivo datavirtualization.env contém as seguintes informações.
JAVA_HOME: Este é o caminho onde o Java está instalado em seu computador.
DATAVIRTUALIZATION_INSTALL: Esse é o caminho do arquivo para datavirtualization.env.
KRB5_CONFIG: Esse é o caminho do arquivo de configuração recém-criado no site krb5.conf .
A seguir, um exemplo do texto que seu arquivo pode conter.
JAVA_HOME="/root/jdk-21.0.3+9"
DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
KRB5_CONFIG=/etc/hive_krb5.conf
- Substitua os parâmetros nesse procedimento armazenado e, em seguida, execute-o em Run SQL. Além disso, substitua
<Data_source> por Hive, Impala ou 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>', ?, ?, ?)
Para obter mais informações sobre os parâmetros, consulte setRdbcX stored procedure (Variação 2).
A seguir, um exemplo do procedimento armazenado.
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', ?, ?, ?)
- Verifique se o procedimento armazenado foi bem-sucedido selecionando a guia Resultados e, em seguida, verificando a coluna Valor de saída.
- Uma saída bem-sucedida tem um número inteiro de 1.
- Uma saída malsucedida tem um número inteiro de 0. Verifique novamente as etapas de configuração anteriores.