Apache Ranger™ e Ranger KMS

Este manual é um guia de instalação do Apache Ranger™ e Ranger KMS.

Pré-requisitos

Instale os pré-requisitos para o procedimento de build do Ranger.

Maven

  1. Faça o download da última versão do Maven em Downloading Apache Maven ou:

    cd /usr/local
    wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
    tar -xvf apache-maven-<Version>-bin.tar.gz
  2. Edite o arquivo que carrega as variáveis de ambiente do GHDP:

    vim /etc/profile.d/hadoop_setup.sh
    ...
    # MAVEN (to Ranger)
    export M2_VERSION=$(ls -A /usr/local/ | grep apache-maven- | grep -v .gz | awk -F '-' '{print $3}')
    export M2_HOME=/usr/local/apache-maven-$M2_VERSION
    export M2=$M2_HOME/bin
    ...
  3. Verifique se a instalação ocorreu corretamente:

    mvn -version

Outros requisitos

Instale os outros requisitos necessários:

yum -y install git
yum -y install gcc
yum -y install g++
yum install bzip2 -y
yum -y install java-1.8.0-openjdk-devel
yum -y install python3

Build do Ranger

  1. Baixe o source do Ranger mais atualizado que se adeque à versão do seu OS e Java, no site oficial do Ranger ou:

    wget https://dlcdn.apache.org/ranger/2.3.0/apache-ranger-2.3.0.tar.gz
    tar -xvf apache-ranger-2.3.0.tar.gz
    cd ./apache-ranger-2.3.0
  2. Faça o build do Ranger utilizando o Maven:

    mvn clean compile package install
  3. Caso ocorra erro de acesso inseguro, por conta de certificado vencido em algum link de repositório, execute o build da seguinte forma:

    mvn clean compile package install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
  4. Finalize o procedimento de build com o seguinte comando:

    mvn eclipse:eclipse
  5. Ao final, será gerada uma pasta chamada target com todos os componentes do Ranger.

    cd ./target
    ls -l
    
    total 1328820
    drwxr-xr-x. 2 root root      4096 Dec 15 14:34 antrun
    -rw-r--r--. 1 root root        87 Dec 15 14:34 checkstyle-cachefile
    -rw-r--r--. 1 root root      9216 Dec 15 14:34 checkstyle-checker.xml
    -rw-r--r--. 1 root root     20369 Dec 15 14:34 checkstyle-header.txt
    -rw-r--r--. 1 root root        81 Dec 15 14:34 checkstyle-result.xml
    -rw-r--r--. 1 root root      1144 Dec 15 14:34 checkstyle-suppressions.xml
    drwxr-xr-x. 3 root root      4096 Dec 15 14:34 maven-shared-archive-resources
    -rw-r--r--. 1 root root 518758611 Dec 15 14:34 ranger-2.3.0-admin.tar.gz
    -rw-r--r--. 1 root root  41566842 Dec 15 14:34 ranger-2.3.0-atlas-plugin.tar.gz
    -rw-r--r--. 1 root root  36041635 Dec 15 14:34 ranger-2.3.0-elasticsearch-plugin.tar.gz
    -rw-r--r--. 1 root root  36975553 Dec 15 14:34 ranger-2.3.0-hbase-plugin.tar.gz
    -rw-r--r--. 1 root root  35537921 Dec 15 14:34 ranger-2.3.0-hdfs-plugin.tar.gz
    -rw-r--r--. 1 root root  35327622 Dec 15 14:34 ranger-2.3.0-hive-plugin.tar.gz
    -rw-r--r--. 1 root root  54580246 Dec 15 14:34 ranger-2.3.0-kafka-plugin.tar.gz
    drwxr-xr-x. 7 root root      4096 Dec 15 14:34 ranger-2.3.0-kms
    -rw-r--r--. 1 root root 195191513 Dec 15 14:34 ranger-2.3.0-kms.tar.gz
    -rw-r--r--. 1 root root  49243221 Dec 15 14:34 ranger-2.3.0-knox-plugin.tar.gz
    -rw-r--r--. 1 root root  34477047 Dec 15 14:34 ranger-2.3.0-kylin-plugin.tar.gz
    -rw-r--r--. 1 root root     34007 Dec 15 14:34 ranger-2.3.0-migration-util.tar.gz
    -rw-r--r--. 1 root root  41233187 Dec 15 14:34 ranger-2.3.0-ozone-plugin.tar.gz
    -rw-r--r--. 1 root root  55205632 Dec 15 14:34 ranger-2.3.0-presto-plugin.tar.gz
    -rw-r--r--. 1 root root  15803444 Dec 15 14:34 ranger-2.3.0-ranger-tools.tar.gz
    -rw-r--r--. 1 root root    905882 Dec 15 14:34 ranger-2.3.0-schema-registry-plugin.jar
    -rw-r--r--. 1 root root     37302 Dec 15 14:34 ranger-2.3.0-solr_audit_conf.tar.gz
    -rw-r--r--. 1 root root     40595 Dec 15 14:34 ranger-2.3.0-solr_audit_conf.zip
    -rw-r--r--. 1 root root  36130187 Dec 15 14:34 ranger-2.3.0-solr-plugin.tar.gz
    -rw-r--r--. 1 root root  34715214 Dec 15 14:34 ranger-2.3.0-sqoop-plugin.tar.gz
    -rw-r--r--. 1 root root   6315989 Dec 15 14:34 ranger-2.3.0-src.tar.gz
    -rw-r--r--. 1 root root  49575156 Dec 15 14:34 ranger-2.3.0-storm-plugin.tar.gz
    -rw-r--r--. 1 root root  30112906 Dec 15 14:34 ranger-2.3.0-tagsync.tar.gz
    -rw-r--r--. 1 root root  19205167 Dec 15 14:34 ranger-2.3.0-usersync.tar.gz
    -rw-r--r--. 1 root root  33381584 Dec 15 14:34 ranger-2.3.0-yarn-plugin.tar.gz
    -rw-r--r--. 1 root root    196038 Dec 15 14:34 rat.txt
    -rw-r--r--. 1 root root         5 Dec 15 14:34 version

