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/