1.4. 브로커 구성 파일 수정
공통 구성 설정을 공유하는 브로커가 여러 개인 경우 별도의 파일에 공통 구성을 정의한 다음 각 브로커의 broker.xml
구성 파일에 이러한 파일을 포함시킬 수 있습니다.
브로커 간에 공유할 수 있는 가장 일반적인 구성 설정은 다음과 같습니다.
- 주소
- 주소 설정
- 보안 설정
절차
공유하려는 각
broker.xml
섹션에 대해 별도의 XML 파일을 생성합니다.각 XML 파일에는
broker.xml
의 단일 섹션만 포함할 수 있습니다(예: 주소 또는 주소 설정, 둘 다는 아님). 최상위 수준 요소는 요소 네임스페이스(xmlns="urn:activemq:core"
)도 정의해야 합니다.이 예에서는
my-security-settings.xml
에 정의된 보안 설정 구성을 보여줍니다.my-security-settings.xml
<security-settings xmlns="urn:activemq:core"> <security-setting match="a1"> <permission type="createNonDurableQueue" roles="a1.1"/> </security-setting> <security-setting match="a2"> <permission type="deleteNonDurableQueue" roles="a2.1"/> </security-setting> </security-settings>
-
공통 구성 설정을 사용해야 하는 각 브로커에 대해 <
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 개설한 각
broker.xml
파일에 대해 다음을 수행하십시오.broker.xml
시작 부분에 있는 <configuration
> 요소에서 다음 행이 표시되는지 확인합니다.xmlns:xi="http://www.w3.org/2001/XInclude"
공유 구성 설정이 포함된 각 XML 파일에 대해 XML 포함을 추가합니다.
이 예제에는
my-security-settings.xml
파일이 포함되어 있습니다.broker.xml
<configuration ...> <core ...> ... <xi:include href="/opt/my-broker-config/my-security-settings.xml"/> ... </core> </configuration>
필요한 경우
broker.xml
의 유효성을 검사하여 XML이 스키마에 대해 유효한지 확인합니다.XML 검증기를 사용할 수 있습니다. 이 예제에서는
xmllint
를 사용하여artemis-server.xsl
스키마에 대해broker.xml
의 유효성을 검사합니다.$ xmllint --noout --xinclude --schema /opt/redhat/amq-broker/amq-broker-7.2.0/schema/artemis-server.xsd /var/opt/amq-broker/mybroker/etc/broker.xml /var/opt/amq-broker/mybroker/etc/broker.xml validates
추가 리소스
- XML 포함(XIncludes)에 대한 자세한 내용은 https://www.w3.org/TR/xinclude/ 을 참조하십시오.
1.4.1. 모듈식 구성 파일 다시 로드
브로커가 구성 변경 사항(config -file-refresh-period
로 지정된 빈도에 따라) 주기적으로 확인하면 xi:include
를 통해 broker.xml
구성 파일에 포함된 구성 파일에 대한 변경 사항을 자동으로 감지하지 않습니다. 예를 들어 broker.xml
에 my-address-settings.xml
이 포함되어 있고 my-address-settings.xml
설정을 변경하는 경우 브로커는 my-address-settings.xml
의 변경 사항을 자동으로 탐지하고 구성을 다시 로드하지 않습니다.
broker.xml
구성 파일 및 여기에 포함된 수정된 구성 파일을 강제로 다시 로드하려면 broker.xml
구성 파일의 "최종 수정됨" 타임 스탬프가 변경되었는지 확인해야 합니다. 표준 Linux touch
명령을 사용하여 다른 변경없이 broker.xml
의 마지막 수정 타임 스탬프를 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
$ touch -m <broker_instance_dir>/etc/broker.xml
또는 관리 API를 사용하여 브로커를 강제로 다시 로드할 수 있습니다. 구성 파일은 ActiveMQServerControl
의 관리 작업 reloadConfigurationFile()
을 사용하여 다시 로드할 수 있습니다( ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
또는 리소스 이름 서버
)
추가 리소스
- 관리 API 사용 방법에 대한 자세한 내용은 AMQ Broker 관리에서 관리 API 사용을 참조하십시오.
1.4.2. 외부 XML 엔티티(XXE) 처리 비활성화
broker.xml
파일에 포함된 별도의 파일에 브로커 구성을 모듈화하지 않으려면 XXE 처리를 비활성화하여 XXE 보안 취약점으로부터 AMQ 브로커를 보호할 수 있습니다. 모듈식 브로커 구성이 없는 경우 XXE 처리를 비활성화하는 것이 좋습니다.
절차
-
<
;broker_instance_dir>/etc/artemis.profile
파일을 엽니다. Java 시스템 인수의
JAVA_ARGS
목록에 새 인수-Dartemis.disableXxe
를 추가합니다.-Dartemis.disableXxe=true
-
artemis.profile
파일을 저장합니다.