Instalação do Solr

Consulte no Site Oficial do Solr qual a melhor versão do Solr para seu sistema.

  1. Acesse a pasta de build do Ranger, conforme efetuado no tópico anterior.

  2. Dentro dessa pasta, acesse a pasta do instalador do Solr, em que ele será pré-configurado para uso do Ranger:

    cd ~/apache-ranger-2.3.0
    cd ./security-admin/contrib/solr_for_audit_setup/
  3. Crie a pasta do Solr conforme a versão escolhida:

    mkdir -p /usr/gdp/hadoop/solr/8.11.2/
  4. Edite o arquivo install.properties:

    vim install.properties
    ...
    SOLR_INSTALL=true
    SOLR_DOWNLOAD_URL=https://dlcdn.apache.org/lucene/solr/8.11.2/solr-8.11.2.tgz
    SOLR_LOG_FOLDER=/var/log/hadoop/solr/ranger_audits
    ...
    
    :wq
    sed -i 's/\/opt\/solr/\/usr\/gdp\/hadoop\/solr\/8.11.2/g' install.properties
  5. Execute o script setup.sh e verifique os procedimentos de start conforme indicado pelo log de instalação:

    chmod +x setup.sh
    ./setup.sh
    
    less /usr/gdp/hadoop/solr/8.11.2/ranger_audit_server/install_notes.txt
  6. Inicie o Solr:

    /usr/gdp/hadoop/solr/8.11.2/ranger_audit_server/scripts/start_solr.sh

