

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# RabbitMQ 구성의 ARN 지원
<a name="arn-support-rabbitmq-configuration"></a>

RabbitMQ용 Amazon MQ는 일부 RabbitMQ 구성 설정의 값에 대해 AWS ARNs을 지원합니다. 이는 RabbitMQ 커뮤니티 플러그인 [rabbitmq-aws](https://github.com/amazon-mq/rabbitmq-aws)에 의해 활성화됩니다. 이 플러그인은 Amazon MQ에서 개발 및 유지 관리하며 Amazon MQ에서 관리하지 않는 자체 호스팅 RabbitMQ Amazon MQ 브로커에서도 사용할 수 있습니다.

**중요 고려 사항**  
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` 및를 추가합니다. 이러한 값은 [혼동된 대리자 보호를](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) 위해 역할에 연결된 IAM 정책에 사용해야 합니다.

**Topics**
+ [지원되는 키](#arn-support-supported-keys)
+ [IAM 정책 샘플](#arn-support-iam-policy-samples)
+ [액세스 검증](#arn-support-validation)
+ [관련 브로커 격리 상태](#arn-support-quarantine-states)
+ [예제 시나리오](#arn-support-example-scenario)

## 지원되는 키
<a name="arn-support-supported-keys"></a>

`aws.arns.assume_role_arn`  
Amazon MQ가 다른 AWS 리소스에 액세스하기 위해 수임하는 IAM 역할 ARN입니다. 다른 ARN 구성을 사용할 때 필요합니다.

### AMQP 엔드포인트
<a name="arn-support-amqp-endpoint"></a>


| 구성 키 | 설명 | 
| --- | --- | 
| aws.arns.ssl\$1options.cacertfile | SSL/TLS 클라이언트 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 

### RabbitMQ 관리 플러그인
<a name="arn-support-management-plugin"></a>


| 구성 키 | 설명 | 
| --- | --- | 
| aws.arns.management.ssl.cacertfile | 관리 인터페이스 SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 

### RabbitMQ OAuth 2.0 플러그인
<a name="arn-support-oauth2-plugin"></a>


| 구성 키 | 설명 | 
| --- | --- | 
| aws.arns.auth\$1oauth2.https.cacertfile | OAuth 2.0 HTTPS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 

### RabbitMQ HTTP 인증 플러그인
<a name="arn-support-http-plugin"></a>


| 구성 키 | 설명 | 
| --- | --- | 
| aws.arns.auth\$1http.ssl\$1options.cacertfile | HTTP 인증 SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 
| aws.arns.auth\$1http.ssl\$1options.certfile | Amazon MQ와 HTTP 인증 서버 간의 상호 TLS 연결을 위한 인증서 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 
| aws.arns.auth\$1http.ssl\$1options.keyfile | Amazon MQ와 HTTP 인증 서버 간의 상호 TLS 연결을 위한 프라이빗 키 파일입니다. Amazon MQ에서는를 사용하여 프라이빗 키를 저장 AWS Secrets Manager 해야 합니다. | 

### RabbitMQ LDAP 플러그인
<a name="arn-support-ldap-plugin"></a>


| 구성 키 | 설명 | 
| --- | --- | 
| aws.arns.auth\$1ldap.ssl\$1options.cacertfile | LDAP SSL/TLS 연결을 위한 인증 기관 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 
| aws.arns.auth\$1ldap.ssl\$1options.certfile | Amazon MQ와 LDAP 서버 간의 상호 TLS 연결을 위한 인증서 파일입니다. Amazon MQ에서 인증서를 저장하려면 Amazon S3 또는를 사용해야 합니다. | 
| aws.arns.auth\$1ldap.ssl\$1options.keyfile | Amazon MQ와 LDAP 서버 간의 상호 TLS 연결을 위한 프라이빗 키 파일입니다. Amazon MQ에서는를 사용하여 프라이빗 키를 저장 AWS Secrets Manager 해야 합니다. | 
| aws.arns.auth\$1ldap.dn\$1lookup\$1bind.password | LDAP DN 조회 바인드의 암호입니다. Amazon MQ에서는를 사용하여 암호를 일반 텍스트 값으로 저장 AWS Secrets Manager 해야 합니다. | 
| aws.arns.auth\$1ldap.other\$1bind.password | LDAP 기타 바인드의 암호입니다. Amazon MQ에서는를 사용하여 암호를 일반 텍스트 값으로 저장 AWS Secrets Manager 해야 합니다. | 

## IAM 정책 샘플
<a name="arn-support-iam-policy-samples"></a>

수임 역할 정책 문서 및 역할 정책 문서를 포함한 IAM 정책 예제는 [CDK 샘플 구현](https://github.com/aws-samples/amazon-mq-samples/blob/main/rabbitmq-samples/rabbitmq-ldap-activedirectory-sample/lib/rabbitmq-activedirectory-stack.ts#L232)을 참조하세요.

 AWS Secrets Manager 및 Amazon S3 리소스를 설정하는 방법에 대한 단계는 [LDAP 인증 및 권한 부여 사용](rabbitmq-ldap-tutorial.md) 섹션을 참조하세요.

## 액세스 검증
<a name="arn-support-validation"></a>

ARN 값을 가져올 수 없는 시나리오의 문제를 해결하기 위해 aws 플러그인은 Amazon [MQ가 역할을 성공적으로 수임하고 ARN을 해결할 수 있는지 확인하기 위해 호출할 수 있는 RabbitMQ 관리 API 엔드포인트](https://github.com/amazon-mq/rabbitmq-aws/blob/main/API.md)를 지원합니다. Amazon MQ AWS ARNs 따라서 브로커 구성을 업데이트하고, 브로커를 새 구성 개정으로 업데이트하고, 브로커를 재부팅하여 구성 변경을 테스트할 필요가 없습니다.

**참고**  
이 API를 사용하려면 기존 RabbitMQ 관리자 사용자가 필요합니다. Amazon MQ는 다른 액세스 방법 외에도 내부 사용자를 사용하여 테스트 브로커를 생성할 것을 권장합니다. [OAuth 2.0 및 단순(내부) 인증 활성화](oauth-tutorial.md#oauth-tutorial-config-both-auth-methods-using-cli)를 참조하세요. 그런 다음이 사용자를 사용하여 검증 API에 액세스할 수 있습니다.

**참고**  
aws 플러그인은 새 역할을 검증 API에 대한 입력으로 전달하는 것을 지원하지만이 파라미터는 Amazon MQ에서 지원되지 않습니다. 검증에 사용되는 IAM 역할은 `aws.arns.assume_role_arn`브로커 구성의 값과 일치해야 합니다.

## 관련 브로커 격리 상태
<a name="arn-support-quarantine-states"></a>

ARN 지원 문제와 관련된 브로커 격리 상태에 대한 자세한 내용은 다음을 참조하세요.
+ [RABBITMQ\$1INVALID\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md)
+ [RABBITMQ\$1INVALID\$1ARN\$1LDAP](troubleshooting-action-required-codes-invalid-arn-ldap.md)
+ [RABBITMQ\$1INVALID\$1ARN](troubleshooting-action-required-codes-invalid-arn.md)

## 예제 시나리오
<a name="arn-support-example-scenario"></a>
+ 브로커`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\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md)을 참조하세요.
+ 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 '.'
  ```