목요일, 11월 14, 2019
Home Linux zookeeper ACL(Action Control List) 설정

zookeeper ACL(Action Control List) 설정

zookeeper ACL(Action Control List) 설정

 

Action Control List (ACL) – ACL은 기본적으로 z 노드에 액세스하기위한 인증 메커니즘입니다. 
모든 znode 읽기 및 쓰기 조작을 제어합니다.

ACL Permissions

 ZooKeeper에서의 권한은 unix-like 파일시스템의 권한과 크게 다를 것은 없다.
 특정 권한들에 대해 allow flag가 있어서 이것이 어떻게 설정되는가에 따라서 해당 권한을 실행시킬 수 있는지가 결정된다.

 ZooKeeper에서 설정할 수 있는 ACL의 종류는 아래의 5가지이다.

  • CREATE : 해당 znode의 자식 node를 만들 수 있는 권한.
  • READ : 해당 znode에서 data를 읽고 와 그 자식들의 목록을 읽을 수 있는 권한.
  • WRITE : 해당 znode에 값을 쓸 수 있는 권한.
  • DELETE : 해당 znode의 자식들을 지울 수 있는 권한.
  • ADMIN : 해당 znode에 권한을 설정할 수 있는 권한.

 unix-like file system과 다른 부분이 2가지 있다.
 첫 번째는 보통의 file system에는 없는 CREATE와 DELETE라는 권한이 존재하여 자식 node를 생성하고 삭제할 수 있는 권한이 있다는 것이다.
 unix-like file system에서 directory는 실제로는 자기 자식의 list를 가지고 있는 file이다.
 그래서 자식을 만들고 지우는 것은 부모 directory에 내용을 변경하는 것이고, 부모 directory에 쓰기 권한이 있는지가 자식을 만들고 지우는 권한이 된다.
 하지만 ZooKeeper에서는 모든 znode가 directory이기도 하고, file이기도 해서 자기 자신에 대한 쓰기 권한과 자식 node에 대한 생성/삭제 권한을 같이 쓸 수 없다.

Schemes

 ZooKeeper는 unix-like 시스템과 다르게 각 znode에 user/group/others라는 개념이 존재하지 않는다.
 대신 scheme이라는 것을 이용하여 권한을 구분하게 되어 있다.
 built in으로 제공되는 설정할 수 있는 scheme은 아래와 같이 4가지가 있다.

  • WORLD
  • AUTH
  • DIGEST
  • HOST
  • IP
 WORLD는 모든 요청에 대해 허락하는 것이고, AUTH는 authenticated된 session에서 들어오는 요청에 대해서만 허락하는 것이다.
 DIGEST는 username과 password를 보내서 이를 이용하여 만든 MD5 hash값이 같은 요청에 대해서만 처리하는 것이고, IP는 해당 IP에서의 요청만을 처리하도록 하는 것이다.

Stat

 ZNode는 node와 node의 data에 관한 여러 정보를 들고 있고, 이것을 stat이라고 부른다. stat이 가지는 정보는 다음과 같다.
  • czxid : znode를 생성한 트랜잭션의 id
  • mzxid : znode를 마지막으로 수정 트랜잭션의 id
  • ctime : znode가 생성됐을 때의 시스템 시간
  • mtime : znode가 마지막으로 변경되었을 때의 시스템 시간
  • version : znode가 변경된 횟수
  • cversion : znode의 자식 node를 수정한 횟수
  • aversion : ACL 정책을 수정한 횟수
  • ephemeralOwner : 임시 노드인지에 대한 flag
  • dataLength : data의 길이
  • numChildren : 자식 node의 수

Scheme ACL 살펴보기

WORLD Scheme명령 구문은 다음과 같습니다.

AUTH Scheme 명령 구문은 다음과 같습니다.

인증 사용자를 추가 후 ACL 설정을 할 수 있습니다.

인증 사용자를 추가후 znode에 ACL을 설정합니다.


아래와같이 설정합니다.

 

DIGEST Scheme 명령 구문은 다음과 같습니다.

 

HOST Scheme 명령 구문은 다음과 같습니다.

 

IP Scheme 명령 구문은 다음과 같습니다.

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Time limit is exhausted. Please reload the CAPTCHA.

최신글

에픽게임즈 – RUINER

에픽게임즈 RUINER 11월15일까지 무료배포 RUINER는 사이버 대도시 렝콕의 2091년을 배경으로 하는 잔혹 액션 슈터 게임입니다. 주인공인 사이코패스는 부패한 시스템에 대한 사실을...

인기글

Java 정규표현식으로 문자, 숫자, 특수문자의 조합 패턴 체크

Java 정규표현식으로 문자, 숫자, 특수문자의 조합 패턴 체크

Mac Address로 IP확인하기

Mac Address로 IP확인하기 도스창에서 arp -a 입력하시면 맥어드레스와 IP정보 조회가 가능합니다.

Tvheadend 4.4.20171030 로그인 문제 해결방법

Tvheadend 4.4.20171030 로그인 문제 해결방법 tvheadend-testing 4.4.20170707-3 를 설치하게 되면 sc-media 라는 그룹이 생성됨. 아래와 같이 tvheadend 로그인 사용자를 sc-media 그룹에 추가 permission 수정 chown -R sc-tvheadend:tvheadend-testing /var/packages/tvheadend-testing vi...

Let’s Encrypt 무료 SSL 인증서 갱신하기

Let’s Encrypt 무료 SSL 인증서 갱신하기 Let’s Encrypt 무료 SSL 인증서는 3개월단위로 인증서가 발급됩니다. 매번 체크해서 인증서를 갱신할기보다는 Crontab에 등록하여 3개월마다 갱신되게 아래와 같이 스크립트생성후 crontab에 등록하는...