Instalação e configuração do Ranger Admin

  1. Crie a pasta do Ranger Admin:

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-admin
  2. Acesse a pasta target, gerada no procedimento de build, e descompacte o arquivo ranger-2.3.0-admin.tar.gz:

    cd ./apache-ranger-2.3.0/target
    tar -xvf ranger-2.3.0-admin.tar.gz
  3. Copie todos os arquivos dentro da pasta descompactada para a pasta ranger-admin.

    cd ranger-2.3.0-admin
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-admin/
  4. No banco de dados, crie o usuário rangerdba da seguinte forma:

    mysql -uroot -p
    SET GLOBAL validate_password_policy=LOW;
    
    CREATE USER 'rangerdba'@'localhost' IDENTIFIED BY 'rangerdba';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'localhost';
    
    CREATE USER 'rangerdba'@'%' IDENTIFIED BY 'rangerdba';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'%';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'localhost' WITH GRANT OPTION;
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
  5. Caso não esteja instalado, instale o mysql-connector-java e verifique se o arquivo mysql-connector-java.jar está na pasta correta:

    yum install mysql-connector-java
    ls /usr/share/java/mysql-connector-java.jar
  6. Crie a pasta de logs para o Ranger Admin:

    mkdir -p /var/log/hadoop/ranger/ranger-admin
  7. Na pasta do Ranger Admin, edit o arquivo install.properties:

    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-admin/
    vim install.properties
    ...
    db_root_user=rangerdba
    db_root_password=rangerdba
    db_host=localhost
    
    db_name=ranger
    db_user=rangerdba
    db_password=rangerdba
    
    rangerAdmin_password=Griaule.123
    rangerTagsync_password=Griaule.123
    rangerUsersync_password=Griaule.123
    keyadmin_password=Griaule.123
    
    audit_solr_urls=http://localhost:6083/solr/ranger_audits
    
    policymgr_supportedcomponents=hbase,hdfs,kafka,kms
    
    authentication_method=UNIX
    remoteLoginEnabled=true
    authServiceHostName=localhost
    authServicePort=5151
    
    hadoop_conf=/etc/hadoop/hdfs/conf/
    
    RANGER_ADMIN_LOG_DIR=/var/log/hadoop/ranger/ranger-admin
    ...
  8. Execute o script de setup:

    ./setup.sh
  9. Adicione permissões para as pastas do Ranger e logs e adicione o usuário ranger no grupo hadoop.

    chown -R ranger: /usr/gdp/hadoop/ranger/
    chown -R ranger: /var/log/hadoop/ranger/
    usermod -a -G hadoop ranger
  10. Para inicializar o Ranger Admin utilize o comando:

    ranger-admin start
  11. Acesse o link e digite o usuário admin e a senha pré-configurada.

    http://<my_ip>:6080/

Nesse contexto, a senha pré-configurada sempre será Griaule.123.

Instalação do Ranger UserSync

  1. Na pasta de build do Ranger, crie uma pasta para o Ranger UserSync chamada ranger-usersync, descompacte o arquivo tar.gz referente à aplicação e copie todos os arquivos para a pasta criada:

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-usersync
    tar -xvf ranger-2.3.0-usersync.tar.gz
    cd ranger-2.3.0-usersync
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-usersync
  2. Crie a pasta de logs e conceda acesso ao usuário ranger às pastas /usr/gdp/hadoop/ranger/ e /var/log/hadoop/ranger/:

    mkdir -p /var/log/hadoop/ranger/ranger-usersync
    chown -R ranger: /usr/gdp/hadoop/ranger/
    chown -R ranger: /var/log/hadoop/ranger/
  3. Na pasta ranger-usersync, edite o arquivo install.properties da seguinte forma:

    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-usersync
    vim install.properties
    ...
    POLICY_MGR_URL = http://<ip_addr>:6080
    
    SYNC_SOURCE = unix
    
    SYNC_INTERVAL = 5
    
    rangerUsersync_password=Griaule.123 # mesma senha que foi definida pra ele no ranger-admin
    
    hadoop_conf=/etc/hadoop/hdfs/conf
    
    logdir=/var/log/hadoop/ranger/ranger-usersync
    ...
  4. Altere o path padrão da aplicação de /etc/ranger para /usr/gdp/hadoop/ranger/2.3.0/ranger-usersync/ranger:

    sed -i 's/\/etc\/ranger/\/usr\/gdp\/hadoop\/ranger\/2.3.0\/ranger-usersync\/ranger/g' install.properties
  5. Execute o script setup.sh:

    ./setup.sh
  6. Altere a configuração para habilitar a sincronização do UserSync:

    vim /usr/gdp/hadoop/ranger/2.3.0/ranger-usersync/conf/ranger-ugsync-site.xml
    <property>
      <name>ranger.usersync.enabled</name>
      <value>true</value>
    </property>
  7. Após a instalação com resultado successfully, inicialize o serviço utilizando o script ranger-usersync-services.sh:

    # Inicialização:
    ./ranger-usersync-services.sh start
    
    # Paralisação:
    ./ranger-usersync-services.sh stop

