다이내믹 설정 공급자
다이내믹 설정 공급자 (Dynamic Config Providers)
드루이드(Druid) 익스텐션 안에서 여러 관련된 자격 증명·비밀·설정 집합을 공급하는 다이내믹 설정 공급자(dynamic config provider)를 설명하는 문서예요. 특히 환경 변수 기반 공급자를 통해 비밀번호를 평문 대신 환경 변수로 관리하는 방법을 다루어요.
출처: 문서
본문
Druid는 드루이드 익스텐션 안에서 여러 관련된 자격 증명(credential), 비밀(secret), 설정(configure) 집합을 공급하기 위해 다이내믹 설정 공급자에 의존해요. 다이내믹 설정 공급자는 결국 PasswordProvider를 대체할 목적으로 설계되었어요.
기본적으로 Druid에는 Kafka 인제스트에서 Kafka 컨슈머 설정을 지원하는 환경 변수 다이내믹 설정 공급자가 포함되어 있어요.
Druid 프로세스 시작 시 등록되는 DynamicConfigProvider 인터페이스의 커스텀 익스텐션을 개발하려면, 새 DynamicConfigProvider 구현 추가 문서를 참고하세요.
환경 변수 다이내믹 설정 공급자 (Environment variable dynamic config provider)
환경 변수 다이내믹 설정 공급자(EnvironmentVariableDynamicConfigProvider)를 사용하면 비밀번호나 기타 민감한 정보를 평문 설정 대신 시스템 환경 변수로 저장할 수 있어요.
환경 변수 다이내믹 설정 공급자는 다음 구문을 사용해요.
druid.dynamic.config.provider={"type": "environment","variables":{"secret1": "SECRET1_VAR","secret2": "SECRET2_VAR"}}
| 필드 | 타입 | 설명 | 필수 |
|---|---|---|---|
type |
String | 다이내믹 설정 공급자 타입 | environment |
variables |
Map | 설정 정보를 저장하는 환경 변수 | 예 |
환경 변수 설정 공급자를 사용할 때 다음 사항을 고려하세요.
- 구성 키-값 쌍을 수동으로 지정하면서 같은 키에 대해 다이내믹 설정 공급자를 사용하면, Druid는 다이내믹 설정 공급자의 값을 사용해요.
- supervisor 스펙에서 사용하려면, 환경 변수가 Overlord 서비스와 Peon 서비스를 실행하는 시스템 사용자에게 제공되어야 해요.
다음 예시는 Kafka의 SSL 키와 트러스트스토어 비밀번호를 저장하도록 환경 변수를 구성하는 방법을 보여줘요.
Overlord와 Peon 머신에서 Druid 서비스를 실행하는 시스템 사용자에 대해 다음 환경 변수를 설정하세요.
export SSL_KEY_PASSWORD=mysecretkeypassword
export SSL_KEYSTORE_PASSWORD=mysecretkeystorepassword
export SSL_TRUSTSTORE_PASSWORD=mysecrettruststorepassword
supervisor 스펙에 컨슈머 속성을 정의할 때 다이내믹 설정 공급자를 사용해 환경 변수를 참조하세요.
...
"consumerProperties": {
"bootstrap.servers": "localhost:9092",
"ssl.keystore.location": "/opt/kafka/config/kafka01.keystore.jks",
"ssl.truststore.location": "/opt/kafka/config/kafka.truststore.jks",
"druid.dynamic.config.provider": {
"type": "environment",
"variables": {
"ssl.key.password": "SSL_KEY_PASSWORD",
"ssl.keystore.password": "SSL_KEYSTORE_PASSWORD",
"ssl.truststore.password": "SSL_TRUSTSTORE_PASSWORD"
}
}
},
...
Kafka에 연결할 때 Druid는 환경 변수를 그에 대응하는 값으로 대체해요.
더 알아보기 (Learn more)
- PasswordProvider 문서에서 비밀번호 공급자의 기존 방식과 대체 흐름을 살펴보세요.
- Kafka 인제스트 문서에서 supervisor 스펙 설정을 자세히 알아보아요.
- 모듈(Module) 개발 문서에서 새 DynamicConfigProvider 구현을 추가하는 방법을 확인해 보세요.