목요일, 10월 1, 2020
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.

최신글

에픽게임즈 – RollerCoaster Tycoon 3 Complete Edition

일생일대의 테마파크를 짓고 비평가들에게 극찬을 받은 롤러코스터 시뮬레이션 베스트셀러를 재발견하세요. 2개의 거대한 확장팩으로 완성된...

인기글

x470 128gb Ram Support Motherboard

Asrock Rack X470D4U 제품이 BIOS 업데이트로 MAX Memory 128G 지원가능한듯 합니다. X470 에서 128GB RAM 를 지원하는 최초의 X470 Motherboard 인듯합니다. 조만간 32G RAM 구하게 되면...

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

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

DB접속정보 암호화 Spring 및 프로퍼티 설정

DB접속정보 암호화 Spring 및 프로퍼티 설정 Spring으 DataSource이용하다보면 DB 접속 User, password를 설정화일에 그대로 노출되는 경우가 보안에 너무 취약하게 됩니다. jasypt 을 이용하여 password부분 암호화에 대하여 설명하겠습니다. 1. 다운로드 http://www.jasypt.org/download.html에서...

원격데스크톱RDP 접속정보Log 삭제

원격데스크톱RDP 접속정보Log 삭제 첫번째로 Default.rdp 파일을 지우면 됩니다. 두번째로 아래와같이 접속기록이 남아있는데요. 접속기록은 레지스트리 편집기를 통해서 삭제가 가능합니다. 위와 같이 HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault 의 값과 HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers의 해당 값을 삭제해주시면...