Instalação de Plugins

Os plugins não são necessários para o funcionamento do Ranger KMS. São apenas recursos disponíveis para auditoria dos recursos do Hadoop.

HDFS Plugin

  1. Crie a pasta ranger-hdfs-plugin conforme a estrutura do GHDP:

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
  2. Na pasta de build do Ranger, descompacte o arquivo ranger-2.3.0-hdfs-plugin.tar.gz e copie todos os arquivos para a pasta criada anteriormente:

    cd ./apache-ranger-2.3.0/target/
    tar -xvf ranger-2.3.0-hdfs-plugin.tar.gz
    cd ranger-2.3.0-hdfs-plugin
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
  3. Na pasta do plugin, edite o arquivo install.properties:

    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
    vim install.properties
    ...
    POLICY_MGR_URL=http://<host_addrs>:6080
    
    REPOSITORY_NAME=hadoopdev
    
    COMPONENT_INSTALL_DIR_NAME=/usr/gdp/hadoop/hdfs/3.2.4/
    
    XAAUDIT.SOLR.ENABLE = true
    XAAUDIT.SOLR.URL = http://<host_addrs>:6083/solr/ranger_audits
    XAAUDIT.SOLR.USER = NONE
    XAAUDIT.SOLR.PASSWORD = NONE
    XAAUDIT.SOLR.ZOOKEEPER = NONE
    XAAUDIT.SOLR.FILE_SPOOL_DIR = /var/log/hadoop/hdfs/audit/solr/spool
    ...
  4. Caso exista mais de um NameNode, crie a mesma estrutura de pastas e copie todo o conteúdo para os demais NameNodes com scp:

    Esse procedimento deve ser realizado antes da habilitação do plugin.

    # NameNode2
    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
    
    # NameNode1
    scp -r * root@localhost:/usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin/
    
    # NameNode2
    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
    ls -l
  5. Habilite o plugin executando o script enable-hdfs-plugin.sh:

    ./enable-hdfs-plugin.sh
  6. Conecte no Ranger Admin UI. Na tela principal, em HDFS, clique no botão + e preencha os campos com as seguintes informações:

    • Service Name: hadoopdev

    • Display Name: hadoopdev

    • Username: hadoop (Usuário UNIX)

    • Password: <senha criada para o usuário hadoop no UNIX>

    • NameNode URL: hdfs://localhost:50070

    • Authentication Type: Simple

  7. Mantenha o restante das configurações inalteradas e clique no botão Add.

  8. Reinicie o cluster.

