Soporte de ARN en la configuración de RabbitMQ - Amazon MQ

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

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

Claves compatibles

Función de IAM obligatoria
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.

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

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.

Consulte Uso de la autenticación y la autorización de LDAP los pasos sobre cómo configurar AWS Secrets Manager y los recursos de Amazon S3.

Validación de acceso

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 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). 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

Para obtener información sobre los estados de cuarentena de los corredores relacionados con problemas de soporte de ARN, consulte:

Escenario de ejemplo

  • 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.

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