Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo dell'autenticazione e dell'autorizzazione LDAP per Amazon MQ for RabbitMQ
Questo tutorial descrive come configurare l'autenticazione e l'autorizzazione LDAP per i broker Amazon MQ for RabbitMQ che utilizzano. AWS Managed Microsoft AD
In questa pagina
Prerequisiti per configurare l'autenticazione e l'autorizzazione LDAP
Puoi configurare le AWS risorse richieste in questo tutorial distribuendo lo stack AWS CDK per l'integrazione LDAP di Amazon MQ for RabbitMQ
Questo stack CDK crea automaticamente tutte le AWS risorse necessarie AWS Managed Microsoft AD, tra cui utenti e gruppi LDAP, Network Load Balancer, certificati e ruoli IAM. Consulta il pacchetto README per un elenco completo delle risorse create dallo stack.
Se stai configurando le risorse manualmente anziché utilizzare lo stack CDK, assicurati di disporre dell'infrastruttura equivalente prima di configurare LDAP sui tuoi broker Amazon MQ for RabbitMQ.
Prerequisito per configurare Amazon MQ
AWS Versione CLI >= 2.28.23 per rendere opzionale l'aggiunta di un nome utente e una password durante la creazione del broker.
Configurazione di LDAP in RabbitMQ tramite CLI AWS
Questa procedura utilizza la AWS CLI per creare e configurare le risorse necessarie. Nella procedura seguente, assicuratevi di sostituire i valori segnaposto, come ConfigurationID e Revision, con i relativi valori <c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca> effettivi<2>.
-
Creare una nuova configurazione utilizzando il comando
create-configurationAWS CLI, come illustrato nell'esempio seguente.aws mq create-configuration \ --name "rabbitmq-ldap-config" \ --engine-type "RABBITMQ" \ --engine-version "3.13"Questo comando restituisce una risposta simile all'esempio seguente.
{ "Arn": "arn:aws:mq:us-west-2:123456789012:configuration:c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca", "AuthenticationStrategy": "simple", "Created": "2025-07-17T16:03:01.759943+00:00", "Id": "c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca", "LatestRevision": { "Created": "2025-07-17T16:03:01.759000+00:00", "Description": "Auto-generated default for rabbitmq-ldap-config on RabbitMQ 3.13", "Revision": 1 }, "Name": "rabbitmq-ldap-config" } -
Create un file di configurazione chiamato
rabbitmq.confa utilizzare LDAP come metodo di autenticazione e autorizzazione, come illustrato nell'esempio seguente. Sostituisci tutti i valori segnaposto nel modello (contrassegnati con${RabbitMqLdapTestStack.*}) con i valori effettivi degli output dello stack dei AWS CDK prerequisiti implementati o dell'infrastruttura equivalente.auth_backends.1 = ldap # LDAP authentication settings - For more information, # see https://www.rabbitmq.com/docs/ldap#basic # FIXME: Replace the ${RabbitMqLdapTestStack.*} placeholders with actual values # from your deployed prerequisite CDK stack outputs. auth_ldap.servers.1 = ${RabbitMqLdapTestStack.NlbDnsName} auth_ldap.dn_lookup_bind.user_dn = ${RabbitMqLdapTestStack.DnLookupUserDn} auth_ldap.dn_lookup_base = ${RabbitMqLdapTestStack.DnLookupBase} auth_ldap.dn_lookup_attribute = ${RabbitMqLdapTestStack.DnLookupAttribute} auth_ldap.port = 636 auth_ldap.use_ssl = true auth_ldap.ssl_options.verify = verify_peer auth_ldap.log = network # AWS integration for secure credential retrieval # - see: https://github.com/amazon-mq/rabbitmq-aws # The aws plugin allows RabbitMQ to securely retrieve credentials and certificates # from AWS services. # Replace the ${RabbitMqLdapTestStack.*} placeholders with actual ARN values # from your deployed prerequisite CDK stack outputs. aws.arns.auth_ldap.ssl_options.cacertfile = ${RabbitMqLdapTestStack.CaCertArn} aws.arns.auth_ldap.dn_lookup_bind.password = ${RabbitMqLdapTestStack.DnLookupUserPasswordArn} aws.arns.assume_role_arn = ${RabbitMqLdapTestStack.AmazonMqAssumeRoleArn} # LDAP authorization queries - For more information, # see: https://www.rabbitmq.com/docs/ldap#authorisation # FIXME: Replace the ${RabbitMqLdapTestStack.*} placeholders with actual group DN # values from your deployed prerequisite CDK stack outputs # Uses Active Directory groups created by the prerequisite CDK stack auth_ldap.queries.tags = ''' [{administrator, {in_group, "${RabbitMqLdapTestStack.RabbitMqAdministratorsGroupDn}"}}, {management, {in_group, "${RabbitMqLdapTestStack.RabbitMqMonitoringUsersGroupDn}"}}] ''' # FIXME: This provides all authenticated users access to all vhosts # - update to restrict access as required auth_ldap.queries.vhost_access = ''' {constant, true} ''' # FIXME: This provides all authenticated users full access to all # queues and exchanges - update to restrict access as required auth_ldap.queries.resource_access = ''' {for, [ {permission, configure, {constant, true}}, {permission, write, {for, [{resource, queue, {constant, true}}, {resource, exchange, {constant, true}}]}}, {permission, read, {for, [{resource, exchange, {constant, true}}, {resource, queue, {constant, true}}]}} ] } ''' # FIXME: This provides all authenticated users access to all topics # - update to restrict access as required auth_ldap.queries.topic_access = ''' {for, [{permission, write, {constant, true}}, {permission, read, {constant, true}} ] } ''' -
Aggiornate la configurazione utilizzando il comando
update-configurationAWS CLI come illustrato nell'esempio seguente. In questo comando, aggiungi l'ID di configurazione ricevuto nella risposta del passaggio 1 di questa procedura. Ad esempio,c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca.aws mq update-configuration \ --configuration-id "<c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca>" \ --data "$(cat rabbitmq.conf | base64 --wrap=0)"Questo comando restituisce una risposta simile all'esempio seguente.
{ "Arn": "arn:aws:mq:us-west-2:123456789012:configuration:c-b600ac8e-8183-4f74-a713-983e59f30e3d", "Created": "2025-07-17T16:57:04.520931+00:00", "Id": "c-b600ac8e-8183-4f74-a713-983e59f30e3d", "LatestRevision": { "Created": "2025-07-17T16:57:39.172000+00:00", "Revision": 2 }, "Name": "rabbitmq-ldap-config", "Warnings": [] } -
Crea un broker con la configurazione LDAP creata nel passaggio 2 di questa procedura. A tale scopo, utilizzate il comando
create-brokerAWS CLI come illustrato nell'esempio seguente. In questo comando, fornite l'ID di configurazione e il numero di revisione ottenuti rispettivamente nelle risposte dei passaggi 1 e 2. Ad esempioc-fa3390a5-7e01-4559-ae0c-eb15b38b22cae2.aws mq create-broker \ --broker-name "rabbitmq-ldap-test-1" \ --engine-type "RABBITMQ" \ --engine-version "3.13" \ --host-instance-type "mq.m7g.large" \ --deployment-mode "CLUSTER_MULTI_AZ" \ --logs '{"General": true}' \ --publicly-accessible \ --configuration '{"Id": "<c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca>","Revision": <2>}'Questo comando restituisce una risposta simile all'esempio seguente.
{ "BrokerArn": "arn:aws:mq:us-west-2:123456789012:broker:rabbitmq-ldap-broker:b-2a1b5133-a10c-49d2-879b-8c176c34cf73", "BrokerId": "b-2a1b5133-a10c-49d2-879b-8c176c34cf73" }Restrizione dei nomi dei broker
Il ruolo IAM creato dallo stack CDK prerequisito limita inizialmente i nomi dei broker.
rabbitmq-ldap-testAssicurati che il nome del tuo broker segua questo schema o il ruolo IAM non sarà autorizzato ad assumere il ruolo per la risoluzione ARN. -
Verifica che lo stato del broker passi da
CREATION_IN_PROGRESSaRUNNING, utilizzando il comandodescribe-brokerAWS CLI come mostrato nell'esempio seguente. In questo comando, fornisci l'ID del broker che hai ottenuto nel risultato del passaggio precedente. Ad esempio,.b-2a1b5133-a10c-49d2-879b-8c176c34cf73aws mq describe-broker \ --broker-id "<b-2a1b5133-a10c-49d2-879b-8c176c34cf73>"Questo comando restituisce una risposta simile all'esempio seguente. La risposta seguente è una versione abbreviata dell'output completo restituito dal
describe-brokercomando. Questa risposta mostra lo stato del broker e la strategia di autenticazione utilizzata per proteggere il broker. In questo caso, la strategia diconfig_managedautenticazione indica che il broker utilizza il metodo di autenticazione LDAP.{ "AuthenticationStrategy": "config_managed", ..., "BrokerState": "RUNNING", ... } -
Convalida l'accesso a RabbitMQ utilizzando uno degli utenti di test creati dallo stack CDK prerequisito
# FIXME: Replace ${RabbitMqLdapTestStack.ConsoleUserPasswordArn} with the actual ARN from your deployed prerequisite CDK stack outputs CONSOLE_PASSWORD=$(aws secretsmanager get-secret-value \ --secret-id ${RabbitMqLdapTestStack.ConsoleUserPasswordArn} \ --query 'SecretString' --output text) # FIXME: Replace BrokerConsoleURL with the actual ConsoleURL retrieved by # calling describe-broker for the broker created above # Call management API /api/overview (should succeed) curl -u RabbitMqConsoleUser:$CONSOLE_PASSWORD \ https://${BrokerConsoleURL}/api/overview # Try to create a user (should fail - console user only has monitoring permissions) curl -u RabbitMqConsoleUser:$CONSOLE_PASSWORD \ -X PUT https://${BrokerConsoleURL}/api/users/testuser \ -H "Content-Type: application/json" \ -d '{"password":"testpass","tags":"management"}'