HBase Plugin

  1. Crie a pasta ranger-hbase-plugin conforme a estrutura do GHDP.

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin
  2. Na pasta de build do Ranger, descompacte o arquivo ranger-2.3.0-hbase-plugin.tar.gz e copie todos os arquivos para a pasta criada anteriormente:

    cd ./apache-ranger-2.3.0/target/
    tar -xvf ranger-2.3.0-hbase-plugin.tar.gz
    cd ranger-2.3.0-hbase-plugin
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin
  3. Na pasta do plugin, edite o arquivo install.properties:

    vim install.properties
    ...
    POLICY_MGR_URL=http://localhost:6080
    
    REPOSITORY_NAME=hbasedev
    
    COMPONENT_INSTALL_DIR_NAME=/usr/gdp/hadoop/hbase/2.5.1
    
    XAAUDIT.SOLR.ENABLE=true
    XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
    XAAUDIT.SOLR.USER=NONE
    XAAUDIT.SOLR.PASSWORD=NONE
    XAAUDIT.SOLR.ZOOKEEPER=NONE
    XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hadoop/hbase/audit/solr/spool
    
    XAAUDIT.SOLR.IS_ENABLED=true
    XAAUDIT.SOLR.MAX_QUEUE_SIZE=1
    XAAUDIT.SOLR.MAX_FLUSH_INTERVAL_MS=1000
    XAAUDIT.SOLR.SOLR_URL=http://localhost:6083/solr/ranger_audits
    ...
  4. Crie a mesma estrutura de pastas e copie todo o conteúdo para o Master e Regional:

    Esse procedimento deve ser realizado antes da habilitação do plugin.

    # node2 & node3
    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin
    
    # node1
    scp -r * root@localhost:/usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin/
    scp -r * root@localhost:/usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin/
    
    # node2 & node3
    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin
    ls -l
  5. Crie um usuário hbase e habilite o plugin executando o script enable-hbase-plugin.sh:

    useradd hbase
    passwd hbase
    ./enable-hbase-plugin.sh
  6. Conecte no Ranger Admin UI. Na tela principal, em HDFS, clique no botão + e preencha os campos com as seguintes informações:

    • Service Name: hadoopdev

    • Display Name: hadoopdev

    • Username: hbase (Usuário UNIX)

    • Password: <senha criada para o usuário hbase no UNIX>

    • hadoop.security.authentication: Simple

    • hbase.security.authentication: Simple

    • hbase.zookeeper.property.clientPort: 2181

    • hbase.zookeeper.quorum: ,,

    • zookeeper.znode.parent: /hbase-unsecure

  7. Mantenha o restante das configurações inalteradas e clique no botão Add.

  8. Reinicie o cluster.

Kafka Plugin

  1. Crie a pasta ranger-kafka-plugin conforme a estrutura do GHDP:

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
  2. Na pasta de build do Ranger, descompacte o arquivo ranger-2.3.0-kafka-plugin.tar.gz e copie todos os arquivos para a pasta criada anteriormente:

    cd ./apache-ranger-2.3.0/target/
    tar -xvf ranger-2.3.0-kafka-plugin.tar.gz
    cd ranger-2.3.0-kafka-plugin
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
  3. Na pasta do plugin, edite o arquivo install.properties:

    vim install.properties
    ...
    COMPONENT_INSTALL_DIR_NAME=/usr/gdp/hadoop/kafka/3.3.1/
    
    POLICY_MGR_URL=http://localhost:6080
    
    REPOSITORY_NAME=kafkadev
    
    XAAUDIT.SOLR.ENABLE=true
    XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
    XAAUDIT.SOLR.USER=NONE
    XAAUDIT.SOLR.PASSWORD=NONE
    XAAUDIT.SOLR.ZOOKEEPER=NONE
    XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hadoop/kafka/audit/solr/spool
    
    XAAUDIT.SOLR.IS_ENABLED=true
    XAAUDIT.SOLR.MAX_QUEUE_SIZE=1
    XAAUDIT.SOLR.MAX_FLUSH_INTERVAL_MS=1000
    XAAUDIT.SOLR.SOLR_URL=http://localhost:6083/solr/ranger_audits
    ...
  4. Crie a mesma estrutura de pastas e copie todo o conteúdo para os demais nodes:

    Esse procedimento deve ser realizado antes da habilitação do plugin.

    # node2 & node3
    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
    
    # node1
    scp -r * root@localhost:/usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
    scp -r * root@localhost:/usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
    
    # node2 & node3
    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
    ls -l
  5. Crie um usuário kafka e habilite o plugin executando o script enable-kafka-plugin.sh:

    useradd kafka
    passwd kafka
    ./enable-kafka-plugin.sh
  6. Conecte no Ranger Admin UI. Na tela principal, em HDFS, clique no botão + e preencha os campos com as seguintes informações:

    • Service Name: hadoopdev

    • Display Name: hadoopdev

    • Username: hbase (Usuário UNIX)

    • Password: <senha criado para o usuário hbase no UNIX>

    • hadoop.security.authentication: Simple

    • hbase.security.authentication: Simple

    • hbase.zookeeper.property.clientPort: 2181

    • hbase.zookeeper.quorum: ,,

    • zookeeper.znode.parent: /hbase-unsecure

  7. Mantenha o restante das configurações inalteradas e clique no botão Add.

  8. Reinicie o cluster.

Instalação e Configuração do Ranger KMS

