본문 바로가기

Database/NO-SQL

레디스(Redis)내 유저 설정(ACL)

1. redis.conf 내에 aclfile /etc/redis/users.acl 추가(주석해제)

  • user 정보를 저장하기 위해 파일 위치를 환경설정에서 지정해 준다.
#aclfile /etc/redis/users.acl
#부분 주석 해제
aclfile /etc/redis/users.acl

2. aclfile /etc/redis/users.acl 생성

#빈파일을 생성하여 저장할 수 있도록 처리
vi /etc/redis/users.acl

3. Redis 서비스 재시작

systemctl restart redis-server

4. 유저 추가 후 저장

#redis 서비스에 접속
[root@ip-10-0-0-10 redis]# redis-cli
#기존 환경설정에 저장해둔 초기 유저로 접속(6버전 이상은 초기 사용자가 default)
127.0.0.1:6379> auth default me1234
OK
#유저 추가 
#유저명 : oil, 패스워드: me1234, 접근권한 memanager로 시작하는 모든키에 모든 권한 부여
127.0.0.1:6379> ACL SETUSER oil on >me1234 ~memanager* allcommands
OK
#유저 정보 저장
127.0.0.1:6379> acl save
OK
127.0.0.1:6379> exit
  • 저장후 미리 생성했던 /etc/redis/users.acl 파일을 열어보면 아래와 같이 유저가 추가되어 있다.

 

5. 유저 권한 관련 정보

  • commands : allcommands(모든 커맨드 허용), nocommands(모든커맨드 비허용), 커맨드지정, 커맨드 그룹 지정(+@read : 읽기전용)
  • ACL CAT(커맨드 그룹 목록 조회)

커맨드 그룹 목록

  • keyspace: del, expire, flushdb, keys, ttl, scan 등
  • read: get, lrange, smembers, zrange, hget, xrange 등
  • write: set, lpush, sadd, zadd, hset, xadd 등
  • set: sadd, scard, srem, spop 등
  • sortedset: zadd, zcard, srem, zpopmin 등
  • list: lpush, llen, lrem, lpop 등
  • hash: hset, hlen, ldel, hget 등
  • string: set, get, incr 등
  • bitmap: setbit, bitop, getbit 등
  • hyperloglog: pfadd, pfmerge, pfcount, pfselftest
  • geo: geoadd, geodist, georadius 등
  • stream: xadd, xlen, xrange, xdel 등
  • pubsub: publish, subscribe, pubsub 등
  • admin: bgsave, config, debug, shutdown 등
    • admin 명령은 dangerous 그룹에 포함됨
  • fast: get, lpush, hget 등
  • slow: lrem, mset, save 등
  • blocking: blpop, brpop, brpoplpush, bzpopmin, bzpopmax, xread, xreadgroup
  • dangerous : flushall, keys, shutdown, failover, cluster, client, module 등
  • connection: hello, client, auth, echo, ping, command
  • transaction: watch, multi, unwatch, discard, exec
  • scripting: evalsha, eval, script