Apache Ranger™ e Ranger KMS
Este manual é um guia de instalação do Apache Ranger™ e Ranger KMS.
Este procedimento se aplica ao ambiente GHDP.
Pré-requisitos
Instale os pré-requisitos para o procedimento de build do Ranger.
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
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
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
Instalação do Solr
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
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.http://<my_ip>:6080/
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
Instalação de Plugins
HDFS Plugin
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
: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.
HBase Plugin
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:
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.
Kafka Plugin
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:
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.
Instalação e Configuração do Ranger KMS
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):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
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: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
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
Ativar Load Balancer no Ranger KMS
Em um segundo servidor, realize todo o procedimento de instalação do Ranger KMS.
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.
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