Instalação do Ranger KMS

  1. Crie a pasta ranger-kms conforme a estrutura do GHDP:

    mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-kms
  2. No servidor do MySQL, crie um usuário rangerkms para o gerenciamento da base feito pela a aplicação:

    mysql -uroot -p
    CREATE USER 'rangerkms'@'localhost' IDENTIFIED BY 'rangerkms';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost';
    
    CREATE USER 'rangerkms'@'%' IDENTIFIED BY 'rangerkms';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%';
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'localhost' WITH GRANT OPTION;
    
    GRANT ALL PRIVILEGES ON *.* TO 'rangerkms'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
  3. Na pasta de build do Ranger, descompacte o Ranger KMS e copie todos os arquivos para a pasta criada anteriormente:

    cd ./apache-ranger-2.3.0/target/
    tar -xvf ranger-2.3.0-kms.tar.gz
    cd ranger-2.3.0-kms
    cp -R * /usr/gdp/hadoop/ranger/2.3.0/ranger-kms/
  4. Crie a pasta de logs para o Ranger KMS:

    mkdir -p /var/log/hadoop/ranger/ranger-kms/
  5. Utilizando um gerador de senhas, crie uma senha com os seguintes parâmetros e guarde-a em um local confiável (ela será utilizada no passo seguinte):

    • 16 caracteres

    • Letras maiúsculas

    • Letras minúsculas

    • Caracteres especiais.

  6. Na pasta do Ranger KMS, edite o arquivo install.properties adicionando configuração para Java Key Store (arquiva a master key em um arquivo no próprio servidor):

    Utilize a senha de 16 caracteres gerada no passo anterior como KMS_MASTER_KEY_PASSWD. Por exemplo: $ZH1$Q8&ExUaTku8.

    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-kms/
    vim install.properties
    ...
    db_root_user=rangerkms
    db_root_password=rangerkms
    db_host=localhost
    
    db_name=rangerkms
    db_user=rangerkms
    db_password=rangerkms
    
    COMPONENT_INSTALL_DIR_NAME=/usr/gdp/hadoop/ranger/2.3.0/ranger-kms
    
    KMS_MASTER_KEY_PASSWD=<senha de 16 caracteres gerada anteriormente>
    
    hadoop_conf=/etc/hadoop/hdfs/conf
    
    POLICY_MGR_URL=http://localhost:6080
    
    REPOSITORY_NAME=kmsdev
    
    XAAUDIT.SOLR.ENABLE=true
    XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
    XAAUDIT.SOLR.USER=NONE
    XAAUDIT.SOLR.PASSWORD=NONE
    XAAUDIT.SOLR.ZOOKEEPER=NONE
    XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hadoop/ranger/ranger-kms/audit/solr/spool
    
    XAAUDIT.SOLR.IS_ENABLED=true
    XAAUDIT.SOLR.MAX_QUEUE_SIZE=1
    XAAUDIT.SOLR.MAX_FLUSH_INTERVAL_MS=1000
    XAAUDIT.SOLR.SOLR_URL=http://localhost:6083/solr/ranger_audits
    
    RANGER_KMS_LOG_DIR=/var/log/hadoop/ranger/ranger-kms
    ...

