티스토리 뷰
업무를 할 때 세션 관리 등을 위해 레디스를 많이 사용했습니다. 이미 설정이 되어 있는 상태로 사용을 했기 때문에 인증에 대해 고민하지 않았었는데 로컬에서 사용할 때 참고 링크와 같은 문제가 있다는 것을 알게 되었습니다.
따라서 로컬에서 도커를 통해 redis를 사용할 때도 username, password를 설정하는 방법을 살펴보려고 합니다.
문제의 원인
- 레디스 포트가 기본인 6379로 열려있고
- 인증없이 접근이 가능할 때
크롤러 봇에의한 해킹을 당할 수 있다고 합니다.
그러나 기본적으로 사용하는 포트를 바꾸는 것은 좋지 않은 해결책이라고 생각하여 인증을 추가하기로 하였습니다.
인증 추가 방법
- requirepass option을 통한 패스워드 설정
- Redis ACL system을 이용한 username, password 설정(Redis 6.0 버전 이상을 사용하는 경우에만 해당, 자세한 사항은 공식문서 Auth에서 확인)
저는 docker 로 redis를 띄웠기 때문에 환경 변수를 주어 requirepass 설정을 할 수 있습니다.
redis:
image: 'bitnami/redis:latest'
environment:
- REDIS_PASSWORD=설정할패스워드
# - ALLOW_EMPTY_PASSWORD=yes
ports:
- '6379:6379'
기존의 컨테이너를 내렸다가 새로운 옵션으로 다시 실행합니다. 이후 redis-cli 에 접속해서 명령을 내리려고 하면 인증 에러가 발생합니다. 이때 다음 명령을 통해 인증을 하면 다시 원하는 명령 실행이 가능합니다.
$ auth 설정한패스워드
이것으로도 필수 인증은 활성화 되었지만 ACL 설정을 통해 User를 만들고 패스워드를 지정해보도록 하겠습니다.
$ ACL SETUSER [유저네임] on >[패스워드] allkeys allcommands
위와 같이 지정하고 다시 > auth 유저네임 패스워드 입력을 하면 지정한 유저로 접속을 할 수 있게 됩니다.
참고
'기타' 카테고리의 다른 글
[Socket.io] NodeJS + Express 기반 소캣 통신 서버 만들기 1 (0) | 2023.11.13 |
---|---|
[Kafka] Kafka 개념 및 용어 정리 (1) | 2023.11.10 |
[PostgreSQL] PostgreSQL String to Timestamp (1) | 2023.10.30 |
[Real MySQL 8.0 북스터디] 04_아키텍처 (0) | 2023.03.01 |
[아키텍처] 헥사고날 아키텍처(Hexagonal Architecture) (0) | 2023.02.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Dynamic Programming
- DFS
- map
- Baekjoon
- CodeCommit
- Combination
- programmers
- CodePipeline
- Algorithm
- ECR
- 순열
- array
- 프로그래머스
- 소수
- sort
- cloudfront
- SWIFT
- string
- permutation
- CodeDeploy
- 조합
- EC2
- 에라토스테네스의 체
- 수학
- search
- ionic
- AWS
- spring
- BFS
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함