기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ActiveMQ 브로커와 LDAP 통합
중요
RabbitMQ 브로커의 경우 LDAP 통합이 지원되지 않습니다.
Amazon MQ는 프라이빗 CA에서 발급한 서버 인증서를 지원하지 않습니다.
TLS가 활성화된 상태에서 다음 프로토콜을 사용하여 ActiveMQ 브로커에 액세스할 수 있습니다.
Amazon MQ에서는 기본 ActiveMQ 인증과 LDAP 인증 및 권한 부여 중에서 선택하여 사용자 권한을 관리할 수 있습니다. ActiveMQ 사용자 이름 및 암호와 관련된 제한에 대한 자세한 내용은 Users 단원을 참조하세요.
ActiveMQ 사용자 및 그룹이 대기열 및 주제를 사용하도록 권한을 부여하려면 브로커의 구성을 편집해야 합니다. Amazon MQ는 ActiveMQ의 단순 인증 플러그 인authorizationEntry
단원을 참조하세요.
참고
현재 Amazon MQ는 클라이언트 인증서 인증을 지원하지 않습니다.
LDAP와 ActiveMQ 통합
Lightweight Directory Access Protocol(LDAP) 서버에 저장된 자격 증명을 통해 Amazon MQ 사용자를 인증할 수 있습니다. 또한 해당 자격 증명을 통해 Amazon MQ 사용자를 추가, 삭제 및 수정하고 주제 및 대기열에 대한 권한을 할당할 수도 있습니다. 브로커 생성, 업데이트 및 삭제와 같은 관리 작업은 계속 IAM 자격 증명이 필요하며 LDAP와 통합되지 않습니다.
LDAP 서버를 사용하여 Amazon MQ 브로커 인증 및 권한 부여를 간소화하고 중앙 집중화하려는 고객은 이 기능을 사용할 수 있습니다. 모든 사용자 자격 증명을 LDAP 서버에 보관하면 중앙 위치를 통해 해당 자격 증명을 저장하고 관리할 수 있어서 시간과 노력이 절약됩니다.
Amazon MQ는 Apache ActiveMQ JAAS 플러그 인을 사용하여 LDAP 지원을 제공합니다. 플러그 인에서 지원하는 Microsoft Active Directory 또는 OpenLDAP와 같은 LDAP 서버는 Amazon MQ에서도 지원됩니다. 플러그 인에 대한 자세한 내용은 Active MQ 설명서의 보안
사용자 외에 특정 그룹 또는 사용자를 위한 주제 및 대기열에 대한 액세스 권한도 LDAP 서버를 통해 지정할 수 있습니다. 이렇게 하려면 LDAP 서버에서 주제 및 대기열을 나타내는 항목을 생성한 다음 특정 LDAP 사용자 또는 그룹에 사용 권한을 할당합니다. 그런 다음 LDAP 서버에서 권한 부여 데이터를 검색하도록 브로커를 구성할 수 있습니다.
사전 조건
신규 또는 기존 Amazon MQ 브로커에 LDAP 지원을 추가하려면 먼저 서비스 계정을 설정해야 합니다. 이 서비스 계정은 LDAP 서버에 대한 연결을 시작하는 데 필요하며 해당 연결을 설정할 올바른 권한이 있어야 합니다. 이 서비스 계정이 브로커의 LDAP 인증을 설정합니다. 이후의 모든 클라이언트 연결은 동일한 연결을 통해 인증됩니다.
서비스 계정은 연결을 시작할 수 있는 액세스 권한이 있는 LDAP 서버의 계정입니다. 이는 표준 LDAP 요구 사항이며 서비스 계정 자격 증명을 한 번만 제공하면 됩니다. 연결이 설정되면 이후의 모든 클라이언트 연결은 LDAP 서버를 통해 인증됩니다. 서비스 계정 자격 증명은 Amazon MQ만 액세스할 수 있는 암호화된 형식으로 안전하게 저장됩니다.
ActiveMQ와 통합하려면 LDAP 서버에 특정 디렉터리 정보 트리(DIT)가 필요합니다. 이 구조를 명확하게 보여주는 예제 ldif
파일은 ActiveMQ 설명서의 보안
LDAP 시작하기
시작하려면 새 Amazon MQ를 생성하거나 기존 브로커 인스턴스를 편집할 때 Amazon MQ 콘솔로 이동하여 LDAP authentication and authorization(LDAP 인증 및 권한 부여)을 선택합니다.
서비스 계정에 대한 다음 정보를 제공합니다.
-
정규화된 도메인 이름: 인증 및 권한 부여 요청을 실행할 LDAP 서버의 위치입니다.
참고
제공하는 LDAP 서버의 정규화된 도메인 이름에는 프로토콜 또는 포트 번호가 포함되지 않아야 합니다. Amazon MQ에서는 정규화된 도메인 이름 앞에 프로토콜
ldaps
를 추가하고 뒤에 포트 번호636
을 추가합니다.예를 들어
example.com
과 같은 정규화된 도메인을 제공하는 경우 Amazon MQ는 URLldaps://example.com:636
을 사용하여 LDAP 서버에 액세스합니다.브로커 호스트가 LDAP 서버와 통신할 수 있으려면 정규화된 도메인 이름을 공개적으로 확인할 수 있어야 합니다. LDAP 서버를 안전하게 프라이빗으로 유지하려면 브로커의 VPC 내에서 시작된 트래픽만 허용하도록 서버의 인바운드 규칙에서 인바운드 트래픽을 제한합니다.
-
서비스 계정 사용자 이름: LDAP 서버에 대한 초기 바인딩을 수행하는 데 사용할 사용자의 고유 이름입니다.
-
서비스 계정 암호: 초기 바인딩을 수행하는 사용자의 암호입니다.
다음 이미지에서는 이러한 세부 정보를 제공하는 위치를 강조 표시합니다.

