centos7 기준입니다.
HDFS와 ranger가 설치되어있음을 가정합니다.
ranger 설치
https://developer-woong.tistory.com/96
HDFS 설치
https://developer-woong.tistory.com/36
ranger-hdfs plugin은 HDFS namenode들에 설치되며,
저의 환경에서는 mast01,mast02서버가 namenode이고, mast02서버가 ranger admin 서버입니다.
1. ranger-2.4.0-hdfs-plugin.tar.gz 압축 해제
action server: mast01,mast02
user: root
pwd: -
cmd:
# ranger 빌드 시 해당 파일이 생성됩니다.
cp /opt/apps/ranger/target/ranger-2.4.0-hdfs-plugin.tar.gz /opt/apps
# 압축 해제 및 권한 설정
cd /opt/apps/
tar xvfz ranger-2.4.0-hdfs-plugin.tar.gz
chown -R hadoop:hadoop /opt/apps/ranger-2.4.0-hdfs-plugin
# 계정 전환 및 경로 이동
su - hadoop
cd /opt/apps/ranger-2.4.0-hdfs-plugin
2. enable, disable 스크립트 수정
* root가 아닌 hadoop 계정으로 설치하고, policy cache, conf등의 경로를 직접 설정하는 과정입니다.
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
# hdfs-plugin을 root 계정이 아닌 hadoop 계정으로 설치하기위해 아래와 같이 수정합니다.
vi enable-hdfs-plugin.sh
if [ ! -w /etc/passwd ]
then
echo "ERROR: $0 script should be run as root."
# exit 1 <-- 해당 부분 주석 처리
fi
# vi 화면에서 esc를 누른 후 해당 명령을 실행하고 y로 문자열을 변경해줍니다.
:%s?/etc/${PROJ_NAME}?/opt/apps/ranger-2.4.0-hdfs-plugin/etc/${PROJ_NAME}?c
# disable-hdfs-plugin.sh 역시 위와 같은 과정으로 수정합니다.
3. install.properties 수정
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
vi install.properties
POLICY_MGR_URL=http://mast02:6080
REPOSITORY_NAME=hadoop-policy
COMPONENT_INSTALL_DIR_NAME=/opt/apps/hadoop-3.3.5
# AUDIT configuration with V3 properties
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://mast01:8983/solr/ranger_audits
XAAUDIT.SOLR.USER=NONE
XAAUDIT.SOLR.PASSWORD=NONE
XAAUDIT.SOLR.ZOOKEEPER=mast01:2181,mast02:2181,mast03:2181/solr-cloud
XAAUDIT.SOLR.FILE_SPOOL_DIR=/opt/apps/ranger-2.4.0-hdfs-plugin/spool
# End of V2 properties
SSL_KEYSTORE_FILE_PATH=/opt/apps/ranger-2.4.0-hdfs-plugin/conf/ranger-plugin-keystore.jks
SSL_TRUSTSTORE_FILE_PATH=/opt/apps/ranger-2.4.0-hdfs-plugin/conf/ranger-plugin-truststore.jks
CUSTOM_USER=hadoop
CUSTOM_GROUP=hadoop
# 경로 생성
mkdir conf
4. 플러그인 활성화
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
./enable-hdfs-plugin.sh
5. ranger service 생성
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
Service Name *: hadoop-policy |
Display Name : hadoop-policy |
Username : hadoop |
Password : hadoop (linux 계정 비밀번호) |
Namenode URL : hdfs://mast01:8020/,hdfs://mast02:8020/ |
Add New Configurations |
- tag.download.auth.users : hadoop |
- policy.download.auth.users : hadoop |
- policy.grantrevoke.auth.users : hadoop |
6. namenode 재시작
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
/opt/apps/hadoop-3.3.5/bin/hdfs --daemon stop namenode
/opt/apps/hadoop-3.3.5/bin/hdfs --daemon start namenode
mast02:6080 (ranger UI) 내 Audit -> Plugin Status에 플러그인이 연동되었는지 확인합니다.
7. policy 생성
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
ranger UI 메인 화면 -> 생성한 hadoop-policy 클릭 -> 우측 상단 Add New Policy 클릭하여 생성 화면으로 진입합니다.
1. 정책 이름을 설정합니다.
2. 기존 정책들을 Override할 것인지 체크합니다.
3. 접근을 제어할 HDFS 경로입니다. * 표시는 전체 경로에 대해 접근을 제어하겠다는 의미입니다.
4. 접근 가능한 user입니다.
5. 해당 Role, Group, User가 어떤 엑세스에 접근할 수 있는 지 설정합니다.
6. 위 Allow Conditions, 즉, 허용된 Role, Group, User를 제외한 모든 엑세스를 거부한다는 뜻입니다.
7. 해당 사항을 저장합니다.
8. policy 다운로드 확인
action server: mast02:6080
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
mast02:6080 (ranger UI) 내 Audit -> Plugin Status에 플러그인이 변경 혹은 생성된 정책을 다운로드 받았는지 알 수 있습니다. 변경 직후, 느낌표가 뜨게 되며, 느낌표가 사라지면, 다운로드가 완료되었다는 뜻입니다.
9. 접근제어 적용확인
action server: mast01,mast02
user: hadoop
pwd: /opt/apps/ranger-2.4.0-hdfs-plugin
cmd:
# hadoop 유저이므로 통과됩니다.
hdfs dfs -ls /
# hadoop 유저 이외에 모든 엑세스를 거부하였으므로 통과되지않습니다.
su - admin
hdfs dfs -ls /
만약 admin이라는 유저도 HDFS에 접근 가능하게끔하려면, 7. policy 생성 내
USER에 admin을 추가합니다.
추가로 Hive, Yarn 등의 플러그인들도 포스팅해보도록 하겠습니다.
감사합니다.
'BigData > Ranger' 카테고리의 다른 글
ranger) ranger hive plugin 연동 (8) | 2024.03.20 |
---|---|
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.jaxrs.JacksonJsonProvider (0) | 2024.03.20 |
ranger 설치, 플러그인 연동 링크 모음 (0) | 2024.03.15 |
ranger) ranger-usersync 연동 주기 (0) | 2024.03.15 |
ranger) ranger 2.4.0 usersync 설치 (0) | 2024.03.15 |