KMS(Key Management Server)는
암호화 구역에 저장되는 파일은 자동으로 암호화된다. KMS는 암호화 키 저장을 담당한다.
KMS에서 저장되는 Key에 대한 REST API 및 액세스 제어를 제공한다.
[ 파일 복사 ]
# mkdir -p /usr/kms
# cp /usr/hdp/current/hadoop-client/mapreduce.tar.gz /usr/kms/
# cd /usr/kms/
# tar -xvf mapreduce.tar.gz
# export KMS_ROOT=/home/kms/
[ 포트 변경-필요시 ]
/usr/hadoop/etc/hadoop/kms-env.sh:export KMS_HTTP_PORT=19000
/usr/hadoop/libexec/kms-config.sh: export KMS_HTTP_PORT=19000
[ Key Management Server 실행 ]
# /usr/kms/kms.sh run
[ KMS Key provider 설정 ]
Ambari에서 hdfs로 들어가 Configs에서 환경 설정
설정이 끝나면 HDFS, YARN, MapReduce2, Hive 등을 재시작해야 한다.
KMS 기본 포트는 16000인데 테스트 서버는 사용중이라 바꾸었다.
Custom core-site항목
Configuration : Advanced core-site
Key : hadoop.security.key.provider.path
Value : kms://http@localhost:19000/kms
Configuration : Advanced hdfs-site
Key : dfs.encryption.key.provider.uri
Value : kms://http@localhost:19000/kms
[ Key Management Server 재실행 ]
# /usr/kms/kms.sh restart
[ 보안 권한 및 Zone 생성 ]
모든 사용자 가능
$ hadoop key create key1 -size 256
$ hadoop key delete <key-name> -> key삭제
hdfs 사용자로 생성
$ hadoop fs -mkdir /zone1
$ hdfs crypto -createZone -keyName key1 -path /zone1
생성확인
$ hdfs crypto -listZones (hadoop key list)
hive 사용자로 권한 변경
$ hdfs dfs -chown hive:hive /zone1
$ hdfs dfs -chmod 750 /zone1
hive 사용자로 데이터 확인
$ hadoop fs -put test.txt /zone1
$ hadoop fs -cat /zone1/test.txt
hdfs 사용자로 파일 확인
$ hadoop fs -cat /.reserved/raw/zone1/test.txt
Kdh\N스啞쳼r밤>큙뇆⊙S楢
hdfs 사용자로 일반 디렉토리는 확인 가능
$ hadoop fs -cat /.reserved/raw/tmp/test.txt
test
hdfs 사용자로 보안존 파일 읽기
$ hadoop fs -cat /zone1/test.txt
Permission denied: user=test, access=EXECUTE, inode="/zone1/test.txt":hive:hive:drwxr-x---
$ hadoop fs -cat /tmp/test.txt -> 권한- root:hdfs
test
kms 권한 설정
key생성, 데이터 접근 등 권한을 설정할 수 있다.
사용자 ID로 설정한다.
/etc/hadoop/~/kms-acls.xml
예)
<property>
<name>hadoop.kms.blacklist.CREATE</name>
<value>hdfs,root</value>
<description>
Blacklist for create-key operations
</description>
[ 기타 ]
필에 따라 아래 링크가 필요할 수 있다.
$ ls -la /usr/lib64/libcrypto.so
lrwxrwxrwx 1 root root 19 Nov 22 14:35 /usr/lib64/libcrypto.so -> libcrypto.so.1.0.1e
로그 확인
$ /usr/kms/hadoop/logs
















덧글