LDAP login configuration(LDAP 로그인 구성) 섹션에서 다음 필수 정보를 제공합니다.
-
사용자 기반: 사용자를 검색할 디렉터리 정보 트리(DIT)에 있는 노드의 고유 이름입니다.
-
사용자 검색 일치:
userBase
내에서 사용자를 찾는 데 사용되는 LDAP 검색 필터입니다. 클라이언트의 사용자 이름이 검색 필터의{0}
자리 표시자로 대체됩니다. 자세한 내용은 인증 및 권한 부여 단원을 참조하세요. -
역할 기반: 역할을 검색할 DIT에 있는 노드의 고유 이름입니다. 역할은 디렉터리에 있는 명시적 LDAP 그룹 항목으로 구성될 수 있습니다. 일반적인 역할 항목은 일반 이름(CN)과 같은 역할 이름에 대한 하나의 속성 및 역할 그룹에 속한 사용자의 고유 이름 또는 사용자 이름을 나타내는 값이 포함된 또 하나의 속성(예:
member
)으로 구성될 수 있습니다. 예를 들어 조직 구성 단위group
의 경우ou=group,dc=example,dc=com
과 같은 고유 이름을 제공할 수 있습니다. -
역할 검색 일치:
roleBase
내에서 역할을 찾는 데 사용되는 LDAP 검색 필터입니다.userSearchMatching
과 일치하는 사용자의 고유 이름은 검색 필터의{0}
자리 표시자로 대체됩니다. 클라이언트의 사용자 이름은{1}
자리 표시자로 대체됩니다. 예를 들어 디렉터리의 역할 항목에 해당 역할의 모든 사용자의 사용자 이름이 포함된member
라는 속성이 포함된 경우(member:=uid={1})
과 같은 검색 필터를 제공할 수 있습니다.
다음 이미지에서는 이러한 세부 정보를 지정하는 위치를 강조 표시합니다.

