기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
ActiveMQ 브로커와 통합 LDAP
중요
LDAP RabbitMQ 브로커에는 통합이 지원되지 않습니다.
Amazon MQ는 프라이빗 CA에서 발급한 서버 인증서를 지원하지 않습니다.
TLS 활성화된 다음 프로토콜을 사용하여 ActiveMQ 브로커에 액세스할 수 있습니다.
Amazon MQ는 사용자 권한을 관리하기 위해 기본 ActiveMQ 인증과 LDAP 인증 및 권한 부여 중에서 선택할 수 있는 옵션을 제공합니다. ActiveMQ 사용자 이름 및 암호와 관련된 제한에 대한 자세한 내용은 사용자 단원을 참조하세요.
ActiveMQ 사용자 및 그룹이 대기열 및 주제를 사용하도록 권한을 부여하려면 브로커의 구성을 편집해야 합니다. Amazon MQ는 ActiveMQ의 단순 인증 플러그 인authorizationEntry
단원을 참조하세요.
참고
현재 Amazon MQ는 클라이언트 인증서 인증을 지원하지 않습니다.
ActiveMQLDAP와 통합
경량 디렉터리 액세스 프로토콜(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 설명서의 https://activemq.apache.org/security
시작하기 LDAP
시작하려면 Amazon MQ 콘솔로 이동하여 새 Amazon MQ를 생성하거나 기존 브로커 인스턴스를 편집할 때 LDAP 인증 및 권한 부여를 선택합니다.
서비스 계정에 대한 다음 정보를 제공합니다.
-
정규화된 도메인 이름 인증 및 권한 부여 요청을 발급할 LDAP 서버의 위치입니다.
참고
제공하는 LDAP 서버의 정규화된 도메인 이름에는 프로토콜 또는 포트 번호가 포함되어서는 안 됩니다. Amazon MQ에서는 정규화된 도메인 이름 앞에 프로토콜
ldaps
를 추가하고 뒤에 포트 번호636
을 추가합니다.예를 들어 정규화된 도메인을
example.com
로 제공하면 Amazon MQ는 를 사용하여 LDAP 서버에 액세스합니다URLldaps://example.com:636
.브로커 호스트가 LDAP 서버와 성공적으로 통신하려면 정규화된 도메인 이름을 공개적으로 확인할 수 있어야 합니다. LDAP 서버를 비공개로 안전하게 유지하려면 브로커의 내에서 시작된 트래픽만 허용하도록 서버의 인바운드 규칙에서 인바운드 트래픽을 제한합니다VPC.
-
서비스 계정 사용자 이름 LDAP 서버에 대한 초기 바인딩을 수행하는 데 사용할 사용자의 고유 이름입니다.
-
서비스 계정 암호: 초기 바인딩을 수행하는 사용자의 암호입니다.
다음 이미지에서는 이러한 세부 정보를 제공하는 위치를 강조 표시합니다.
LDAP 로그인 구성 섹션에서 다음 필수 정보를 제공합니다.
-
사용자 기반 사용자를 검색할 디렉터리 정보 트리(DIT)에 있는 노드의 고유 이름입니다.
-
사용자 검색 일치 내에서 사용자를 찾는 데 사용되는 LDAP 검색 필터입니다
userBase
. 클라이언트의 사용자 이름이 검색 필터의{0}
자리 표시자로 대체됩니다. 자세한 내용은 인증 및 권한 부여 단원을 참조하세요. -
역할 기반 역할을 DIT 검색할 에서 노드의 고유 이름입니다. 역할은 디렉터리에서 명시적 LDAP 그룹 항목으로 구성할 수 있습니다. 일반적인 역할 항목은 일반 이름(CN)과 같은 역할 이름에 대한 하나의 속성 및 역할 그룹에 속한 사용자의 고유 이름 또는 사용자 이름을 나타내는 값이 포함된 또 하나의 속성(예:
member
)으로 구성될 수 있습니다. 예를 들어 조직 구성 단위group
의 경우ou=group,dc=example,dc=com
과 같은 고유 이름을 제공할 수 있습니다. -
역할 검색 일치 내에서 역할을 찾는 데 사용되는 LDAP 검색 필터입니다
roleBase
.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, example
및 corp
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 인증 및 권한 부여 옵션을 선택하거나 Amazon MQ를 사용하여 새 구성을 생성할 LDAP
때 authenticationStrategy
속성을 로 설정해야 합니다API.
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 권한이 지정된 의 위치를 식별합니다. 따라서 위의 예제에서 AWS Managed Microsoft AD, example
및 와 동일한 도메인 구성 요소를 사용하여 모든 대상 유형을 포함하도록 corp
라는 조직 단위destination
를 com
지정합니다. 해당 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의 와일드카드에 대한 자세한 내용은 와일드카드
와 같은 특정 대기열에 대한 권한 부여 규칙을 제공하려면 다음과 같은 항목을 MYQUEUE지정합니다DEMO.
OU=DEMO.MYQUEUE,OU=Queue,OU=Destination,OU=corp,DC=corp,DC=example,DC=com
보안 그룹
대상 또는 와일드카드를 나타내는 각 OU 내에서 세 개의 보안 그룹을 생성해야 합니다. ActiveMQ의 모든 권한과 마찬가지로 읽기/쓰기/관리자 권한입니다. 이러한 각 사용 권한에 대한 자세한 내용은 ActiveMQ 설명서에서 보안
이러한 보안 그룹 read
, write
및 admin
의 이름을 지정해야 합니다. 이러한 각 보안 그룹 내에서 사용자 또는 그룹을 추가할 수 있으며, 해당 사용자 또는 그룹은 관련 작업을 수행할 권한을 가집니다. 각 와일드카드 대상 집합 또는 개별 대상에 이러한 보안 그룹이 필요합니다.
참고
관리자 그룹을 생성하면 그룹 이름에서 충돌이 발생합니다. 이 충돌은 레거시 Windows 2000 이전 규칙에서는 그룹이 의 다른 위치에 있더라도 그룹이 동일한 이름을 공유하도록 허용하지 않기 때문에 발생합니다DIT. Windows 2000 이전 버전 텍스트 상자의 값은 설정에 영향을 주지 않지만 전역적으로 고유해야 합니다. 이 충돌을 피하기 위해 각 admin
그룹에 uuid
접미사를 추가할 수 있습니다.
특정 대상의 admin
보안 그룹에 사용자를 추가하면 사용자가 해당 주제를 생성 및 삭제할 수 있습니다. read
보안 그룹에 추가하면 대상에서 읽을 수 있고 write
그룹에 추가하면 대상에 쓸 수 있습니다.
보안 그룹 권한에 개별 사용자를 추가하는 것 외에 전체 그룹을 추가할 수도 있습니다. 그러나 ActiveMQ에서 그룹의 속성 이름을 다시 하드코딩하므로 activemqgroupOfNames
이 있는지 확인해야 합니다.
이렇게 하려면 사용자 uid
의 경우와 동일한 프로세스를 수행합니다. Windows Server 2016 이상 버전의 Active Directory 사용자 및 컴퓨터에서 ID 매핑 구성