Configuração do Ranger KMS com Luna Cloud HSM

  1. Antes de efetuar o setup do Ranger KMS, é necessário adicionar o LunaProvider no arquivo java.security. Para isso, edite o arquivo java.security, que se encontra na pasta <JDK_installation_directory>/jre/lib/security, adicionando duas linhas no final: uma com o LunaProvider na sequência da lista de provedores, security.provider.10=com.safenetinc.luna.provider.LunaProvider, e uma com a configuração para que o Luna funcione, com.safenetinc.luna.provider.createExtractableKeys=true:

    vim /usr/lib/java/jre/lib/security/java.security
    #
    # List of providers and their preference orders (see above):
    #
    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=sun.security.ec.SunEC
    security.provider.4=com.sun.net.ssl.internal.ssl.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
    security.provider.7=com.sun.security.sasl.Provider
    security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.9=sun.security.smartcardio.SunPCSC
    security.provider.10=com.safenetinc.luna.provider.LunaProvider
    
    com.safenetinc.luna.provider.createExtractableKeys=true
  2. Copie os arquivos LunaProvider.jar e libLunaAPI.so para a pasta <JDK_installation_directory/jre/lib/ext.

    cp /usr/safenet/lunaclient/jsp/LunaProvider.jar /usr/lib/java/jre/lib/ext/
    cp /usr/safenet/lunaclient/jsp/64/libLunaAPI.so /usr/lib/java/jre/lib/ext/
  3. Utilizando um gerador de senhas, crie uma senha com os seguintes parâmetros e guarde-a em um local confiável (ela será utilizada no passo seguinte):

    • 16 caracteres

    • Letras maiúsculas

    • Letras minúsculas

    • Caracteres especiais.

  4. Edite o arquivo install.properties para o setup do Ranger KMS com o Luna Cloud HSM:

    Utilize a senha de 16 caracteres gerada no passo anterior como KMS_MASTER_KEY_PASSWD. Por exemplo: $ZH1$Q8&ExUaTku8.

    cd /usr/gdp/hadoop/ranger/2.3.0/ranger-kms/
    vim install.properties
    ...
    db_root_user=rangerkms
    db_root_password=rangerkms
    db_host=localhost
    
    db_name=rangerkms
    db_user=rangerkms
    db_password=rangerkms
    
    COMPONENT_INSTALL_DIR_NAME=/usr/gdp/hadoop/ranger/2.3.0/ranger-kms
    
    KMS_MASTER_KEY_PASSWD=<senha de 16 caracteres gerada anteriormente>
    
    hadoop_conf=/etc/hadoop/hdfs/conf
    
    #------------------------- Ranger KMS HSM CONFIG ------------------------------
    HSM_TYPE=LunaProvider
    HSM_ENABLED=true
    HSM_PARTITION_NAME=rangerkms
    HSM_PARTITION_PASSWORD=Griaule.123
    
    POLICY_MGR_URL=http://localhost:6080
    
    REPOSITORY_NAME=kmsdev
    
    XAAUDIT.SOLR.ENABLE=true
    XAAUDIT.SOLR.URL=http://localhost:6083/solr/ranger_audits
    XAAUDIT.SOLR.USER=NONE
    XAAUDIT.SOLR.PASSWORD=NONE
    XAAUDIT.SOLR.ZOOKEEPER=NONE
    XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hadoop/ranger/ranger-kms/audit/solr/spool
    
    XAAUDIT.SOLR.IS_ENABLED=true
    XAAUDIT.SOLR.MAX_QUEUE_SIZE=1
    XAAUDIT.SOLR.MAX_FLUSH_INTERVAL_MS=1000
    XAAUDIT.SOLR.SOLR_URL=http://localhost:6083/solr/ranger_audits
    
    RANGER_KMS_LOG_DIR=/var/log/hadoop/ranger/ranger-kms
    ...
  5. Em todos o nodes, para que os datanodes acessem o KMS, edite o arquivo core-site.xml alterando o value da propriedade hadoop.security.key.provider.path para kms://http@localhost:9292/kms:

    vim /etc/hadoop/hdfs/conf/core-site.xml
    <property>
      <name>hadoop.security.key.provider.path</name>
      <value>kms://http@localhost:9292/kms</value>
    </property>
  6. Reinicie o HDFS.

    dfsstop
    dfsstart
  7. Conceda ao usuário kms as permissões para as pastas:

    chown -R kms: /var/log/hadoop/ranger/ranger-kms/
    chown -R kms: /usr/gdp/hadoop/ranger/2.3.0/ranger-kms/
  8. Execute o script de setup, aguarde a finalização da instalação com a mensagem successfully e inicialize o Ranger KMS:

    ./setup.sh
    
    # Iniciar:
    ranger-kms start
    
    # Finalizar:
    ranger-kms stop
  9. Se tudo ocorreu com sucesso, será possível acessar o painel do Ranger KMS por meio do endereço do Ranger Admin utilizando o usuário keyadmin e a senha definida no procedimento de instalação do Ranger Admin.

    • Link: http://<my_ip>:6080/

    • User: keyadmin

    • Password: <definida no install.properties durante o setup do Ranger Admin>

  10. Entre no Ranger Admin UI com o usuário admin, acesse Settings > Users/Groups/Roles. Na aba Users, clique no botão Add New User e crie os usuários:

    • hive

    • hdfs

    • om

    • hbase

  11. Em seguida, faça logout e entre como keyadmin para acessar o painel do Ranger KMS UI no Service KMS. Clique no botão + para criar o repositório kmsdev, conforme as especificações abaixo:

    • Service Name: kmsdev

    • KMS URL: kms://http@:9292/kms

    • Username: keyadmin

    • Password: <senha definida no procedimento de instalação do Ranger Admin>

  12. Na mesma tela, em Audit Filter, clique no botão + para adicionar uma ACL com as seguintes especificações:

    • Access Result: ALLOWED

    • Permissions: Select All

    • Users: keyadmin

  13. Clique em Add. Em seguida, clique para editar o repositório kmsdev e clique no botão Test Connection, para confirmar se todo o procedimento ocorreu corretamente.

  14. Reinicie o Ranger KMS:

    ranger-kms stop
    ranger-kms start
  15. Caso esteja utilizando o Luna Cloud HSM, verifique se houve a criação da master key. Para isso, execute o lunacm:

    lunacm

    Ou:

    cd /usr/safenet/lunaclient/
    ./bin/64/lunacm
  16. Faça login com o role crypto officer:

    role login -name crypto officer
  17. Liste o conteúdo da partição para verificar se a master key foi criada com sucesso:

    partition contents

    Exemplo de saída com a master key criada:

    lunacm:>partition contents
    
            The 'Crypto Officer' is currently logged in. Looking for objects
            accessible to the 'Crypto Officer'.
    
            Object list:
    
            Label:         RangerKMSKey
            Handle:        1
            Object Type:   Symmetric Key
            Usage Limit:   none
            Object UID:    9f1d00002d000001706c0800
    
            Number of objects:  1
    
    Command Result : No Error

