DataPipeline/Zookeeper
Zookeeper - CLI명령어와 ACL
wave35
2023. 3. 22. 21:25
[ CLI 명령어 ]
zookeeper/bin/zkCli.sh에서 CLI 접속
create /znode "first-app"
ls /znode
get /znode
set /znode "date-updated"
rmr /znode
[ ACL ]
znode접근시 Authentication is not valid : /znode-ex 라는 메세지가 뜬다면
인증권한을 확인할 필요가 있다.
ACL(Action Control List)은 znode에 액세스 하기위한 인증제어이며 5가지의 종류로 구분된다.
ACL 권한 종료
- CREATE - 생성 : ZNode의 자식 노드를 생성할 수 있는 권한
- READ - 읽기 : ZNode의 데이터를 읽고 자식 노드를 나열할 수 있는 권한
- WRITE - 쓰기 : ZNode의 데이터를 설정하거나 수정할 수 있는 권한
- DELETE - 삭제 : ZNode의 자식 노드를 삭제할 수 있는 권한
- ADMIN - 위4가지 권한 부여 및 ACL 설정 권한
ls -l 명령어로 확인할 수 있는 리눅스 파일권한 스키마(user:group:others)와는 달리
아래 4가지로 권한을 부여한다.
- WORLD - 모든 요청
- AUTH - 인증된 세션
- DIGEST - username/password로 인증된 요청
- IP - 해당 ip요청
[ 조작 명령어 ]
ACL 확인
getAcl /znode
# 출력 world/anyone/crdwa (c : create, r :read ... )
ACL 설정
DIGEST로 인증설정
addauth digest [username]:[password]
setAcl /znode auth:[username]:[password]:crdwa
호스트네임으로 인증설정
setAcl /znode host:[hostname]:crdwa
IP주소로 인증설정
setAcl /znoe ip:[IpAdressIPv4]:crdwa
[ Cloudera Manager ACL ]
znode인증설정을 풀어서 작업을 해야 할 경우 일일히 바꿀수 없기에
CDH에서는 ACL을 모두 무시하고 접근가능하게 설정 할 수 있다.
CM -> ZooKeeper -> Configuration 페이지 -> Java Configuration Options for Zookeeper Server에서
아래텍스트를 입력 후 Restart.
-Dzookeeper.skipACL=true
또는
znode의 모든 권한을 갖는 superDigest 계정을 설정하는 방법도 있다.
참조 :
https://www.mynotes.kr/zookeeper-aclaction-control-list-%EC%84%A4%EC%A0%95/