

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Support de l'ARN dans la configuration de RabbitMQ
<a name="arn-support-rabbitmq-configuration"></a>

Amazon MQ pour RabbitMQ prend en charge AWS ARNs les valeurs de certains paramètres de configuration de RabbitMQ. [Ceci est activé par le plugin communautaire RabbitMQ rabbitmq-aws.](https://github.com/amazon-mq/rabbitmq-aws) Ce plugin est développé et maintenu par Amazon MQ et peut également être utilisé par des courtiers RabbitMQ auto-hébergés qui ne sont pas gérés par Amazon MQ.

**Considérations importantes**  
Les valeurs ARN résolues récupérées par le plugin aws sont transmises directement au processus RabbitMQ lors de l'exécution. Ils ne sont pas stockés ailleurs sur le nœud RabbitMQ.
Amazon MQ pour RabbitMQ nécessite un rôle IAM qui peut être assumé par Amazon MQ pour accéder au configuré. ARNs Ceci est configuré par réglage`aws.arns.assume_role_arn`.
Les utilisateurs qui appellent CreateBroker ou UpdateBroker APIs dont la configuration de courtier inclut un rôle IAM doivent disposer de l'`iam:PassRole`autorisation pour ce rôle.
Le rôle IAM doit exister sur le même AWS compte que le courtier RabbitMQ. Tous ARNs les éléments de la configuration doivent être présents dans la même AWS région que le broker RabbitMQ.
Amazon MQ ajoute des clés conditionnelles globales IAM `aws:SourceAccount` et `aws:SourceArn` lorsqu'il assume le rôle IAM. Ces valeurs doivent être utilisées dans la politique IAM associée au rôle pour éviter toute [confusion dans la protection des adjoints](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

**Topics**
+ [Clés prises en charge](#arn-support-supported-keys)
+ [Exemples de politiques IAM](#arn-support-iam-policy-samples)
+ [Validation d'accès](#arn-support-validation)
+ [États de quarantaine des courtiers associés](#arn-support-quarantine-states)
+ [Exemple de scénario](#arn-support-example-scenario)

## Clés prises en charge
<a name="arn-support-supported-keys"></a>

`aws.arns.assume_role_arn`  
ARN du rôle IAM qu'Amazon MQ suppose pour accéder AWS à d'autres ressources. Obligatoire lorsqu'une autre configuration d'ARN est utilisée.

### Point de terminaison AMQP
<a name="arn-support-amqp-endpoint"></a>


| Clé de configuration | Description | 
| --- | --- | 
| aws.arns.ssl\$1options.cacertfile | Fichier d'autorité de certification pour les connexions SSL/TLS client. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 

### Plugin de gestion RabbitMQ
<a name="arn-support-management-plugin"></a>


| Clé de configuration | Description | 
| --- | --- | 
| aws.arns.management.ssl.cacertfile | Fichier d'autorité de certification pour les SSL/TLS connexions à l'interface de gestion. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 

### Plug-in RabbitMQ 2.0 OAuth
<a name="arn-support-oauth2-plugin"></a>


| Clé de configuration | Description | 
| --- | --- | 
| aws.arns.auth\$1oauth2.https.cacertfile | Fichier d'autorité de certification pour les connexions HTTPS OAuth 2.0. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 

### Plug-in d'authentification HTTP RabbitMQ
<a name="arn-support-http-plugin"></a>


| Clé de configuration | Description | 
| --- | --- | 
| aws.arns.auth\$1http.ssl\$1options.cacertfile | Fichier d'autorité de certification pour les SSL/TLS connexions d'authentification HTTP. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 
| aws.arns.auth\$1http.ssl\$1options.certfile | Fichier de certificat pour les connexions TLS mutuelles entre Amazon MQ et le serveur d'authentification HTTP. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 
| aws.arns.auth\$1http.ssl\$1options.keyfile | Fichier de clé privée pour les connexions TLS mutuelles entre Amazon MQ et le serveur d'authentification HTTP. Amazon MQ doit être utilisé AWS Secrets Manager pour stocker la clé privée. | 

### Plug-in LDAP RabbitMQ
<a name="arn-support-ldap-plugin"></a>


| Clé de configuration | Description | 
| --- | --- | 
| aws.arns.auth\$1ldap.ssl\$1options.cacertfile | Fichier d'autorité de certification pour les SSL/TLS connexions LDAP. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 
| aws.arns.auth\$1ldap.ssl\$1options.certfile | Fichier de certificat pour les connexions TLS mutuelles entre Amazon MQ et le serveur LDAP. Amazon MQ nécessite l'utilisation d'Amazon S3 ou le stockage du certificat. | 
| aws.arns.auth\$1ldap.ssl\$1options.keyfile | Fichier de clé privée pour les connexions TLS mutuelles entre Amazon MQ et le serveur LDAP. Amazon MQ doit être utilisé AWS Secrets Manager pour stocker la clé privée. | 
| aws.arns.auth\$1ldap.dn\$1lookup\$1bind.password | Mot de passe pour la liaison de recherche du DN LDAP. Amazon MQ nécessite l'utilisation AWS Secrets Manager pour stocker le mot de passe sous forme de valeur en texte brut. | 
| aws.arns.auth\$1ldap.other\$1bind.password | Mot de passe pour l'autre liaison LDAP. Amazon MQ nécessite l'utilisation AWS Secrets Manager pour stocker le mot de passe sous forme de valeur en texte brut. | 

## Exemples de politiques IAM
<a name="arn-support-iam-policy-samples"></a>

Pour des exemples de politique IAM, notamment des documents de politique d'acceptation des rôles et des documents de politique de rôle, consultez l'[exemple d'implémentation du CDK](https://github.com/aws-samples/amazon-mq-samples/blob/main/rabbitmq-samples/rabbitmq-ldap-activedirectory-sample/lib/rabbitmq-activedirectory-stack.ts#L232).

Consultez [Utilisation de l'authentification et de l'autorisation LDAP](rabbitmq-ldap-tutorial.md) les étapes de configuration AWS Secrets Manager et les ressources Amazon S3.

## Validation d'accès
<a name="arn-support-validation"></a>

Pour résoudre les scénarios dans lesquels les valeurs ARN ne peuvent pas être récupérées, le plugin aws prend en charge un point de [terminaison d'API de gestion RabbitMQ](https://github.com/amazon-mq/rabbitmq-aws/blob/main/API.md) qui peut être appelé pour vérifier si Amazon MQ est en mesure d'assumer correctement le rôle et de le résoudre. AWS ARNs Cela évite d'avoir à mettre à jour la configuration du courtier, à mettre à jour le courtier avec la nouvelle révision de configuration et à redémarrer le courtier pour tester les modifications de configuration.

**Note**  
L'utilisation de cette API nécessite un utilisateur administrateur RabbitMQ existant. Amazon MQ recommande de créer des courtiers de test avec un utilisateur interne en plus des autres méthodes d'accès. Consultez la section [Activation à la fois de l'authentification OAuth 2.0 et de l'authentification simple (interne)](oauth-tutorial.md#oauth-tutorial-config-both-auth-methods-using-cli). Cet utilisateur peut ensuite être utilisé pour accéder à l'API de validation.

**Note**  
Bien que le plugin aws prenne en charge le transfert d'un nouveau rôle en tant qu'entrée à l'API de validation, ce paramètre n'est pas pris en charge par Amazon MQ. Le rôle IAM utilisé pour la validation doit correspondre à la valeur de `aws.arns.assume_role_arn` dans la configuration du broker.

## États de quarantaine des courtiers associés
<a name="arn-support-quarantine-states"></a>

Pour plus d'informations sur les états de quarantaine des courtiers liés aux problèmes liés à la prise en charge de l'ARN, voir :
+ [RABBITMQ\$1INVALID\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md)
+ [RABBITMQ\$1INVALID\$1ARN\$1LDAP](troubleshooting-action-required-codes-invalid-arn-ldap.md)
+ [RABBITMQ\$1ARN\$1INVALIDE](troubleshooting-action-required-codes-invalid-arn.md)

## Exemple de scénario
<a name="arn-support-example-scenario"></a>
+ `b-f0fc695e-2f9c-486b-845a-988023a3e55b`Le courtier a été configuré pour utiliser le rôle IAM `<role>` pour accéder au secret AWS Secrets Manager `<arn>`
+ Si le rôle fourni à Amazon MQ ne dispose pas d'une autorisation de lecture sur le AWS Secrets Manager secret, l'erreur suivante sera affichée dans les journaux de RabbitMQ :

  ```
  [error] <0.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}}
  ```

  De plus, le courtier entrera dans l'état de `INVALID_ASSUMEROLE` quarantaine. Pour plus d'informations, consultez [INVALID\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md).
+ Les tentatives d'authentification LDAP échoueront avec l'erreur suivante :

  ```
  [error] <0.254.0> LDAP bind failed: invalid_credentials
  ```
+ Corrigez le rôle IAM avec les autorisations appropriées
+ Appelez le point de validation pour vérifier si RabbitMQ est désormais en mesure d'accéder au secret :

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