TLS를 사용하여 Redis와 Sentinel 보안 설정
TLS를 사용하여 Redis와 Sentinel 통신을 보안하는 방법을 설명합니다. TLS 인증서 생성, 표준 TLS 및 상호 TLS(mTLS) 구성, Sentinel 비밀번호 설정, TLS 구성 검증 방법을 다룹니다.
히스토리 GitLab 14.7에서 Redis TLS 지원이 도입 되었습니다. GitLab 18.10에서 Sentinel TLS 지원이 도입 되었습니다. GitLab 18.10에서 상호 TLS 지원이 도입 되었습니다. TLS(전송 계층 보안)를 사용하여 Redis와 Sentinel 통신을 보안합니다. 표준 TLS(서버 인증서 검증)와 상호 TLS(mTLS, 클라이언트와 서버가 서로 인증) 모두 지원됩니다. Redis 또는 Sentinel에 TLS를 활성화하는 경우, 배포에서 Redis와 Sentinel 모두에 TLS를 활성화해야 합니다. 동일한 환경에서 TLS와 비TLS 연결을 혼합하면 구성이 복잡해지고 잠재적인 보안 문제가 발생할 수 있습니다. 표준 비TLS 포트를 비활성화하고 TLS 연결만 허용하려면 구성에서 포트를 0으로 설정합니다. 예를 들어: 표준 Redis 포트(6379)를 비활성화하려면 redis['port'] = 0 을 추가합니다. 표준 Sentinel 포트(26379)를 비활성화하려면 sentinel['port'] = 0 을 추가합니다. TLS 인증서 및 키 파일 생성 # TLS를 구성하기 전에 다음 인증서와 키를 생성하거나 획득해야 합니다. 이 예시 파일명은 전체적으로 사용됩니다: CA 인증서 ( ca.crt ): 서버 인증서를 검증하는 인증 기관 인증서. 서버 인증서 ( redis-server.crt ): Redis 서버용 인증서(CA로 서명). 서버 키 ( redis-server.key ): Redis 서버 인증서의 개인 키. Sentinel 서버 인증서 ( sentinel-server.crt ): Sentinel 서버용 인증서(CA로 서명). Sentinel 서버 키 ( sentinel-server.key ): Sentinel 서버 인증서의 개인 키. 클라이언트 인증서 ( redis-client.crt , mTLS용): 클라이언트용 인증서(CA로 서명). 클라이언트 키 ( redis-client.key , mTLS용): 클라이언트 인증서의 개인 키. 이 예시에서는 인증서 디렉토리로 /etc/gitlab/ssl/ 을 사용하지만, 필요한 프로세스가 읽을 수 있도록 적절한 파일 권한이 설정된 경우 어떤 디렉토리에도 인증서를 저장할 수 있습니다. 샘플 인증서 생성 스크립트 # 다음 스크립트는 적절한 SAN이 포함된 Redis와 Sentinel용 완전한 인증서 세트를 생성합니다. 실행하기 전에 IP 주소와 호스트명을 실제 인프라와 일치하도록 사용자 정의해야 합니다. Warning CA 개인 키( ca.key )는 민감한 정보입니다. 인증서를 생성한 후 CA 개인 키를 오프라인으로 안전하게 저장하고 프로덕션 서버에서 제거하는 것을 고려하세요. 다음 내용으로 generate-redis-certs.sh 파일을 만듭니다: # !/bin/bash # Configuration: CUSTOMIZE THESE VALUES FOR YOUR INFRASTRUCTURE CERT_DIR="/etc/gitlab/ssl" CA_CN="redis-ca
