본문 바로가기
WAS/JBOSS_WILDFLY

17. DataSource DB Password 암호화(JBoss 8)

by coldplayer83 2025. 8. 5.
728x90
반응형

JBoss 8버전에서는 기존 7버전(PicketBox Vault 방식 사용)과 달리 Elytron Credential Store 방식을 사용하여 데이터 소스 암호화 진행

 

암호화 방식은 아래와 같이 여러 방식이 있으며 여기서는 인증 정보 저장소 사용 (credential store) 방식으로 테스트 하였음

- 보안 도메인 사용(security domain)

- 암호 자격 증명 모음 사용(password vault)

- 인증 정보 저장소 사용(credential store)

- 인증 컨텍스트 사용(authentication context)

- Kerberos 사용

 

https://docs.redhat.com/ko/documentation/red_hat_jboss_enterprise_application_platform/8.0/html/configuration_guide/datasource_security

 

11.10. 데이터 소스 보안 | 구성 가이드 | Red Hat JBoss Enterprise Application Platform | 8.0 | Red Hat Documentation

형식멀티 페이지단일 페이지모든 문서를 PDF로 표시

docs.redhat.com

 

[ credential store 방식]

1) cli 접속

 

2) credential store 생성(붉게 표시한 부분을 원하는 이름으로 변경)

/subsystem=elytron/credential-store=pgsql_store:add(location="csstore.jceks", relative-to=jboss.server.data.dir, credential-reference={clear-text=pgsql_enc},create=true)

 

pgsql_store라는 이름의 credential-store를 생성하고 내용을 csstore.jceks에 저장

파일은 ${instance_home}/data 디렉토리에 저장

credential-reference의 clear-text를 pgsql_enc로 저장

 

3) 생성한 credential store의 alias 등록

/subsystem=elytron/credential-store=pgsql_store:add-alias(alias=pgsql_pwd_enc, secret-value="testuser123$")

 

위에서 생성한 pgsql_store의 alias를 pgsql_pwd_enc로 지정

db 접속 비밀번호를 secret-value에 입력

 

4) standalone-ha.xml 파일에 평문으로 존재하는 datasource password 삭제

/subsystem=datasources/data-source=PostgresDS:undefine-attribute(name=password)

※ 이미 존재하는 password 태그를 지우지 않으면 아래와 같은 에러 발생

<credential-reference> 태그와 <password> 태그의 충돌로 발생

 

standalone-ha.xml 파일에서 해당 태그 삭제된 것 확인

<user-name>태그 밑에 존재했음

 

5) credential-reference 태그로 암호화된 패스워드 등록

/subsystem=datasources/data-source=PostgresDS:write-attribute(name=credential-reference,value={store=pgsql_store, alias=pgsql_pwd_enc})

 

등록 내용 확인

 

6) 서버 재기동 후 테스트 커넥션 확인

 


DB 패스워드 변경시 아래와 같이 alias 삭제 후 재등록

/subsystem=elytron/credential-store=${store_name}:remove-alias(alias=${alias_name})
ex) /subsystem=elytron/credential-store=pgs_store:remove-alias(alias=pgsql_pwd_enc)

reload

/subsystem=elytron/credential-store=pgsql_store:add-alias(alias=pgsql_pwd_enc, secret-value="testuser123$")
728x90
반응형