

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

# RabbitMQ 브로커 구성
<a name="rabbitmq-broker-configuration-parameters"></a>

구성에는 Cuttlefish 형식의 RabbitMQ 브로커에 대한 모든 설정이 포함됩니다. 브로커를 생성하기 전에 구성을 생성할 수 있습니다. 그런 다음 구성을 하나 이상의 브로커에 적용할 수 있습니다.

## 속성
<a name="configuration-attributes"></a>

브로커 구성에는 여러 속성이 있습니다. 예시는 다음과 같습니다.
+ 이름(MyConfiguration)
+ ID(c-1234a5b6-78cd-901e-2fgh-3i45j6k178l9)
+ Amazon 리소스 이름(ARN)(arn:aws:mq:us-east-2:123456789012:configuration:c-1234a5b678cd-901e-2fgh-3i45j6k178l9)

구성 속성의 전체 목록은 Amazon MQ REST API 참조의 다음 단원을 참조하세요.
+ [REST 작업 ID: 구성](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/rest-api-configuration.html)
+ [REST 작업 ID: 구성](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/rest-api-configurations.html)

구성 개정 속성의 전체 목록은 다음 단원을 참조하세요.
+ [REST 작업 ID: 구성 개정](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/rest-api-configuration-revision.html)
+ [REST 작업 ID: 구성 개정](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/rest-api-configuration-revisions.html)

주제
+ [RabbitMQ 브로커 구성 생성 및 적용](rabbitmq-creating-applying-configurations.md)
+ [RabbitMQ용 Amazon MQ 구성 개정 편집 RabbitMQ ](edit-current-rabbitmq-configuration-console.md)
+ [Amazon MQ의 RabbitMQ에 대해 구성 가능한 값](configurable-values.md)
+ [RabbitMQ 구성의 ARN 지원](arn-support-rabbitmq-configuration.md)

# RabbitMQ 브로커 구성 생성 및 적용
<a name="rabbitmq-creating-applying-configurations"></a>

*구성*에는 RabbitMQ 브로커에 대한 모든 설정이 Cuttlefish 형식으로 포함됩니다. 브로커를 생성하기 전에 구성을 생성할 수 있습니다. 그런 다음 구성을 하나 이상의 브로커에 적용할 수 있습니다.

다음 예제에서는 AWS Management Console을 사용하여 RabbitMQ 브로커 구성을 생성하고 적용하는 방법을 보여줍니다.

**중요**  
`DeleteConfiguration` API를 사용해서만 구성을 **삭제**할 수 있습니다. 자세한 내용은 *Amazon MQ API 참조*의 [구성](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/configurations-configuration-id.html)을 참조하세요.

## 새 구성 생성
<a name="creating-rabbitmq-configuration-from-scratch-console"></a>

 브로커에 구성을 적용하려면 먼저 구성을 생성해야 합니다.

