본문 바로가기

WAS/JBoss_WildFly

[WildFly/JBoss] 데이터소스 DB 접속 계정 password 암호화 (WildFly26)

#. 참고 글

https://courses.bekwam.net/public_tutorials/bkcourse_wildfly_elytron_credential_store.html

 


 

#. 테스트 환경

WildFly 26.1.2

JDK17

CentOS 7

 


 

#. DB 접속 계정 password 노출

데이터소스 생성 시

아래와 같이 DB 접속 게정의 password가 노출되어 보안상 좋지 않다.

 


 

#. 데이터소스 password 암호화 방법 변경

https://hyuunchul.tistory.com/281

WildFly23 / JBoss7.4 버전 까지는

별도 스크립트를 활용하여 (jboss_datasource_encryption.sh) 패스워드 암호화를 구현했으나,

WildFly 25 버전부터 해당 방법 사용이 불가해졌다.

25버전 부터는 서버에 내장된 Elytron 서브시스템을 사용해야 한다.

 


 

#. Elytron을 사용하여 데이터소스 Password 암호화

암호화 작업은 전부 Management Console 내에서 진행한다.

수정 대상 profile 을 사용하는 서버가 하나 이상 running 상태여야 한다.

 

01. Credential Store 생성

configuration -> {사용 중인 profile} -> security -> Other Settings 메뉴로 이동

 

화면 우측 상단의 ADD 버튼 클릭

아래와 같이 입력

 

정상적으로 추가되었다.

 


 

02. password alias 지정

해당 작업은 변경 대상 profile을 사용하는 모든 server에 각각 모두 적용해야 한다.

Runtime -> Host -> {호스트명} -> {서버} -> Security -> Stores 메뉴로 이동

 

앞서 추가한 Credential Store 가 등록되어 있다.

해당 항목 우측의 Aliases 버튼을 클릭한다.

 

화면 우측 상단의 Add Aliases 클릭

 

아래와 같은 팝업창이 출력된다.

Alias 이름은 자유롭게 지정 가능하나, 앞서 추가한 Credential Store 와의 구분을 위해

{Credential Store}_{데이터소스 이름} 으로 네이밍 하는 것을 권장한다.

 

예시)

Credential Store 이름 : datasource_password

datasource 이름 : test_oracle

password Alias 이름 : datasource_password_test_oracle

 

Secret Value 값에 DB 접속 계정 password를 입력한다.

 

password alias 가 정상적으로 추가되었다.

 


 

03. 데이터소스에 password alias 적용

Configuration -> {사용 중인 profile} -> Datasources & Drivers -> Datasources -> {데이터소스 이름} 메뉴로 이동

Credential Reference 탭으로 이동한다.

화면 중앙의 Add 버튼을 클릭한다.

Store 값은 앞서 추가한 Credential Store 이름을 선택

Alias 값은 앞서 추가한 password alias 이름을 입력

 

Security 탭으로 이동하면

Password 값이 사라진 것을 볼 수 있다.

더 이상 Management Console 내에서 DB Password 값이 노출되지 않는다.

 


 

04. 서버 재기동 후 확인

변경 대상 profile을 사용하는 모든 server를 재기동한다.

Runtime -> Host -> {호스트명} -> {서버} -> Datasources -> {데이터소스 이름} 메뉴로 이동

데이터소스 connection test를 시도하여 정상적으로 DB에 접속 되는지 확인한다.