

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Soporte de ARN en la configuración de RabbitMQ
<a name="arn-support-rabbitmq-configuration"></a>

Amazon MQ para RabbitMQ admite AWS ARNs los valores de algunos ajustes de configuración de RabbitMQ. [Esto lo habilita el complemento comunitario rabbitmq-aws de RabbitMQ.](https://github.com/amazon-mq/rabbitmq-aws) Amazon MQ ha desarrollado y mantenido este complemento y también se puede utilizar en corredores de RabbitMQ autohospedados que no estén gestionados por Amazon MQ.

**Consideraciones importantes**  
Los valores de ARN resueltos recuperados por el complemento aws se pasan directamente al proceso RabbitMQ en tiempo de ejecución. No se almacenan en ningún otro lugar del nodo RabbitMQ.
Amazon MQ para RabbitMQ requiere una función de IAM que Amazon MQ pueda asumir para acceder a la configuración. ARNs Esto se configura mediante un ajuste. `aws.arns.assume_role_arn`
Los usuarios que CreateBroker utilicen o UpdateBroker APIs tengan una configuración de intermediario que incluya una función de IAM deben tener el `iam:PassRole` permiso para esa función.
El rol de IAM debe existir en la misma AWS cuenta que el bróker de RabbitMQ. Todos los ARNs elementos de la configuración deben estar presentes en la misma AWS región que el bróker RabbitMQ.
Amazon MQ añade claves condicionales globales de IAM `aws:SourceAccount` y `aws:SourceArn` cuando asume la función de IAM. [Estos valores deben utilizarse en la política de IAM asociada a la función de protección de diputado confusa.](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)

**Topics**
+ [Claves compatibles](#arn-support-supported-keys)
+ [Ejemplos de políticas de IAM](#arn-support-iam-policy-samples)
+ [Validación de acceso](#arn-support-validation)
+ [Estados de cuarentena relacionados con los corredores](#arn-support-quarantine-states)
+ [Escenario de ejemplo](#arn-support-example-scenario)

## Claves compatibles
<a name="arn-support-supported-keys"></a>

`aws.arns.assume_role_arn`  
Rol de IAM (ARN) que Amazon MQ asume para acceder a otros recursos. AWS Se requiere cuando se utiliza cualquier otra configuración de ARN.

### Punto final AMQP
<a name="arn-support-amqp-endpoint"></a>


| Clave de configuración | Description (Descripción) | 
| --- | --- | 
| aws.arns.ssl\_options.cacertfile | Archivo de autoridad de certificación para las conexiones de los SSL/TLS clientes. Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 

### Complemento de administración RabbitMQ
<a name="arn-support-management-plugin"></a>


| Clave de configuración | Description (Descripción) | 
| --- | --- | 
| aws.arns.management.ssl.cacertfile | Archivo de autoridad de certificación para las conexiones de la interfaz de administración. SSL/TLS Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 

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


| Clave de configuración | Description (Descripción) | 
| --- | --- | 
| aws.arns.auth\_oauth2.https.cacertfile | Archivo de autoridad de certificación para conexiones HTTPS OAuth 2.0. Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 

### Complemento de autenticación HTTP RabbitMQ
<a name="arn-support-http-plugin"></a>


| Clave de configuración | Description (Descripción) | 
| --- | --- | 
| aws.arns.auth\_http.ssl\_options.cacertfile | Archivo de autoridad de certificación para conexiones de autenticación HTTP. SSL/TLS Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 
| aws.arns.auth\_http.ssl\_options.certfile | Archivo de certificado para conexiones TLS mutuas entre Amazon MQ y el servidor de autenticación HTTP. Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 
| aws.arns.auth\_http.ssl\_options.keyfile | Archivo de clave privada para conexiones TLS mutuas entre Amazon MQ y el servidor de autenticación HTTP. Amazon MQ requiere usarlo AWS Secrets Manager para almacenar la clave privada. | 

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


| Clave de configuración | Description (Descripción) | 
| --- | --- | 
| aws.arns.auth\_ldap.ssl\_options.cacertfile | Archivo de autoridad de certificación para conexiones LDAP. SSL/TLS Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 
| aws.arns.auth\_ldap.ssl\_options.certfile | Archivo de certificado para conexiones TLS mutuas entre Amazon MQ y el servidor LDAP. Amazon MQ requiere usar Amazon S3 o almacenar el certificado. | 
| aws.arns.auth\_ldap.ssl\_options.keyfile | Archivo de clave privada para conexiones TLS mutuas entre Amazon MQ y el servidor LDAP. Amazon MQ requiere usarlo AWS Secrets Manager para almacenar la clave privada. | 
| aws.arns.auth\_ldap.dn\_lookup\_bind.password | Contraseña para el enlace de búsqueda de DN de LDAP. Amazon MQ requiere almacenar la contraseña como un valor de texto sin formato. AWS Secrets Manager  | 
| aws.arns.auth\_ldap.other\_bind.password | Contraseña para otro enlace de LDAP. Amazon MQ requiere almacenar la contraseña como un valor de texto sin formato. AWS Secrets Manager  | 

## Ejemplos de políticas de IAM
<a name="arn-support-iam-policy-samples"></a>

Para ver ejemplos de políticas de IAM, incluidos documentos de políticas de asunción de roles y documentos de políticas de roles, consulte el ejemplo de implementación del [CDK](https://github.com/aws-samples/amazon-mq-samples/blob/main/rabbitmq-samples/rabbitmq-ldap-activedirectory-sample/lib/rabbitmq-activedirectory-stack.ts#L232).

Consulte [Uso de la autenticación y la autorización de LDAP](rabbitmq-ldap-tutorial.md) los pasos sobre cómo configurar AWS Secrets Manager y los recursos de Amazon S3.

## Validación de acceso
<a name="arn-support-validation"></a>

Para solucionar problemas en los que no se pueden recuperar los valores del ARN, el complemento aws admite [un punto final de la API de administración de RabbitMQ](https://github.com/amazon-mq/rabbitmq-aws/blob/main/API.md) al que se puede llamar para comprobar si Amazon MQ es capaz de asumir la función y resolverla correctamente. AWS ARNs Esto evita la necesidad de actualizar la configuración del broker, actualizar el broker con la nueva revisión de la configuración y reiniciar el broker para probar los cambios de configuración.

**nota**  
El uso de esta API requiere un usuario administrador de RabbitMQ existente. Amazon MQ recomienda crear corredores de prueba con un usuario interno además de otros métodos de acceso. Consulte [Habilitar la autenticación OAuth 2.0 y la autenticación simple (interna)](oauth-tutorial.md#oauth-tutorial-config-both-auth-methods-using-cli). A continuación, se puede utilizar este usuario para acceder a la API de validación.

**nota**  
Aunque el complemento aws admite la transferencia de un nuevo rol como entrada a la API de validación, Amazon MQ no admite este parámetro. El rol de IAM utilizado para la validación debe coincidir con el valor de la configuración del `aws.arns.assume_role_arn` bróker.

## Estados de cuarentena relacionados con los corredores
<a name="arn-support-quarantine-states"></a>

Para obtener información sobre los estados de cuarentena de los corredores relacionados con problemas de soporte de ARN, consulte:
+ [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)

## Escenario de ejemplo
<a name="arn-support-example-scenario"></a>
+ El corredor se `b-f0fc695e-2f9c-486b-845a-988023a3e55b` ha configurado para usar la función de IAM para acceder al secreto `<role>` AWS Secrets Manager `<arn>`
+ Si la función proporcionada a Amazon MQ no tiene permiso de lectura sobre el AWS Secrets Manager secreto, aparecerá el siguiente error en los registros de RabbitMQ:

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

  Además, el agente entrará en estado de cuarentena. `INVALID_ASSUMEROLE` Para obtener más información, consulte [INVALID\_ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md).
+ Los intentos de autenticación LDAP fallarán y generarán el siguiente error:

  ```
  [error] <0.254.0> LDAP bind failed: invalid_credentials
  ```
+ Corrija la función de IAM con los permisos adecuados
+ Llama al punto final de validación para comprobar si RabbitMQ ahora puede acceder al secreto:

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