Optional settings(선택적 설정) 섹션에서 다음과 같은 선택적 정보를 제공할 수 있습니다.
-
사용자 역할 이름: 사용자의 그룹 구성원에 대한 사용자의 디렉토리 항목에 있는 LDAP 속성의 이름입니다. 경우에 따라 사용자 역할은 사용자의 디렉터리 항목에 있는 특성 값으로 식별될 수 있습니다. 이
userRoleName
옵션을 사용하면 이 속성의 이름을 제공할 수 있습니다. 예를 들어 다음 사용자 항목을 고려해 보겠습니다.dn: uid=jdoe,ou=user,dc=example,dc=com objectClass: user uid: jdoe sn: jane cn: Jane Doe mail: j.doe@somecompany.com memberOf: role1 userPassword: password
위 예제의 올바른
userRoleName
을 제공하려면memberOf
속성을 지정합니다. 인증이 성공하면 사용자에게role1
역할이 할당됩니다. -
역할 이름: 값이 해당 역할의 이름인 역할 항목의 그룹 이름 속성입니다. 예를 들어 그룹 항목의 일반 이름에 대한
cn
을 지정할 수 있습니다. 인증이 성공하면 멤버로 속해 있는 각 역할 항목의cn
속성 값이 사용자에게 할당됩니다. -
사용자 검색 하위 트리: LDAP 사용자 검색 쿼리의 범위를 정의합니다. True인 경우,
userBase
에 정의된 노드 아래에 있는 전체 하위 트리를 검색하도록 범위가 설정됩니다. -
역할 검색 하위 트리: LDAP 역할 검색 쿼리의 범위를 정의합니다. True인 경우,
roleBase
에 정의된 노드 아래에 있는 전체 하위 트리를 검색하도록 범위가 설정됩니다.
다음 이미지에서는 이러한 선택적 설정을 지정할 위치를 강조 표시합니다.

LDAP 통합의 작동 방식
통합은 인증을 위한 구조와 권한 부여를 위한 구조의 두 가지 기본 범주로 고려할 수 있습니다.
인증
인증을 위해서는 클라이언트 자격 증명이 유효해야 합니다. 이러한 자격 증명은 LDAP 서버에 있는 사용자 기반의 사용자에 대해 검증됩니다.
ActiveMQ 브로커에 제공된 사용자 기반은 LDAP 서버에서 사용자가 저장되는 DIT의 노드를 가리켜야 합니다. 예를 들어 AWS Managed Microsoft AD를 사용 중이고 도메인 구성 요소 corp
, example
및 com
가 있는 해당 구성 요소 내에 조직 구성 단위 corp
및 Users
가 있는 경우 다음을 사용자 기반으로 사용합니다.
OU=Users,OU=corp,DC=corp,DC=example,DC=com
ActiveMQ 브로커는 브로커에 대한 클라이언트 연결 요청을 인증하기 위해 DIT의 이 위치에서 사용자를 검색합니다.

ActiveMQ 소스 코드는 사용자의 속성 이름을 uid
에 하드코딩하므로 각 사용자에게 해당 속성 집합이 있는지 확인해야 합니다. 편의상 사용자의 연결 사용자 이름을 사용할 수 있습니다. 자세한 내용은 activemq
특정 사용자의 ActiveMQ 콘솔 액세스를 활성화하려면 해당 사용자가 amazonmq-console-admins
그룹에 속해 있는지 확인합니다.
권한 부여
권한 부여의 경우 브로커 구성에서 권한 검색 기반을 지정합니다. 권한 부여는 브로커의 activemq.xml
구성 파일에 있는 cachedLdapAuthorizationMap
요소를 통해 대상(또는 와일드카드, 대상 집합)별로 수행됩니다. 자세한 내용은 캐시된 LDAP 권한 부여 모듈
참고
브로커의 activemq.xml
구성 파일에서 cachedLDAPAuthorizationMap
요소를 사용할 수 있으려면 AWS Management Console을 통해 구성을 생성할 때 LDAP 인증 및 권한 부여(LDAP Authentication and Authorization) 옵션을 선택하거나 Amazon MQ API를 사용하여 새 구성을 생성할 때 authenticationStrategy
속성을 LDAP
로 설정해야 합니다.
cachedLDAPAuthorizationMap
요소의 일부로 다음 세 가지 속성을 제공해야 합니다.
-
queueSearchBase
-
topicSearchBase
-
tempSearchBase
중요
중요한 정보가 브로커의 구성 파일에 직접 저장되지 않도록 하기 위해 Amazon MQ는 cachedLdapAuthorizationMap
에서 다음 속성을 사용하지 못하도록 차단합니다.
-
connectionURL
-
connectionUsername
-
connectionPassword
브로커를 생성할 때 Amazon MQ는 AWS Management Console을 통해서나 API 요청의 ldapServerMetadata
속성에 제공되는 값을 위 속성으로 대체합니다.
다음은 cachedLdapAuthorizationMap
의 작동 예제를 보여줍니다.
<authorizationPlugin> <map> <cachedLDAPAuthorizationMap queueSearchBase="ou=Queue,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" topicSearchBase="ou=Topic,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" tempSearchBase="ou=Temp,ou=Destination,ou=corp,dc=corp,dc=example,dc=com" refreshInterval="300000" legacyGroupMapping="false" /> </map> </authorizationPlugin>
이러한 값은 각 대상 유형의 사용 권한이 지정된 DIT 내의 위치를 식별합니다. 따라서 동일한 도메인 구성 요소 corp
, example
및 com
을 사용하는 AWS Managed Microsoft AD이 포함된 위 예제의 경우 모든 대상 유형을 포함하는 조직 구성 단위 destination
을 지정합니다. 해당 OU 내에서 queues
, topics
및 temp
대상에 대해 OU를 하나씩 생성할 수 있습니다.
따라서 대기열 유형 대상의 권한 부여 정보를 제공하는 대기열 검색 기반은 DIT에서 다음 위치에 있게 됩니다.
OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com

