반응형

Spring Boot에서 ElastiCache for Redis 연동하여 Session 관리 설정한 후 Spring Boot 시작 시 CONFIG 설정 관련 에러 발생하며 Spring Boot가 정상적으로 시작되지 않는 현상이 있습니다.

⛔️ org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource [org/springframework/boot/autoconfigure/session/RedisSessionConfiguration$SpringBootRedisHttpSessionConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: ERR unknown command `CONFIG`, with args beginning with: `GET`, `notify-keyspace-events`

원인

redis 보안 규칙에서는 원격 유저가 redis의 설정을 임의로 변경할 수 없도록 CONFIG 명령을 비활성할 것을 권고하고 있습니다.

Spring의 RedisHttpSessionConfiguration에서는 초기화 과정에서 CONFIG 명령에 접근합니다.

해결책

Spring Session 1.0.1에서는 CONFIG 명령 사용을 제한할 수 있는 옵션을 추가하였습니다.

다음의 코드를 Bean으로 등록 후 빌드/배포하면 Spring Boot가 정상적으로 실행됩니다.

@Configuration
public class AppConfig {
 
   @Bean
   public ConfigureRedisAction configureRedisAction() {
       return ConfigureRedisAction.NO_OP;
   }
}

참고 링크

https://github.com/spring-projects/spring-session/issues/124

 

ERR unknown command 'CONFIG' when using Secured Redis · Issue #124 · spring-projects/spring-session

Redis security recommends disabling the CONFIG command so that remote users cannot reconfigure an instance. The RedisHttpSessionConfiguration requires access to this during its initialization. Host...

github.com

https://redis.io/docs/management/security/

 

Redis security

Security model and features in Redis

redis.io

https://somida.tistory.com/189

반응형

+ Recent posts