DBAtlas · 데이터베이스 운영 아틀라스

ACL 사용자 생성, 권한 테스트, 영구화

Redis보안

명령어

# Application user: only app:* keys and channels, dangerous commands excluded:
ACL SETUSER app_rw on >S3cret-Change ~app:* resetchannels &app:* +@read +@write -@dangerous
# Monitoring user: no key access, only specific commands:
ACL SETUSER monitor on >M0n-Secret resetkeys resetchannels -@all +info +ping +client|list +slowlog|get +latency +config|get
# Test permissions without running the command:
ACL DRYRUN app_rw GET app:1001
ACL GETUSER app_rw
ACL LIST
# Make it persistent: ACL SAVE if aclfile is set, otherwise CONFIG REWRITE into redis.conf
ACL SAVE

하는 일

key prefix, pub/sub 채널, 명령 범주로 권한을 준 애플리케이션 및 모니터링 사용자를 만든다. 명령을 실행하지 않고 DRYRUN으로 허용 여부를 테스트하고, ACL을 디스크에 기록한다.

사용 시점

단일 공유 비밀번호(requirepass)에서 사용자별 접근으로 전환할 때, 애플리케이션 간 key를 격리할 때, 또는 모니터링 도구용 읽기 전용 계정을 만들 때.

주의

규칙 순서가 중요하다: resetchannels는 앞에 주어진 &channel 규칙을 모두 제거한다. -@dangerous는 KEYS, FLUSHALL, CONFIG, DEBUG 같은 명령도 차단하므로 애플리케이션이 사용하는 명령을 DRYRUN으로 확인한다. default 사용자가 nopass와 +@all로 활성 상태로 남아 있으면 ACL은 보호 효과가 없으므로 admin 사용자를 만든 후 ACL SETUSER default off를 실행한다. redis-cli에서 --user/--pass로 AUTH가 실패하면 연결은 default 사용자로 계속되고 명령이 그대로 실행되므로 권한 테스트에는 DRYRUN을 사용한다.

DBAtlas에서 열기 →

관련 항목