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
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.
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:PassRoleautorisation 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:SourceAccountetaws:SourceArnlorsqu'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.
Sur cette page
Clés prises en charge
Rôle IAM requis
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.
| Clé de configuration | Description |
|---|---|
aws.arns.ssl_options.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. |
| 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. |
| Clé de configuration | Description |
|---|---|
aws.arns.auth_oauth2.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. |
| Clé de configuration | Description |
|---|---|
aws.arns.auth_http.ssl_options.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_http.ssl_options.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_http.ssl_options.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. |
| Clé de configuration | Description |
|---|---|
aws.arns.auth_ldap.ssl_options.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_ldap.ssl_options.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_ldap.ssl_options.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_ldap.dn_lookup_bind.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_ldap.other_bind.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
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
Consultez Utilisation de l'authentification et de l'autorisation LDAP les étapes de configuration AWS Secrets Manager et les ressources Amazon S3.
Validation d'accès
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
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). 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
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 :
Exemple de scénario
-
b-f0fc695e-2f9c-486b-845a-988023a3e55bLe 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_ASSUMEROLEquarantaine. Pour plus d'informations, consultez INVALID_ASSUMEROLE. -
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 '.'