5.9. 구성 파일에서 암호 암호화
기본적으로 AMQ Broker는 구성 파일의 모든 암호를 일반 텍스트로 저장합니다. 권한이 없는 액세스를 방지하기 위해 모든 구성 파일을 올바른 권한으로 보호하십시오. 또한 일반 텍스트 암호를 암호화하거나 마스크 하여 원하지 않는 뷰어가 읽을 수 없도록 할 수 있습니다.
5.9.1. 암호화된 암호 정보
암호화되거나 마스킹된 password는 일반 텍스트 암호의 암호화된 버전입니다. 암호화된 버전은 AMQ Broker에서 제공하는 마스크
명령줄 유틸리티에 의해 생성됩니다. 마스크
유틸리티에 대한 자세한 내용은 명령줄 도움말 설명서를 참조하십시오.
$ <broker_instance_dir>/bin/artemis help mask
암호를 마스킹하려면 일반 텍스트 값을 암호화된 값으로 바꿉니다. 마스킹된 암호는 실제 값이 필요할 때 암호를 해독하도록 식별자 ENC()
로 래핑해야 합니다.
다음 예에서 구성 파일 < broker_instance_dir> /etc/bootstrap.xml
에는 keyStorePassword
및 trustStorePassword
매개변수에 대한 마스크된 암호가 포함되어 있습니다.
<web bind="https://localhost:8443" path="web" keyStorePassword="ENC(-342e71445830a32f95220e791dd51e82)" trustStorePassword="ENC(32f94e9a68c45d89d962ee7dc68cb9d1)"> <app url="activemq-branding" war="activemq-branding.war"/> </web>
다음 구성 파일에서 마스킹된 암호를 사용할 수 있습니다.
- broker.xml
- bootstrap.xml
- management.xml
- artemis-users.properties
-
login.config (
LDAPLoginModule
과 함께 사용하는 경우)
구성 파일은 < broker_instance_dir> /etc
에서 찾을 수 있습니다.
Artemis-users.properties
는 해시된 암호만 지원합니다. 사용자가 브로커 생성 시 생성될 때 artemis-users.properties
에는 기본적으로 해시된 암호가 포함됩니다. 기본 PropertiesLoginModule
은 artemis-users.properties
파일에서 암호를 디코딩하지 않지만 입력을 해시하고 암호 확인을 위해 해시된 두 값을 비교합니다. 해시된 암호를 마스킹된 암호로 변경하면 AMQ Broker 관리 콘솔에 액세스할 수 없습니다.
broker.xml
,bootstrap.xml
,management.xml
, login.config
는 마스킹되었지만 해시되지 않은 암호를 지원합니다.
5.9.2. 구성 파일에서 암호 암호화
다음 예제에서는 broker.xml
구성 파일에서 cluster-password
의 값을 마스킹하는 방법을 보여줍니다.
절차
명령 프롬프트에서
마스크
유틸리티를 사용하여 암호를 암호화합니다.$ <broker_instance_dir>/bin/artemis mask <password>
result: 3a34fd21b82bf2a822fa49a8d8fa115d
마스킹할 일반 텍스트 암호가 포함된 <
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다.<cluster-password> <password> </cluster-password>
일반 텍스트 암호를 암호화된 값으로 바꿉니다.
<cluster-password> 3a34fd21b82bf2a822fa49a8d8fa115d </cluster-password>
ENC()
식별자로 암호화된 값을 래핑합니다.<cluster-password> ENC(3a34fd21b82bf2a822fa49a8d8fa115d) </cluster-password>
이제 설정 파일에 암호화된 암호가 포함됩니다. 암호가 ENC()
식별자로 래핑되므로 AMQ Broker가 사용하기 전에 암호를 해독합니다.
추가 리소스
- AMQ Broker에 포함된 구성 파일에 대한 자세한 내용은 1.1절. “AMQ Broker 구성 파일 및 위치” 을 참조하십시오.
5.9.3. 암호를 암호화하고 암호 해독하기 위해 codec 키 설정
암호를 암호화하고 해독하는 데 코드c가 필요합니다. 사용자 정의 코드c가 구성되지 않은 경우 mask
유틸리티는 기본 코드c를 사용하여 암호를 암호화하고 AMQ Broker는 동일한 기본 코드c를 사용하여 암호 해독을 수행합니다. codec는 암호를 암호화하고 해독하기 위해 기본 암호화 알고리즘에 제공하는 기본 키로 구성됩니다. 기본 키를 사용하면 악의적인 행위자가 키를 사용하여 암호 해독을 수행할 위험이 노출됩니다.
마스크
유틸리티를 사용하여 암호를 암호화하는 경우 기본 codec 키를 사용하지 않도록 고유한 키 문자열을 지정할 수 있습니다. 그런 다음 ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
환경 변수에서 동일한 키 문자열을 설정해야 브로커가 암호를 해독할 수 있습니다. 환경 변수에서 키를 설정하면 구성 파일에 유지되지 않으므로 더 안전합니다. 또한 브로커를 시작하기 직전에 키를 설정하고 브로커가 시작된 직후에 설정을 해제할 수 있습니다.
절차
mask
유틸리티를 사용하여 구성 파일의 각 암호를 암호화합니다.key
매개변수에 대해 암호를 암호화할 문자 문자열을 지정합니다. 동일한 키 문자열을 사용하여 각 암호를 암호화합니다.$ <broker_instance_dir>/bin/artemis mask --key <key> <password>
주의마스크
유틸리티를 실행하여 암호를 암호화할 때 지정하는 키 문자열의 레코드를 보관해야 합니다. 브로커가 암호 해독을 허용하도록 환경 변수에 동일한 키 값을 구성해야 합니다.구성 파일의 암호를 암호화하는 방법에 대한 자세한 내용은 5.9.2절. “구성 파일에서 암호 암호화” 을 참조하십시오.
명령 프롬프트에서
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
환경 변수를 각 암호를 암호화할 때 지정한 키 문자열로 설정합니다.$ export ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY= <key>
브로커를 시작합니다.
$ ./artemis run
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
환경 변수를 설정 해제합니다.$ unset ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
참고브로커를 시작한 후
ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
환경 변수를 설정 해제하는 경우 나중에 브로커를 시작하기 전에 동일한 키 문자열로 다시 설정해야 합니다.