1. [Amazon MQ 콘솔](https://console.aws.amazon.com/amazon-mq/)에 로그인합니다.

1. 왼쪽에서 탐색 창을 확장하고 **Configurations(구성)**를 선택합니다.  
![\[Amazon MQ navigation panel showing Brokers and Configurations options.\]](http://docs.aws.amazon.com/ko_kr/amazon-mq/latest/developer-guide/images/amazon-mq-tutorials-create-configuration.png)

1. **Configurations(구성)** 페이지에서 **Create configuration(구성 생성)**을 선택합니다.

1. **구성 생성** 페이지의 **세부 정보(Details)** 섹션에서 **구성 이름(Configuration name)**(예: `MyConfiguration`)을 입력하고 **브로커 엔진(Broker engine)** 버전을 선택합니다.

   RabbitMQ용 Amazon MQ에서 지원하는 RabbitMQ 엔진 버전에 대한 자세한 내용은 [RabbitMQ용 Amazon MQ 엔진 버전 관리](rabbitmq-version-management.md) 섹션을 참조하세요.

1. **구성 생성**을 선택합니다.

## 새로운 구성 개정 생성
<a name="creating-new-rabbitmq-configuration-revision-console"></a>

 구성을 생성한 후에는 구성 개정을 사용하여 구성을 편집해야 합니다.

1. 구성 목록에서 ***MyConfiguration***을 선택합니다.
**참고**  
첫 번째 구성 개정은 Amazon MQ가 구성을 생성할 때 항상 생성됩니다.

   ***MyConfiguration*** 페이지에서 새로운 구성 개정에 사용되는 브로커 엔진 유형 및 버전(예: **RabbitMQ 3.xx.xx**)을 볼 수 있습니다.

1. **구성 세부 정보** 탭에 구성 개정 번호, 설명 및 Cuttlefish 형식의 브로커 구성이 표시됩니다.
**참고**  
현재 구성을 편집하면 새 구성 개정이 생성됩니다.

1. **구성 편집**을 선택하고 Cuttlefish 구성을 변경합니다.

1. **저장**을 선택합니다.

   **Save revision(개정 버전 저장)** 대화 상자가 표시됩니다.

1. (선택 사항) `A description of the changes in this revision`을 입력합니다.

1. **저장**을 선택합니다.

   구성의 새 개정 버전이 저장됩니다.
**중요**  
구성에 대한 변경 사항이 있어도 즉시 브로커에 변경 사항이 적용되지 *않습니다*. 변경 내용을 적용하려면 다음 유지 관리 기간을 기다리거나 [브로커를 재부팅](amazon-mq-rebooting-broker.md)해야 합니다.  
현재 구성을 삭제할 수는 없습니다.

## 브로커에 구성 개정 적용
<a name="apply-rabbitmq-configuration-revision-creating-console"></a>

 구성 개정을 생성한 후에는 구성 개정을 브로커에 적용할 수 있습니다.

1. 왼쪽에서 탐색 창을 확장하고 **Brokers(브로커)**를 선택합니다.  
![\[Amazon MQ navigation panel showing Brokers and Configurations options.\]](http://docs.aws.amazon.com/ko_kr/amazon-mq/latest/developer-guide/images/amazon-mq-tutorials-apply-configuration.png)

1. 브로커 목록에서 브로커(예: **MyBroker**)를 선택한 다음 **Edit(편집)**을 선택합니다.

1. [**Edit *MyBroker***] 페이지의 [**Configuration**] 섹션에서 [**Configuration**] 및 [**Revision**]을 선택하고 [**Schedule Modifications**]를 선택합니다.

1. **Schedule broker modifications(브로커 수정 예약)** 섹션에서 **During the next scheduled maintenance window(예약된 다음 유지 관리 기간 동안)** 또는 **Immediately(즉시)** 중에 수정을 적용할 시점을 선택합니다.
**중요**  
단일 인스턴스 브로커는 재부팅되는 동안 오프라인 상태입니다. 클러스터 브로커의 경우 브로커가 재부팅되는 동안 한 번에 하나의 노드만 다운됩니다.

1. **적용**을 선택합니다.

   지정된 시간에 구성 개정이 브로커에 적용됩니다.

# RabbitMQ용 Amazon MQ 구성 개정 편집
<a name="edit-current-rabbitmq-configuration-console"></a>

 다음 지침은 브로커의 구성 개정을 편집하는 방법에 대해 설명합니다.

1. [Amazon MQ 콘솔](https://console.aws.amazon.com/amazon-mq/)에 로그인합니다.

1. 브로커 목록에서 브로커(예: **MyBroker**)를 선택한 다음 **Edit(편집)**을 선택합니다.

1. ***MyBroker*** 페이지에서 **Edit(편집)**를 선택합니다.

1. **Edit *MyBroker*(MyBroker 편집)** 페이지의 **구성** 섹션에서 **구성** 및 **개정**을 선택하고 **편집**을 선택합니다.
**참고**  
브로커를 생성할 때 구성을 선택하지 않는 한 첫 번째 구성 개정은 Amazon MQ가 브로커를 생성할 때 항상 생성됩니다.

   ***MyBroker*** 페이지에서 구성에 사용되는 브로커 엔진 유형 및 버전(예: **RabbitMQ 3.xx.xx**)을 볼 수 있습니다.

1. **구성 세부 정보** 탭에 구성 개정 번호, 설명 및 Cuttlefish 형식의 브로커 구성이 표시됩니다.
**참고**  
현재 구성을 편집하면 새 구성 개정이 생성됩니다.

1. **구성 편집**을 선택하고 Cuttlefish 구성을 변경합니다.

1. **저장**을 선택합니다.

   **Save revision(개정 버전 저장)** 대화 상자가 표시됩니다.

1. (선택 사항) `A description of the changes in this revision`을 입력합니다.

1. **저장**을 선택합니다.

   구성의 새 개정 버전이 저장됩니다.
**중요**  
구성에 대한 변경 사항이 있어도 즉시 브로커에 변경 사항이 적용되지 *않습니다*. 변경 내용을 적용하려면 다음 유지 관리 기간을 기다리거나 [브로커를 재부팅](amazon-mq-rebooting-broker.md)해야 합니다.  
현재 구성을 삭제할 수는 없습니다.

# 구성 가능한 값
<a name="configurable-values"></a>

 AWS Management Console에서 브로커 구성 파일을 수정하여 다음과 같은 브로커 구성 옵션 값을 설정할 수 있습니다.

다음 표에 설명된 값 외에도 Amazon MQ는 인증 및 권한 부여와 관련된 추가 브로커 구성 옵션과 리소스 제한을 지원합니다. 이러한 구성 옵션에 대한 자세한 내용은 섹션을 참조하세요.
+ [OAuth 2.0 구성](configure-oauth2.md)
+ [LDAP 구성](configure-ldap.md)
+ [HTTP 구성](configure-http.md)
+ [SSL 구성](configure-ssl.md)
+ [mTLS 구성](configure-mtls.md)
+ [ARN 지원](arn-support-rabbitmq-configuration.md)
+ [리소스 제한](rabbitmq-resource-limits-configuration.md)
+ [AMQP 클라이언트 SSL 구성](rabbitmq-amqp-client-ssl-configuration.md)


| 구성 | 기본 값 | 권장 값 | 값 | 적용 가능한 버전 | 설명 | 
| --- | --- | --- | --- | --- | --- | 
| consumer\$1timeout | 1800000밀리초(30분) | 1800000밀리초(30분) | 0\$12,147,483,647ms. Amazon MQ는 '무한'을 의미하는 값 0도 지원합니다. | 모든 버전 | 소비자가 전송을 확인하지 않는 경우를 감지하기 위한 소비자 전송 승인 제한 시간입니다. | 
| heartbeat | 60초 | 60초 | 60\$13600초 | 모든 버전 | RabbitMQ에서 연결을 사용할 수 없는 것으로 간주하기까지의 시간을 정의합니다. | 
| management.restrictions.operator\$1policy\$1changes.disabled | true | true | true, false | 모든 버전 | 운영자 정책 변경 기능을 끕니다. 이렇게 변경하는 경우 자체 운영자 정책에 HA 속성을 포함하는 것이 좋습니다. | 
| quorum\$1queue.property\$1equivalence.relaxed\$1checks\$1on\$1redeclaration | true | true | true, false | 모든 버전 | TRUE로 설정하면 애플리케이션에서 쿼럼 대기열을 다시 선언할 때 채널 예외를 방지합니다. | 
| secure.management.http.headers.enabled | true | true | true, false | 모든 버전 | 수정할 수 없는 HTTP 보안 헤더를 켭니다. | 

## 소비자 전송 승인 구성
<a name="configuring-consumer-delivery"></a>

소비자가 전송을 승인하지 않는 경우를 감지하도록 consumer\$1timeout을 구성할 수 있습니다. 소비자가 제한 시간 값 내에 확인을 보내지 않으면 채널이 닫힙니다. 예를 들어 기본값 1800000밀리초를 사용하는 경우 소비자가 1800000밀리초 이내에 전송 승인을 보내지 않으면 채널이 닫힙니다. Amazon MQ는 '무한'을 의미하는 값 0도 지원합니다.

## 하트비트 구성
<a name="configuring-heartbeat"></a>

하트비트 제한 시간을 구성하여 연결이 중단되거나 실패한 시점을 확인할 수 있습니다. 하트비트 값은 연결이 끊긴 것으로 간주되기까지의 시간 제한을 정의합니다.

## 운영자 정책 구성
<a name="configuring-operator-policies"></a>

각 가상 호스트의 기본 운영자 정책에는 다음과 같은 권장 HA 속성이 있습니다.

```
{
"name": "default_operator_policy_AWS_managed",
"pattern": ".*",
"apply-to": "all",
"priority": 0,
"definition": {
"ha-mode": "all",
"ha-sync-mode": "automatic"
}
}
```

 AWS Management Console 또는 관리 API를 통한 연산자 정책 변경은 기본적으로 사용할 수 없습니다. 브로커 구성에 다음 줄을 추가하여 변경을 구현할 수 있습니다.

```
management.restrictions.operator_policy_changes.disabled=false
```

이렇게 변경하는 경우 자체 운영자 정책에 HA 속성을 포함하는 것이 좋습니다.

## 대기열 선언에 대한 느슨한 검사 구성
<a name="configuring-relaxed-checks"></a>

클래식 대기열을 쿼럼 대기열로 마이그레이션했지만 클라이언트 코드를 업데이트하지 않은 경우 quorum\$1queue.property\$1equivalence.relaxed\$1checks\$1on\$1redeclaration을 true로 구성하여 쿼럼 대기열을 다시 선언할 때 채널 예외를 방지할 수 있습니다.

## HTTP 보안 헤더 구성
<a name="configuring-http-security"></a>

secure.management.http.headers.enabled 구성은 다음 HTTP 보안 헤더를 활성화합니다.
+ [X-Content-Type-Options: nosniff:](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) 브라우저가 웹 사이트의 파일 형식을 추론하는 데 사용되는 알고리즘인 콘텐츠 스니핑을 수행하지 못하도록 합니다.
+ [X-Frame-Options: DENY:](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) 다른 사람이 관리 플러그인을 자신의 웹 사이트의 프레임에 임베딩하여 사용자를 속이는 것을 방지합니다.
+ [Strict-Transport-Security: max-age=47304000; includeSubDomains:](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) 브라우저가 이후에 웹 사이트 및 하위 도메인에 장기간(1.5년) 연결할 때 HTTPS를 사용하도록 강제합니다.

버전 3.10 이상에서 생성된 RabbitMQ용 Amazon MQ 브로커에는 기본적으로 secure.management.http.headers.enabled가 true로 설정됩니다. secure.management.http.headers.enabled를 true로 설정하여 이러한 HTTP 보안 헤더를 켤 수 있습니다. 이러한 HTTP 보안 헤더를 옵트아웃하려면 secure.management.http.headers.enabled를 false로 설정합니다.

# OAuth 2.0 인증 및 권한 부여 구성
<a name="configure-oauth2"></a>

OAuth 2.0 구성 옵션 및 브로커에 대한 OAuth 2.0 인증 설정에 대한 자세한 내용은 [지원되는 OAuth 2.0 구성](oauth-for-amq-for-rabbitmq.md#oauth-tutorial-supported-configs) 및 [ OAuth 2.0 인증 및 권한 부여 사용을](oauth-tutorial.md) 참조하세요.

# LDAP 인증 및 권한 부여 구성
<a name="configure-ldap"></a>

LDAP 구성 옵션 및 브로커에 대한 LDAP 인증 설정에 대한 자세한 내용은 [지원되는 LDAP 구성](ldap-for-amq-for-rabbitmq.md#ldap-supported-configs) 및 섹션을 참조하세요[LDAP 인증 및 권한 부여 사용](rabbitmq-ldap-tutorial.md).

# HTTP 인증 및 권한 부여 구성
<a name="configure-http"></a>

HTTP 인증 구성 값 및 브로커에 대한 HTTP 인증 설정에 대한 자세한 내용은 [HTTP 인증 및 권한](http-for-amq-for-rabbitmq.md) 부여 및 섹션을 참조하세요[HTTP 인증 및 권한 부여 사용](rabbitmq-http-tutorial.md).

**참고**  
HTTP 인증 플러그인은 RabbitMQ용 Amazon MQ 버전 4 이상에서만 사용할 수 있습니다. RabbitMQ 

# SSL 인증서 인증 구성
<a name="configure-ssl"></a>

SSL 인증서 인증 구성 값 및 브로커에 대한 SSL 인증서 인증 설정에 대한 자세한 내용은 [SSL 인증서 인증](ssl-for-amq-for-rabbitmq.md) 및 섹션을 참조하세요[SSL 인증서 인증 사용](rabbitmq-ssl-tutorial.md).

**참고**  
SSL 인증서 인증 플러그인은 RabbitMQ용 Amazon MQ 버전 4 이상에서만 사용할 수 있습니다. RabbitMQ 

# mTLS 구성
<a name="configure-mtls"></a>

RabbitMQ용 Amazon MQ는 다양한 엔드포인트 및 외부 서비스에 대한 보안 연결을 위해 상호 TLS(mTLS)를 지원합니다. mTLS는 클라이언트와 서버 모두 인증서를 사용하여 인증하도록 요구하여 향상된 보안을 제공합니다.

**참고**  
mTLS에 대한 프라이빗 인증 기관 사용은 RabbitMQ용 Amazon MQ 버전 4 이상에서만 사용할 수 있습니다. RabbitMQ 

**중요**  
RabbitMQ용 Amazon MQ는 인증서 및 프라이빗 키 파일에 AWS ARNs 사용을 적용합니다. 자세한 내용은 [ RabbitMQ 구성의 ARN 지원을](arn-support-rabbitmq-configuration.md) 참조하세요.

**Topics**
+ [AMQP 엔드포인트](#mtls-amqp-endpoint)
+ [RabbitMQ 관리 플러그인](#mtls-management-plugin)
+ [RabbitMQ OAuth 2.0 플러그인](#mtls-oauth2-plugin)
+ [RabbitMQ HTTP 인증 플러그인](#mtls-http-plugin)
+ [RabbitMQ LDAP 플러그인](#mtls-ldap-plugin)
+ [AMQP 클라이언트 연결](#mtls-amqp-client)

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

AMQP 엔드포인트에 대한 클라이언트 연결을 위해 mTLS를 구성합니다. SSL 인증서 인증에 사용됩니다. 지원되는 구성은 섹션을 참조하세요[SSL 인증서 인증](ssl-for-amq-for-rabbitmq.md).

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

RabbitMQ 관리 인터페이스에 연결하도록 mTLS를 구성합니다.

**참고**  
관리 API에는 엄격한 mTLS가 지원되지 않습니다.

`aws.arns.management.ssl.cacertfile`  
관리 인터페이스에 연결하는 클라이언트 인증서를 검증하기 위한 인증 기관 파일입니다.

`management.ssl.verify`  
피어 확인 모드. 지원되는 값: `verify_none`, `verify_peer` 

`management.ssl.depth`  
확인을 위한 최대 인증서 체인 깊이입니다.

`management.ssl.hostname_verification`  
호스트 이름 확인 모드. 지원되는 값: `wildcard`, `none` 

다음 SSL 구성 값은 지원되지 않습니다.

### 전체 목록 보기
<a name="management-ssl-options-list-content"></a>
+ `management.ssl.cert`
+ `management.ssl.client_renegotiation`
+ `management.ssl.dh`
+ `management.ssl.dhfile`
+ `management.ssl.fail_if_no_peer_cert`
+ `management.ssl.honor_cipher_order`
+ `management.ssl.honor_ecc_order`
+ `management.ssl.key.RSAPrivateKey`
+ `management.ssl.key.DSAPrivateKey`
+ `management.ssl.key.PrivateKeyInfo`
+ `management.ssl.log_alert`
+ `management.ssl.password`
+ `management.ssl.psk_identity`
+ `management.ssl.reuse_sessions`
+ `management.ssl.secure_renegotiate`
+ `management.ssl.versions.$version`
+ `management.ssl.sni`

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

Amazon MQ에서 OAuth 2.0 자격 증명 공급자로의 연결을 위해 mTLS를 구성합니다. 지원되는 구성은 섹션을 참조하세요[OAuth 2.0 인증 및 권한 부여](oauth-for-amq-for-rabbitmq.md).

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

Amazon MQ에서 HTTP 인증 서버로의 연결을 위해 mTLS를 구성합니다. 지원되는 구성은 섹션을 참조하세요[HTTP 인증 및 권한 부여](http-for-amq-for-rabbitmq.md).

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

Amazon MQ에서 LDAP 서버로의 연결을 위해 mTLS를 구성합니다. 지원되는 구성은 섹션을 참조하세요[LDAP 인증 및 권한 부여](ldap-for-amq-for-rabbitmq.md).

## AMQP 클라이언트 연결
<a name="mtls-amqp-client"></a>

페더레이션 및 셔블에서 사용하는 AMQP 클라이언트 연결에 대한 TLS 피어 확인을 구성합니다. 자세한 내용은 [AMQP 클라이언트 SSL 구성을](rabbitmq-amqp-client-ssl-configuration.md) 참조하세요.

**중요**  
Amazon MQ는 현재 AMQP 클라이언트 연결을 위한 클라이언트 인증서 구성을 지원하지 않습니다. 따라서 페더레이션 및 셔블은 클라이언트 인증서 인증이 필요한 mTLS 지원 브로커에 연결할 수 없습니다.

# 리소스 제한 구성
<a name="configure-resource-limits"></a>

RabbitMQ용 Amazon MQ는 RabbitMQ 4 이상에서 브로커 리소스 제한 구성을 지원합니다. 브로커를 생성하면 Amazon MQ는 이러한 리소스 제한에 기본값을 자동으로 적용합니다. 이러한 기본값은 일반적인 고객 사용 패턴을 수용하면서 브로커 가용성을 보호하는 가드레일 역할을 합니다. 특정 워크로드 요구 사항에 더 잘 맞게 제한 구성 값을 변경하여 브로커 동작을 사용자 지정할 수 있습니다. 기본 및 최대 허용 값에 대한 자세한 내용은 섹션을 참조하세요[RabbitMQ용 Amazon MQ 크기 조정 지침](rabbitmq-sizing-guidelines.md).

## 리소스 이름 및 구성 키
<a name="resource-limit-configuration-keys"></a>


| 리소스 이름 | 구성 키 | 
| --- | --- | 
| Connection | connection\$1max | 
| 채널 | channel\$1max\$1per\$1node | 
| 대기열 | cluster\$1queue\$1limit | 
| Vhost | vhost\$1max | 
| Shovel | runtime\$1parameters.limits.shovel | 
| Exchange | cluster\$1exchange\$1limit | 
| 채널당 소비자 | consumer\$1max\$1per\$1channel | 
| 최대 메시지 크기 | max\$1message\$1size | 

## 리소스 제한을 재정의하는 방법
<a name="override-resource-limits"></a>

Amazon MQ API 및 Amazon MQ 콘솔을 사용하여 리소스 제한을 재정의할 수 있습니다.

다음 예제에서는를 사용하여 대기열 수 기본 제한을 재정의하는 방법을 보여줍니다 AWS CLI.

```
aws mq update-configuration --configuration-id <config-id> --data "$(echo "cluster_queue_limit=500" | base64 --wrap=0)"
```

호출이 성공하면 구성 개정이 생성됩니다. 구성을 RabbitMQ 브로커에 연결하고 브로커를 재부팅하여 재정의를 적용해야 합니다. 자세한 내용은 섹션을 참조하세요. [RabbitMQ Broker Configurations](rabbitmq-broker-configuration-parameters.md) 

## 리소스 제한 재정의 오류
<a name="resource-limit-override-errors"></a>

지원되는 범위를 벗어나는 구성 값과 브로커를 연결하거나 생성하면 다음과 유사한 오류 응답이 발생합니다.

```
Configuration Revision N for configuration:cluster_queue_limit has limit: of value: 100000000 larger than maximum allowed limit:5000
```

# 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 '.'
  ```

# AMQP 클라이언트 SSL 구성
<a name="rabbitmq-amqp-client-ssl-configuration"></a>

 페더레이션 및 셔블은 업스트림 브로커와 다운스트림 브로커 간의 통신에 AMQP를 사용합니다. 기본적으로 *TLS 피어 확인*은 RabbitMQ 4용 Amazon MQ 클라이언트에 대해 활성화됩니다. 이 설정을 사용하면 Amazon MQ 브로커에서 실행되는 페더레이션 및 셔블 AMQP 클라이언트가 업스트림 브로커와 연결을 설정할 때 피어 확인을 수행합니다.

 Amazon MQ 브로커에서 실행되는 AMQP 클라이언트는 Mozilla와 동일한 인증 기관을 지원합니다. [ACM](https://www.amazontrust.com/repository)을 사용하지 않는 경우 [Mozilla 포함 CA 인증서 목록에서 CA가 발급한 인증서를](https://wiki.mozilla.org/CA/Included_Certificates) 사용합니다. 온프레미스 브로커가 다른 인증 기관의 인증서를 사용하는 경우 SSL 확인이 실패합니다. 이러한 사용 사례에 대해 *TLS 피어 확인을* 비활성화할 수 있습니다.

**중요**  
Amazon MQ는 현재 AMQP 클라이언트 연결을 위한 클라이언트 인증서 구성을 지원하지 않습니다. 따라서 페더레이션 및 셔블은 클라이언트 인증서 인증이 필요한 mTLS 지원 브로커에 연결할 수 없습니다.

**중요**  
 RabbitMQ용 Amazon MQ에서 AMQP 클라이언트의 SSL 속성은 RabbitMQ 기본값*(verify\$1none)*으로 구성됩니다. RabbitMQ 3용 Amazon MQ는 이러한 기본값 재정의를 지원하지 않습니다. RabbitMQ 

**참고**  
기본 `verify_peer` 설정을 사용하면 2개의 Amazon MQ 브로커 간에 페더레이션 및 셔블 연결을 설정할 수 있지만, 이는 Amazon MQ 브로커와 프라이빗 브로커 또는 비 Amazon MQ CA 인증서로 실행되는 온프레미스 브로커 간의 연결 설정을 지원하지 않습니다. 프라이빗 또는 온프레미스 브로커에 연결하려면 다운스트림 Amazon MQ 브로커에서 피어 확인을 비활성화해야 합니다.

## AMQP 클라이언트 SSL 구성 키
<a name="amqp-client-ssl-configuration-keys"></a>


| 구성 | 구성 키 | 지원되는 값 | 
| --- | --- | --- | 
| AMQP 클라이언트 SSL 피어 확인 | amqp\$1client.ssl\$1options.verify | verify\$1none, verify\$1peer | 

## AMQP 클라이언트 SSL 피어 확인을 재정의하는 방법
<a name="override-amqp-client-ssl-peer-verification"></a>

RabbitMQ 4 브로커의 Amazon MQ API 및 Amazon MQ 콘솔을 사용하여 AMQP 클라이언트 SSL 피어 확인을 재정의할 수 있습니다.

다음 예제에서는를 사용하여 AMQP 클라이언트 SSL 피어 확인을 재정의하는 방법을 보여줍니다 AWS CLI.

```
aws mq update-configuration --configuration-id <config-id> --data "$(echo "amqp_client.ssl_options.verify=verify_none" | base64 --wrap=0)"
```

호출이 성공하면 구성 개정이 생성됩니다. 구성을 RabbitMQ 브로커에 연결하고 브로커를 재부팅하여 재정의를 적용해야 합니다. 자세한 내용은 섹션을 참조하세요. [Creating and applying broker configurations](rabbitmq-creating-applying-configurations.md) 

**중요**  
를 사용할 때 `verify_none`SSL 암호화는 여전히 활성 상태이지만 피어의 자격 증명은 확인되지 않습니다. 필요한 경우에만이 설정을 사용하고 대상 브로커에 대한 네트워크 경로를 신뢰해야 합니다.