

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# RabbitMQ 設定での ARN サポート
<a name="arn-support-rabbitmq-configuration"></a>

Amazon MQ for RabbitMQ は、一部の RabbitMQ 設定の値の AWS ARNs をサポートしています。これは、RabbitMQ コミュニティプラグイン [rabbitmq-aws](https://github.com/amazon-mq/rabbitmq-aws) によって有効になります。このプラグインは Amazon MQ によって開発および保守されており、Amazon MQ によって管理されていないセルフホスト RabbitMQ ブローカーでも使用できます。 Amazon MQ

**重要な考慮事項**  
aws プラグインによって取得された解決された ARN 値は、実行時に RabbitMQ プロセスに直接渡されます。RabbitMQ ノードの他の場所には保存されません。
Amazon MQ for RabbitMQ には、設定された 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\_options.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\_oauth2.https.cacertfile | OAuth 2.0 HTTPS 接続の認証機関ファイル。Amazon MQ では、Amazon S3 または を使用して証明書を保存する必要があります。 | 

### RabbitMQ HTTP 認証プラグイン
<a name="arn-support-http-plugin"></a>


| 設定キー | 説明 | 
| --- | --- | 
| 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 、 を使用してプライベートキーを保存する必要があります。 | 

### RabbitMQ LDAP プラグイン
<a name="arn-support-ldap-plugin"></a>


| 設定キー | 説明 | 
| --- | --- | 
| 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 ポリシーのサンプル
<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 がロールと resolveARN を正常に引き受けることができるかどうかを確認するために呼び出すことができる 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\_INVALID\_ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md)
+ [RABBITMQ\_INVALID\_ARN\_LDAP](troubleshooting-action-required-codes-invalid-arn-ldap.md)
+ [RABBITMQ\_INVALID\_ARN](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\_ASSUMEROLE](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 '.'
  ```