13.9. 데이터 소스 보안
데이터 소스 보안은 데이터 소스 연결에 대한 암호를 암호화하거나 모호하게 하는 것을 나타냅니다. 이러한 암호는 구성 파일의 일반 텍스트로 저장할 수 있지만 이는 보안 위험을 나타냅니다.
데이터 소스 보안에 권장되는 솔루션은 보안 도메인 또는 암호 자격 증명 모음을 사용하는 것입니다. 각각에 대한 예는 아래에 포함되어 있습니다.
보안 도메인을 사용하여 데이터 소스 보안
데이터 소스에 대한 보안 도메인이 정의됩니다.
<security-domain name="DsRealm" cache-type="default"> <authentication> <login-module code="ConfiguredIdentity" flag="required"> <module-option name="userName" value="sa"/> <module-option name="principal" value="sa"/> <module-option name="password" value="sa"/> </login-module> </authentication> </security-domain>
<security-domain name="DsRealm" cache-type="default">
<authentication>
<login-module code="ConfiguredIdentity" flag="required">
<module-option name="userName" value="sa"/>
<module-option name="principal" value="sa"/>
<module-option name="password" value="sa"/>
</login-module>
</authentication>
</security-domain>
보안 도메인을 여러 데이터 소스와 함께 사용하는 경우 보안 도메인에서 캐싱을 비활성화해야 합니다. 이 작업은 cache-type
속성 값을 none
으로 설정하거나 속성을 완전히 제거하여 수행할 수 있습니다. 그러나 캐싱이 필요한 경우 각 데이터 소스에 별도의 보안 도메인을 사용해야 합니다.
그런 다음 데이터 소스 구성에서 DsRealm
보안 도메인을 참조합니다.
<datasources> <datasource jndi-name="java:jboss/datasources/securityDs" pool-name="securityDs"> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <new-connection-sql>select current_user()</new-connection-sql> <security> <security-domain>DsRealm</security-domain> </security> </datasource> </datasources>
<datasources>
<datasource jndi-name="java:jboss/datasources/securityDs"
pool-name="securityDs">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<new-connection-sql>select current_user()</new-connection-sql>
<security>
<security-domain>DsRealm</security-domain>
</security>
</datasource>
</datasources>
보안 도메인 사용에 대한 자세한 내용은 Identity 관리 구성 가이드를 참조하십시오.
암호 자격 증명 모음을 사용하여 데이터 소스 보안
<security> <user-name>admin</user-name> <password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password> </security>
<security>
<user-name>admin</user-name>
<password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password>
</security>
Password Vault 사용에 대한 자세한 내용은 서버 보안 구성 가이드를 참조하십시오.