3030- ACL group 하위 사용자 생성/제거
3131
3232arcusctl 사용하여 ACL group 정보를 ZooKeeper에 저장/조회할 수 있다.
33- 아래는 2개의 ACL group(userGroup01, userGroup02 )을 포함하는 znode 예시이다.
33+ 아래는 2개의 ACL group(prod, dev )을 포함하는 znode 예시이다.
3434
35- - userGroup01의 alice와 userGroup02의 alice는 서로 연관이 없는 별도의 계정이다. 각자의 고유한 비밀번호와 권한을 갖는다.
36- - ` * ` 으로 시작하는 사용자 계정(bob)은, 서버에 연결해서 수행하는 모든 명령 이력을 감사 로그로 기록한다.
35+ - ` /arcus_acl/<group> ` 하위 znode는 ZooKeeper ACL을 설정하여 권한을 가진 경우에만 수정할 수 있도록 한다.
36+ - ` /arcus_acl/<group>/<username> ` 에는 해당 user의 권한 정보를 보관한다.
37+ - ` /arcus_acl/<group>/<username>/authPassword ` 에는 해당 user의 비밀번호를 암호화된 형태로 보관한다.
38+ - ` * ` 으로 시작하는 사용자 계정(` *myadmin ` , ` *testadmin ` )은, 서버에 연결해서 수행하는 모든 명령 이력을 감사 로그로 기록한다.
3739
38- ```
39- /arcus_acl
40- /arcus_acl/userGroup01
41- /arcus_acl/userGroup01/alice : kv,list,attr,flush
42- /arcus_acl/userGroup01/alice/authPassword : SCRAM-SHA-256$4096:zYKWe/t...
43- /arcus_acl/userGroup01/*bob : attr,flush,admin
44- /arcus_acl/userGroup01/*bob/authPassword : SCRAM-SHA-256$...
45- /arcus_acl/userGroup02
46- /arcus_acl/userGroup02/alice : btree,attr
47- /arcus_acl/userGroup02/alice/authPassword : SCRAM-SHA-256$4096:Wx8F+2m...
48- ```
40+ <img width =" 2422 " height =" 1353 " alt =" image " src =" https://github.com/user-attachments/assets/6ecbe90e-688a-4f48-827f-f253e19d2e2a " />
4941
50- - ` /arcus_acl ` : 다수의 ACL group znode가 포함되는 최상위 znode
51- - ` /arcus_acl/userGroup01 ` : userGroup01 이름을 갖는 ACL group
52- - ` /arcus_acl/userGroup01/alice ` : userGroup01에 속한 alice 사용자의 권한 정보
53- - ` /arcus_acl/userGroup01/alice/authPassword ` : userGroup01에 속한 alice 사용자의 암호화된 비밀번호
5442
5543## Cache Server
5644
@@ -72,7 +60,7 @@ ZooKeeper에 저장된 인증/권한 정보를 ARCUS Cache Server에서 사용
7260Cache Server 구동 시 ` -S ` 옵션을 지정하여 클라이언트 연결에 대한 SASL 인증을 요구할 수 있으며, 실행 명령 예시는 아래와 같다.
7361
7462```
75- ARCUS_ACL_ZOOKEEPER="127.0.0.1:2181" ARCUS_ACL_GROUP="userGroup01 "\
63+ ARCUS_ACL_ZOOKEEPER="127.0.0.1:2181" ARCUS_ACL_GROUP="prod "\
7664 $INSTALL_PATH/bin/memcached ... -S
7765```
7866
@@ -99,17 +87,17 @@ ARCUS Cache Server는 ZooKeeper에 저장된 인증/권한 정보를 가져와
9987
10088- 인증 성공/실패
10189```
102- SECURITY_EVENT client=10.0.0.1 user=alice authentication succeeded
103- SECURITY_EVENT client=10.0.0.1 user=alice authentication failed(no mechanism available)
90+ SECURITY_EVENT client=10.0.0.1 user=myapp authentication succeeded
91+ SECURITY_EVENT client=10.0.0.1 user=myapp authentication failed(no mechanism available)
10492```
10593
10694- 명령 수행 이력
10795 - 일반 user: 권한 없는 명령 수행 시도 이력
10896 - ` * ` 문자로 시작하는 user: 모든 명령 수행 이력
10997
11098```
111- SECURITY_EVENT client=10.0.0.1 user=alice cmd="mop create 0 100 10" unauthorized
99+ SECURITY_EVENT client=10.0.0.1 user=myapp cmd="mop create 0 100 10" unauthorized
112100SECURITY_EVENT client=10.0.0.1 user= cmd="set kv 0 60 5" unauthorized
113- SECURITY_EVENT client=10.0.0.1 user=*bob cmd="set kv 0 60 5" unauthorized
114- SECURITY_EVENT client=10.0.0.1 user=*bob cmd="config memlimit" authorized
101+ SECURITY_EVENT client=10.0.0.1 user=*myadmin cmd="set kv 0 60 5" unauthorized
102+ SECURITY_EVENT client=10.0.0.1 user=*myadmin cmd="config memlimit" authorized
115103```
0 commit comments