5.3.2. 사용자 및 역할 기반 권한 부여 구성
5.3.2.1. 권한 설정
권한은 broker.xml
구성 파일의 < security-setting
> 요소를 통해 큐(주소 기반)에 대해 정의됩니다. 구성 파일의 < security-
>의 여러 인스턴스를 정의할 수 있습니다. 정확한 주소 일치를 지정하거나 숫자 기호(settings> 요소에서 <security-
setting#
) 및 별표(*
) 와일드카드 문자를 사용하여 와일드카드 일치를 정의할 수 있습니다.
주소와 일치하는 큐 세트에 다양한 권한을 부여할 수 있습니다. 이러한 권한은 다음 표에 표시되어 있습니다.
사용자가…을 허용하도록 허용 | 이 매개변수 사용… |
---|---|
주소 생성 |
|
주소 삭제 |
|
일치하는 주소에 있는 영구 큐 생성 |
|
일치하는 주소에 있는 내구성 큐 삭제 |
|
순서가 지정되지 않은 큐를 일치하는 주소 아래에 생성 |
|
순서가 지정되지 않은 큐를 일치하는 주소 아래에 삭제 |
|
일치하는 주소로 메시지를 보냅니다. |
|
일치하는 주소에 바인딩된 큐의 메시지 사용 |
|
관리 주소로 관리 메시지를 전송하여 관리 작업 호출 |
|
일치하는 주소로 바인딩된 큐 검색 |
|
각 권한에 대해 권한이 부여된 역할 목록을 지정합니다. 지정된 사용자에게 역할이 모두 있는 경우 해당 주소 집합에 대한 권한이 부여됩니다.
다음 섹션에서는 권한에 대한 몇 가지 구성 예제를 보여줍니다.
5.3.2.1.1. 단일 주소에 대한 메시지 프로덕션 구성
다음 절차에서는 단일 주소에 대한 메시지 프로덕션 권한을 구성하는 방법을 보여줍니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
security-
추가합니다.settings> 요소에 단일 <security-setting
> 요소를일치
키의 경우 주소를 지정합니다. 예를 들면 다음과 같습니다.<security-settings> <security-setting match="my.destination"> <permission type="send" roles="producer"/> </security-setting> </security-settings>
이전 구성에 따라
producer
역할의 멤버는 주소my.destination
에 대한 권한을보냅니다
.
5.3.2.1.2. 단일 주소에 대한 메시지 사용 구성
다음 절차에서는 단일 주소에 대한 메시지 사용 권한을 구성하는 방법을 보여줍니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
security-
추가합니다.settings> 요소에 단일 <security-setting
> 요소를일치
키의 경우 주소를 지정합니다. 예를 들면 다음과 같습니다.<security-settings> <security-setting match="my.destination"> <permission type="consume" roles="consumer"/> </security-setting> </security-settings>
이전 구성에 따라
consumer
역할의 멤버는my.destination
.destination에 대한 권한을사용합니다
.
5.3.2.1.3. 모든 주소에 대한 전체 액세스 구성
다음 절차에서는 모든 주소 및 관련 큐에 대한 전체 액세스를 구성하는 방법을 보여줍니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
security-
추가합니다.settings> 요소에 단일 <security-setting
> 요소를일치
키의 경우 모든 주소에 대한 액세스를 구성하려면 숫자 기호(#
) 와일드카드 문자를 지정합니다. 예를 들면 다음과 같습니다.<security-settings> <security-setting match="#"> <permission type="createDurableQueue" roles="guest"/> <permission type="deleteDurableQueue" roles="guest"/> <permission type="createNonDurableQueue" roles="guest"/> <permission type="deleteNonDurableQueue" roles="guest"/> <permission type="createAddress" roles="guest"/> <permission type="deleteAddress" roles="guest"/> <permission type="send" roles="guest"/> <permission type="browse" roles="guest"/> <permission type="consume" roles="guest"/> <permission type="manage" roles="guest"/> </security-setting> </security-settings>
이전 구성에 따라 모든 권한이 모든 큐에 대한 guest 역할의 구성원에게 부여됩니다. 이는 모든 사용자에게
게스트
역할을 할당하도록 익명 인증이 구성된 개발 시나리오에서 유용할 수 있습니다.
추가 리소스
- 보다 복잡한 사용 사례 구성에 대한 자세한 내용은 5.3.2.1.4절. “여러 보안 설정 구성” 을 참조하십시오.
5.3.2.1.4. 여러 보안 설정 구성
다음 예제 절차에서는 일치하는 주소 집합에 대해 여러 보안 설정을 개별적으로 구성하는 방법을 보여줍니다. 이 섹션에서는 모든 주소에 대한 전체 액세스 권한을 부여하는 방법을 보여주는 이 섹션의 이전 예제와는 대조됩니다.
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
security-
추가합니다.settings> 요소에 단일 <security-setting
> 요소를일치하는 주소 집합에 설정을 적용하려면 일치
키의 경우 숫자 기호(#
) 와일드카드 문자를 포함합니다. 예를 들면 다음과 같습니다.<security-setting match="globalqueues.europe.#"> <permission type="createDurableQueue" roles="admin"/> <permission type="deleteDurableQueue" roles="admin"/> <permission type="createNonDurableQueue" roles="admin, guest, europe-users"/> <permission type="deleteNonDurableQueue" roles="admin, guest, europe-users"/> <permission type="send" roles="admin, europe-users"/> <permission type="consume" roles="admin, europe-users"/> </security-setting>
match=globalqueues.europe.#
-
숫자 기호(
#
) 와일드카드 문자는 브로커가 "모든 단어 시퀀스로 해석됩니다. 마침표(.
. )로 구분됩니다. 이 예에서 보안 설정은 globalqueues.europe 문자열으로 시작하는 모든 주소에 적용됩니다. permission type="createDurableQueue"
-
admin
역할이 있는 사용자만 globalqueues.europe 문자열로 시작하는 주소에 바인딩된 내구성 대기열을 생성하거나 삭제할 수 있습니다. permission type="createNonDurableQueue"
-
admin
역할,게스트
또는europe-users
가 있는 모든 사용자는 globalqueues.europe 문자열로 시작하는 주소에 바인딩된 임시 대기열을 생성하거나 삭제할 수 있습니다. 권한 유형="send"
-
admin
또는europe-users
역할이 있는 모든 사용자는 globalqueues.europe 문자열로 시작하는 주소에 바인딩된 큐에 메시지를 보낼 수 있습니다. permission type="consume"
-
역할
admin
또는europe-users
가 있는 모든 사용자는 globalqueues.europe 문자열으로 시작하는 주소로 바인딩된 큐의 메시지를 사용할 수 있습니다.
(선택 사항) 다른 보안 설정을 보다 좁은 주소 세트에 적용하려면 다른 <
security-setting
> 요소를 추가합니다.일치
키의 경우 보다 구체적인 텍스트 문자열을 지정합니다. 예를 들면 다음과 같습니다.<security-setting match="globalqueues.europe.orders.#"> <permission type="send" roles="europe-users"/> <permission type="consume" roles="europe-users"/> </security-setting>
두 번째
security-setting
요소에서globalqueues.europe.orders.#
일치는 첫 번째security-setting
요소에 지정된globalqueues.europe.#
일치 항목보다 더 구체적입니다.globalqueues.europe.orders.#
과 일치하는 모든 주소의 경우createDurableQueue
,deleteDurableQueue
,createNonDurableQueue
,deleteNonDurableQueue
는 파일의 첫 번째security-setting
요소에서 상속 되지 않습니다. 예를 들어globalqueues.europe.orders.plastics
주소의 경우 존재하는 유일한 권한은europe-users
에게 전송
및소비
됩니다.따라서 한
security-setting
블록에 지정된 권한이 다른 보안 설정 블록에서 상속되지 않으므로 해당 권한을 지정하지 않고 특정security-setting
블록에서 권한을 효과적으로 거부할 수 있습니다.
5.3.2.1.5. 사용자를 사용하여 큐 구성
큐가 자동으로 생성되면 연결된 클라이언트의 사용자 이름이 큐에 할당됩니다. 이 사용자 이름은 큐의 메타데이터로 포함됩니다. 이름은 JMX 및 AMQ Broker 관리 콘솔에 의해 노출됩니다.
다음 절차에서는 브로커 구성에 수동으로 정의된 큐에 사용자 이름을 추가하는 방법을 보여줍니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 지정된 큐의 경우
사용자
키를 추가합니다. 값을 할당합니다. 예를 들면 다음과 같습니다.<address name="ExampleQueue"> <anycast> <queue name="ExampleQueue" user="admin"/> </anycast> </address>
이전 구성에 따라
admin
사용자는 대기열ExampleQueue
에 할당됩니다.
- 큐에서 사용자를 구성해도 해당 큐의 보안 의미 체계는 변경되지 않으며 해당 큐의 메타데이터에만 사용됩니다.Configuring a user on a queue does not change any of the security semantics for that queue - it is only used for metadata on that queue.
사용자 간 매핑과 보안 관리자 라는 구성 요소에서 처리하는 역할 간의 매핑입니다. 보안 관리자는 브로커에 저장된 속성 파일에서 사용자 자격 증명을 읽습니다. 기본적으로 AMQ Broker는
org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
보안 관리자를 사용합니다. 이 기본 보안 관리자는 JAAS 및 Red Hat JBoss EAP(JBoss Enterprise Application Platform) 보안과의 통합을 제공합니다.사용자 지정 보안 관리자를 사용하는 방법은 5.6.2절. “사용자 정의 보안 관리자 지정” 을 참조하십시오.