Ativar Load Balancer no Ranger KMS

  1. Em um segundo servidor, realize todo o procedimento de instalação do Ranger KMS.

  1. No passo 5 da configuração, em que é preciso alterar o arquivo core-site.xml para que os datanodes acessem o KMS, prossiga da seguinte forma: abra o arquivo, encontre a propriedade hadoop.security.key.provider.path e altere seu value de kms://http@localhost:9292/kms para kms://http@host1;host2:9292/kms:

    vim /etc/hadoop/hdfs/conf/core-site.xml

    Antes:

    <property>
      <name>hadoop.security.key.provider.path</name>
      <value>kms://http@localhost:9292/kms</value>
    </property>

    Depois:

    <property>
      <name>hadoop.security.key.provider.path</name>
      <value>kms://http@host1;host2:9292/kms</value>
    </property>
  2. Reinicie o HDFS:

    dfsstop
    dfsstart
  3. Siga com a finalização do procedimento de configuração do Ranger KMS, a partir do passo 6.

Desinstalação do Ranger

Para desinstalar o Ranger, execute os seguintes comandos:

rm -rf /var/log/ranger /var/log/hadoop/ranger /usr/gdp/hadoop/solr/ /usr/gdp/hadoop/ranger/ /etc/ranger/ /var/log/hadoop/solr/ /var/lib/mysql/ranger/

rm -f /usr/gdp/hadoop/*/*/.ranger*
rm -f /usr/gdp/hadoop/*/*/*/.ranger*
rm -f /usr/gdp/hadoop/*/*/*/*/.ranger*

rm -f /usr/gdp/hadoop/hdfs/3.2.4/etc/hadoop/ranger*
rm -f /usr/gdp/hadoop/hdfs/3.2.4/share/hadoop/hdfs/lib/ranger*

rm -f /usr/bin/ranger*
rm -f /etc/rc.d/init.d/ranger*
rm -f /etc/rc.d/rc2.d/*ranger*
rm -f /etc/rc.d/rc3.d/*ranger*
mysql -uroot -p
show schemas;
drop database ranger;
drop database rangerkms;

Atualizado