마찬가지로 주제 및 임시 대상의 사용 권한 규칙은 DIT에서 동일한 수준에 있습니다.
OU=Topic,OU=Destination,OU=corp,DC=corp,DC=example,DC=com OU=Temp,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
각 대상 유형(대기열, 주제, 임시)의 OU 내에서 와일드카드 또는 특정 대상 이름을 제공할 수 있습니다. 예를 들어 접두사 DEMO.EVENTS.$.으로 시작하는 모든 대기열의 권한 부여 규칙을 제공하려면 다음 OU를 생성할 수 있습니다.
OU=DEMO.EVENTS.$,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
참고
DEMO.EVENTS.$
OU는 Queue
OU 내에 있습니다.
ActiveMQ의 와일드카드에 대한 자세한 내용은 와일드카드
DEMO.MYQUE와 같은 특정 대기열의 권한 부여 규칙을 제공하려면 다음과 같이 지정합니다.
OU=DEMO.MYQUEUE,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com

보안 그룹
대상 또는 와일드카드를 나타내는 각 OU 내에서 세 개의 보안 그룹을 생성해야 합니다. ActiveMQ의 모든 권한과 마찬가지로 읽기/쓰기/관리자 권한입니다. 이러한 각 사용 권한에 대한 자세한 내용은 ActiveMQ 설명서에서 보안
이러한 보안 그룹 read
, write
및 admin
의 이름을 지정해야 합니다. 이러한 각 보안 그룹 내에서 사용자 또는 그룹을 추가할 수 있으며, 해당 사용자 또는 그룹은 관련 작업을 수행할 권한을 가집니다. 각 와일드카드 대상 집합 또는 개별 대상에 이러한 보안 그룹이 필요합니다.

참고
관리자 그룹을 생성하면 그룹 이름에서 충돌이 발생합니다. 이 충돌은 그룹이 DIT의 다른 위치에 있더라도 레거시 Windows 2000 이전 규칙에서 그룹이 같은 이름을 공유하도록 허용하지 않기 때문에 발생합니다. Windows 2000 이전 버전 텍스트 상자의 값은 설정에 영향을 주지 않지만 전역적으로 고유해야 합니다. 이 충돌을 피하기 위해 각 admin
그룹에 uuid
접미사를 추가할 수 있습니다.

특정 대상의 admin
보안 그룹에 사용자를 추가하면 사용자가 해당 주제를 생성 및 삭제할 수 있습니다. read
보안 그룹에 추가하면 대상에서 읽을 수 있고 write
그룹에 추가하면 대상에 쓸 수 있습니다.
보안 그룹 권한에 개별 사용자를 추가하는 것 외에 전체 그룹을 추가할 수도 있습니다. 그러나 ActiveMQ에서 그룹의 속성 이름을 다시 하드코딩하므로 activemqgroupOfNames
이 있는지 확인해야 합니다.
이렇게 하려면 사용자 uid
의 경우와 동일한 프로세스를 수행합니다. Windows Server 2016 이상 버전의 Active Directory 사용자 및 컴퓨터에서 ID 매핑 구성