기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
RabbitMQ 구성의 ARN 지원
RabbitMQ용 Amazon MQ는 일부 RabbitMQ 구성 설정의 값에 대해 AWS ARNs을 지원합니다. 이는 RabbitMQ 커뮤니티 플러그인 rabbitmq-aws
중요 고려 사항
-
aws 플러그인에서 검색한 확인된 ARN 값은 런타임 시 RabbitMQ 프로세스로 직접 전달됩니다. RabbitMQ 노드의 다른 위치에 저장되지 않습니다.
-
RabbitMQ용 Amazon MQ에는 구성된 ARNs에 액세스하기 위해 Amazon MQ가 수임할 수 있는 IAM 역할이 필요합니다. 이는를 설정하여 구성됩니다
aws.arns.assume_role_arn. -
IAM 역할이 포함된 브로커 구성으로 CreateBroker 또는 UpdateBroker APIs를 호출하는 사용자는 해당 역할에 대한
iam:PassRole권한이 있어야 합니다. -
IAM 역할은 RabbitMQ 브로커와 동일한 AWS 계정에 있어야 합니다. 구성의 모든 ARNs은 RabbitMQ 브로커와 동일한 AWS 리전에 있어야 합니다.
-
Amazon MQ는 IAM 역할을 수임할
aws:SourceArn때 IAM 전역 조건 키aws:SourceAccount및를 추가합니다. 이러한 값은 혼동된 대리자 보호를 위해 역할에 연결된 IAM 정책에 사용해야 합니다.
지원되는 키
필수 IAM 역할
aws.arns.assume_role_arn-
Amazon MQ가 다른 AWS 리소스에 액세스하기 위해 수임하는 IAM 역할 ARN입니다. 다른 ARN 구성을 사용할 때 필요합니다.
| 구성 키 | 설명 |
|---|---|
aws.arns.ssl_options.cacertfile |
SSL/TLS 클라이언트 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
| 구성 키 | 설명 |
|---|---|
aws.arns.management.ssl.cacertfile |
관리 인터페이스 SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
| 구성 키 | 설명 |
|---|---|
aws.arns.auth_oauth2.https.cacertfile |
OAuth 2.0 HTTPS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
| 구성 키 | 설명 |
|---|---|
aws.arns.auth_http.ssl_options.cacertfile |
HTTP 인증 SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
aws.arns.auth_http.ssl_options.certfile |
Amazon MQ와 HTTP 인증 서버 간의 상호 TLS 연결을 위한 인증서 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
aws.arns.auth_http.ssl_options.keyfile |
Amazon MQ와 HTTP 인증 서버 간의 상호 TLS 연결을 위한 프라이빗 키 파일입니다. Amazon MQ에서는를 사용하여 프라이빗 키를 저장 AWS Secrets Manager 해야 합니다. |
| 구성 키 | 설명 |
|---|---|
aws.arns.auth_ldap.ssl_options.cacertfile |
LDAP SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
aws.arns.auth_ldap.ssl_options.certfile |
Amazon MQ와 LDAP 서버 간의 상호 TLS 연결을 위한 인증서 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. |
aws.arns.auth_ldap.ssl_options.keyfile |
Amazon MQ와 LDAP 서버 간의 상호 TLS 연결을 위한 프라이빗 키 파일입니다. Amazon MQ에서는를 사용하여 프라이빗 키를 저장 AWS Secrets Manager 해야 합니다. |
aws.arns.auth_ldap.dn_lookup_bind.password |
LDAP DN 조회 바인드의 암호입니다. Amazon MQ에서는를 사용하여 암호를 일반 텍스트 값으로 저장 AWS Secrets Manager 해야 합니다. |
aws.arns.auth_ldap.other_bind.password |
LDAP 기타 바인드의 암호입니다. Amazon MQ에서는를 사용하여 암호를 일반 텍스트 값으로 저장 AWS Secrets Manager 해야 합니다. |
IAM 정책 샘플
수임 역할 정책 문서 및 역할 정책 문서를 포함한 IAM 정책 예제는 CDK 샘플 구현
AWS Secrets Manager 및 Amazon S3 리소스를 설정하는 방법에 대한 단계는 LDAP 인증 및 권한 부여 사용 섹션을 참조하세요.
액세스 검증
ARN 값을 가져올 수 없는 시나리오의 문제를 해결하기 위해 aws 플러그인은 Amazon MQ가 역할을 성공적으로 수임하고 ARN을 해결할 수 있는지 확인하기 위해 호출할 수 있는 RabbitMQ 관리 API 엔드포인트
참고
이 API를 사용하려면 기존 RabbitMQ 관리자 사용자가 필요합니다. Amazon MQ는 다른 액세스 방법 외에도 내부 사용자를 사용하여 테스트 브로커를 생성할 것을 권장합니다. OAuth 2.0 및 단순(내부) 인증 활성화를 참조하세요. 그런 다음이 사용자를 사용하여 검증 API에 액세스할 수 있습니다.
참고
aws 플러그인은 새 역할을 검증 API에 대한 입력으로 전달하는 것을 지원하지만이 파라미터는 Amazon MQ에서 지원되지 않습니다. 검증에 사용되는 IAM 역할은 aws.arns.assume_role_arn브로커 구성의 값과 일치해야 합니다.
관련 브로커 격리 상태
ARN 지원 문제와 관련된 브로커 격리 상태에 대한 자세한 내용은 다음을 참조하세요.
예제 시나리오
-
브로커
b-f0fc695e-2f9c-486b-845a-988023a3e55b가 IAM 역할을 사용하여 AWS Secrets Manager 보안 암호<role>에 액세스하도록 구성되었습니다.<arn> -
Amazon MQ에 제공된 역할에 AWS Secrets Manager 보안 암호에 대한 읽기 권한이 없는 경우 RabbitMQ 로그에 다음 오류가 표시됩니다.
[error] <0.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}}또한 브로커는
INVALID_ASSUMEROLE격리 상태로 전환됩니다. 자세한 내용은 INVALID_ASSUMEROLE을 참조하세요. -
LDAP 인증 시도가 실패하고 다음 오류가 발생합니다.
[error] <0.254.0> LDAP bind failed: invalid_credentials -
적절한 권한으로 IAM 역할 수정
-
검증 엔드포인트를 호출하여 RabbitMQ가 이제 보안 암호에 액세스할 수 있는지 확인합니다.
curl -4su 'guest:guest' -XPUT -H 'content-type: application/json' <broker-endpoint>/api/aws/arn/validate -d '{"assume_role_arn":"arn:aws:iam::<account-id>:role/<role-name>","arns":["arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>"]}' | jq '.'