Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
1. HDFS의 ACL을 Sentry와 연동후 테스트
가. HDFS 폴더를 생성하고 권한을 771 이상으로 부여한다. (hive:hive로 설정하고 771이상을 주어야 sentry에서 제대로 통제를 할 수 있음)
hdfs dfs -mkdir /DATA/GOOPER
hdfs dfs -chown hive:hive /DATA/GOOPER
hdfs dfs -chmod 771 /DATA/GOOPER
나. hue에서 role및 데이터베이스를 생성하여 권한을 부여한다.
create role rl_gooper_all;
create database gooperdb;
grant all on uri '/DATA/GOOPER' to role rl_gooper_all;
grant all on database gooperdb to role rl_gooper_all;
2. 권한확인
hdfs dfs -getfacl /DATA/GOOPER
->>>
# file : /DATA/GOOPER
# owner: hive
# group: hive
user:: rwx
group::rwx
other::r-x
3. hue에서 테이블 생성
create table gooperdb.test (
col1 string
)
location '/DATA/GOOPER/test';
4. 테이블 생성후 test HDFS폴더 권한 확인
hdfs dfs -getfacl /DATA/GOOPER/test
->>>
# file : /DATA/GOOPER/test
# owner: hive
# group: hive
user:: rwx
group::---
group::rl_gooper_all:rwx
user:hive:rwx
group:hive:rwx
mask::rwx
other::--x
5. 현상태에서 test HDFS폴더 삭제 테스트
sudo -u aaa -kt /var/lib/keytab/aaa.keytab aaa
sudo -u aaa hdfs dfs -rm -r /DATA/GOOPER/test
----> rm: Failed to move to trash: hdfs://nameservice1/DATA/GOOPER/test : Permission denied: user=aaa, access=WRITE, inode="/DATA/GOOPER":hive:hive:drwxrwxr-x