Kerberos autenticação na nuvem para Data Virtualization

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.

Antes de iniciar

Você deve ter um agente remoto configurado com a conexão do conector IBM Cloud Satellite . Para obter mais informações, consulte Configuração do agente remoto Data Virtualization.

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

  1. 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.
    1. 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
    2. 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.
  2. Abra o arquivo datavirtualization.env em seu agente remoto.
    vi /root/dv_endpoint/datavirtualization.env
  3. 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
  4. 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', ?, ?, ?)
    
    
  5. 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.