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¶
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
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 ...
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¶
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
Faça o build do Ranger utilizando o Maven:
mvn clean compile package install
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
Finalize o procedimento de build com o seguinte comando:
mvn eclipse:eclipse
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.
- Acesse a pasta de build do Ranger, conforme efetuado no tópico anterior.
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/
Crie a pasta do Solr conforme a versão escolhida:
mkdir -p /usr/gdp/hadoop/solr/8.11.2/
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
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
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¶
Crie a pasta do Ranger Admin:
mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-admin
Acesse a pasta
target
, gerada no procedimento de build, e descompacte o arquivoranger-2.3.0-admin.tar.gz
:cd ./apache-ranger-2.3.0/target tar -xvf ranger-2.3.0-admin.tar.gz
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/
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;
Caso não esteja instalado, instale o
mysql-connector-java
e verifique se o arquivomysql-connector-java.jar
está na pasta correta:yum install mysql-connector-java ls /usr/share/java/mysql-connector-java.jar
Crie a pasta de logs para o Ranger Admin:
mkdir -p /var/log/hadoop/ranger/ranger-admin
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 ...
Execute o script de setup:
./setup.sh
Adicione permissões para as pastas do Ranger e logs e adicione o usuário
ranger
no grupohadoop
.chown -R ranger: /usr/gdp/hadoop/ranger/ chown -R ranger: /var/log/hadoop/ranger/ usermod -a -G hadoop ranger
Para inicializar o Ranger Admin utilize o comando:
ranger-admin start
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¶
Na pasta de build do Ranger, crie uma pasta para o Ranger UserSync chamada
ranger-usersync
, descompacte o arquivotar.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
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/
Na pasta
ranger-usersync
, edite o arquivoinstall.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 ...
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
Execute o script
setup.sh
:./setup.sh
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>
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.
Crie a pasta
ranger-hdfs-plugin
conforme a estrutura do GHDP:mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hdfs-plugin
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
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 ...
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
Habilite o plugin executando o script
enable-hdfs-plugin.sh
:./enable-hdfs-plugin.sh
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
- Mantenha o restante das configurações inalteradas e clique no botão Add.
- Reinicie o cluster.
6.2. HBase Plugin¶
Attention
O HBase Plugin deve ser instalado em todos os hosts com Master e Regional.
Crie a pasta
ranger-hbase-plugin
conforme a estrutura do GHDP.mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-hbase-plugin
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
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 ...
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
Crie um usuário
hbase
e habilite o plugin executando o scriptenable-hbase-plugin.sh
:useradd hbase passwd hbase ./enable-hbase-plugin.sh
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
- Mantenha o restante das configurações inalteradas e clique no botão Add.
- Reinicie o cluster.
6.3. Kafka Plugin¶
Attention
O Kafka Plugin deve ser instalado em todos os hosts que possuem o componente instalado.
Crie a pasta
ranger-kafka-plugin
conforme a estrutura do GHDP:mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-kafka-plugin
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
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 ...
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
Crie um usuário
kafka
e habilite o plugin executando o scriptenable-kafka-plugin.sh
:useradd kafka passwd kafka ./enable-kafka-plugin.sh
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
- Mantenha o restante das configurações inalteradas e clique no botão Add.
- Reinicie o cluster.
7. Instalação e Configuração do Ranger KMS¶
7.1. Instalação do Ranger KMS¶
Crie a pasta
ranger-kms
conforme a estrutura do GHDP:mkdir -p /usr/gdp/hadoop/ranger/2.3.0/ranger-kms
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;
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/
Crie a pasta de logs para o Ranger KMS:
mkdir -p /var/log/hadoop/ranger/ranger-kms/
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.
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¶
Antes de efetuar o setup do Ranger KMS, é necessário adicionar o LunaProvider no arquivo
java.security
. Para isso, edite o arquivojava.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
Copie os arquivos
LunaProvider.jar
elibLunaAPI.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/
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.
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 ...
Em todos o nodes, para que os datanodes acessem o KMS, edite o arquivo
core-site.xml
alterando o value da propriedadehadoop.security.key.provider.path
parakms://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>
Reinicie o HDFS.
dfsstop dfsstart
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/
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
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>
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
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óriokmsdev
, 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>
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
- 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. Reinicie o Ranger KMS:
ranger-kms stop ranger-kms start
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
Faça login com o role crypto officer:
role login -name crypto officer
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¶
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.
- 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 propriedadehadoop.security.key.provider.path
e altere seu value dekms://http@localhost:9292/kms
parakms://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>
Reinicie o HDFS:
dfsstop dfsstart
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;