JBoss EAP 데이터소스에 설정된 DB 접속 암호를 암호화 하는 방안을 소개합니다.
1. 사용 목적
JBoss EAP 설정에서 DataSource에 설정된 DB접속 암호를 암호화하여 암호 외부 유출을 방지
2. 테스트 완료 버전
JBoss EAP 기준 JAVA 버전별 테스트 완료한 내용입니다.
JBoss EAP 버전 | JAVA 버전 |
6.4.x | 1.6.0, 1.7.0, 1.8.0 |
7.2.x, 7.3.x | 1.8.0 |
3. 설정 방법
① 데이터베이스 패스워드 인코딩에 필요한 환경
항목 | 내용 |
JAVA | JAVA 1.8.0 이상(데이터베이스 암호화를 위한 버전) |
필요 파일 | jboss-logging-3.3.2.Final-redhat-00001.jar picketbox-5.0.3.Final-redhat-3.jar picketbox-commons-1.0.0.final-redhat-5.jar picketbox-infinispan-5.0.3.Final-redhat-3.jar |
JBoss EAP 지원 버전 |
JBoss EAP 6.4 이상 JBoss EAP 7.2 이상 |
② 패스워드 인코딩 실행 스크립트(dbms-encryption.-password.sh)
#!/bin/sh
JAVA_HOME=/usr/lib/jvm/jre-1.8.0/bin
JBOSS_HOME=/JBOSS/jboss-eap-7.3
picketbox=`find ${JBOSS_HOME}/ -type f -name "picketbox*" | sort | head -n 1`
jboss_logging=`find $}JBOSS_HOME}/ -type f -name "jboss-logging*"`
module_name=org.picketbox.datasource.security.SecureIdentityLoginModule
export CLASSPATH=${picketbox}:${jboss_logging}
if [ -d $JAVA_HOME ]; then
read -p "Input Database Password : " dbpassword
${JAVA_HOME}/java -cp $CLASSPATH ${module_name} ${dbpassword}
else
echo "JAVA 1.8 is not installed. Please install and try again."
fi
③ 패스워드 암호화 실행 스크립트 실행
[jboss@was1]$ ./dbms-encryption-password.sh
Input Database Password : 데이터베이스 암호 입력
Encoded password: 2d6219b35e931895a1f65ce06a77a33c
[jboss@was1]$
④ JBoss EAP 설정파일(standalone-ha.xml)에 Datasource 암호화 설정
Datasource 암호화 설정을 위해 security domain 설정을 추가해야 합니다.
[jboss@was1]$vim $JBOSS_HOME/domains/노드명/configuration/standalone-ha.xml
--- 생략 ---
<subsystem xmlns="urn:jboss:domain:security:2.0">
<security-domains>
# 아래 항목 추가
<security-domain name="cubrid-password" cache-type="default">
<authentication>
<login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
<module-option name="username" value="데이터베이스 접속 유저명"/>
<module-option name="password" value="암호화된 코드"/>
<module-option name="managedConnectionFactoryName" value="jbossjca:service=LocalTxCM,name=cubridDS"/>
</login-module>
</authentication>
</security-domain>
--- 생략 ---
⑤ Datasource 설정 변경
[jboss@was1]$vim $JBOSS_HOME/domains/노드명/configuration/standalone-ha.xml
--- 생략 ---
<subsystem xmlns="urn:jboss:domain:datasources:5.0">
<datasources>
<datasource jndi-name="java:jboss/cubridDS" pool-name="cubridDS" enabled="true" use-ccm="false">
<connection-url>jdbc:cubrid:호스트명:33000:DB명:::?charset=utf-8</connection-url>
<driver-class>cubrid.jdbc.driver.CUBRIDDriver</driver-class>
<driver>cubrid</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>true</use-strict-min>
</pool>
<security>
<user-name>데이터베이스 접속 유저명</user-name> <- 삭제
<password>데이터베이스 접속 암호</password> <- 삭제
<security-domain>cubrid-password</security-domain> <- 추가
</security>
--- 생략 ---
'IT 이야기 > JBoss EAP' 카테고리의 다른 글
[JBoss EAP 7] JBoss EAP 7.3 주요 설정 내용 (17) | 2023.04.11 |
---|---|
[JBoss EAP 6] JBoss EAP 6.4 주요 설정 내용 (0) | 2021.08.20 |
[JBoss EAP 7] 세션 공유를 위한 JGroups 멀티캐스트 프로토콜을 UDP -> TCP로 변경 (5) | 2021.06.15 |
[JBoss EAP] JAVA 1.8에 맞는 JAVA옵션 설정 (0) | 2021.06.15 |
[JBoss EAP] JBoss EAP 6에서 7으로 업그레이드 후 java.io.IOExeption:User limit of inotify watches reached 에러 발생 (0) | 2021.06.15 |
댓글