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

Attention

Este procedimento se aplica ao ambiente GHDP.

1. Pré-requisitos

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

1.1. 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
    

1.2. 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

2. 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
    

3. Instalação do Solr

Note

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
    

4. 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.

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

    Note

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

5. 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
    

6. Instalação de Plugins

Note

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.

6.1. HDFS Plugin

Attention

O HDFS Plugin deve ser instalado em todos os NameNodes.

  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:

    Attention

    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.

6.2. HBase Plugin

Attention

O HBase Plugin deve ser instalado em todos os hosts com Master e Regional.

  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:

    Attention

    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.

6.3. Kafka Plugin

Attention

O Kafka Plugin deve ser instalado em todos os hosts que possuem o componente instalado.

  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:

    Attention

    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.

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

7.1. 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):

    Note

    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
    ...
    

7.2. 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:

    Note

    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:

  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
    

Tip

O arquivo de configuração do Ranger KMS, dbks-site.xml, se encontra em:

/usr/gdp/hadoop/ranger/2.3.0/ranger-kms/ews/webapp/WEB-INF/classes/conf/dbks-site.xml

8. Ativar Load Balancer no Ranger KMS

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

    Attention

    Caso esteja utilizando Luna Cloud HSM, siga as instruções do guia de instalação do Luna Cloud HSM contidas nos tópicos 1.1. Download do client e 1.2. Instalação do client no servidor para realizar a instalação do client. Não é necessário realizar os procedimentos de ativar slot, iniciar partição ou iniciar as roles, contidos nos tópicos posteriores do guia. Em seguida, siga rigorosamente as instruções de instalação e configuração do HSM com Ranger, porém tomando os cuidados descritos abaixo.

  2. 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>
    
  3. Reinicie o HDFS:

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

9. 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;