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 HTTP per Amazon MQ for RabbitMQ
Questo tutorial descrive come configurare l'autenticazione e l'autorizzazione HTTP per i broker Amazon MQ for RabbitMQ utilizzando un server HTTP esterno.
Nota
Il plug-in di autenticazione HTTP è disponibile solo per Amazon MQ for RabbitMQ versione 4 e successive.
In questa pagina
Prerequisiti per configurare l'autenticazione e l'autorizzazione HTTP
Puoi configurare le AWS risorse richieste in questo tutorial distribuendo lo stack AWS CDK per l'integrazione dell'autenticazione HTTP di Amazon MQ for RabbitMQ
Questo stack CDK crea automaticamente tutte le AWS risorse necessarie, inclusi il server di autenticazione HTTP, i certificati e i ruoli IAM. Vedi 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 l'autenticazione HTTP 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 dell'autenticazione HTTP 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 con i valori effettivi.
-
Creare una nuova configurazione utilizzando il comando
create-configurationAWS CLI, come illustrato nell'esempio seguente.aws mq create-configuration \ --name "rabbitmq-http-config" \ --engine-type "RABBITMQ" \ --engine-version "4.2"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-http-config on RabbitMQ 4.2", "Revision": 1 }, "Name": "rabbitmq-http-config" } -
Create un file di configurazione chiamato
rabbitmq.confa utilizzare HTTP come metodo di autenticazione e autorizzazione, come illustrato nell'esempio seguente. Sostituisci tutti i valori segnaposto nel modello (contrassegnati con${...}) con i valori effettivi degli output dello stack dei AWS CDK prerequisiti implementati o dell'infrastruttura equivalente.auth_backends.1 = cache auth_backends.2 = http auth_cache.cached_backend = http # HTTP authentication settings # For more information, see https://github.com/rabbitmq/rabbitmq-auth-backend-http # FIXME: Replace the ${...} placeholders with actual values # from your deployed prerequisite CDK stack outputs. auth_http.http_method = post auth_http.user_path = ${HttpServerUserPath} auth_http.vhost_path = ${HttpServerVhostPath} auth_http.resource_path = ${HttpServerResourcePath} auth_http.topic_path = ${HttpServerTopicPath} # TLS/HTTPS configuration auth_http.ssl_options.verify = verify_peer auth_http.ssl_options.sni = test.amazonaws.com # AWS integration for secure credential retrieval # For more information, see https://github.com/amazon-mq/rabbitmq-aws # Replace the ${...} placeholders with actual ARN values # from your deployed prerequisite CDK stack outputs. aws.arns.assume_role_arn = ${AmazonMqAssumeRoleArn} aws.arns.auth_http.ssl_options.cacertfile = ${CaCertArn} -
Aggiorna la configurazione utilizzando il
update-configurationAWS comando CLI. Usa l'ID di configurazione del passaggio 3.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-fa3390a5-7e01-4559-ae0c-eb15b38b22ca", "Created": "2025-07-17T16:57:04.520931+00:00", "Id": "c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca", "LatestRevision": { "Created": "2025-07-17T16:57:39.172000+00:00", "Revision": 2 }, "Name": "rabbitmq-http-config", "Warnings": [] } -
Crea un broker con la configurazione HTTP. Utilizza l'ID di configurazione e il numero di revisione dei passaggi precedenti.
aws mq create-broker \ --broker-name "rabbitmq-http-test-1" \ --engine-type "RABBITMQ" \ --engine-version "4.2" \ --host-instance-type "mq.m7g.large" \ --deployment-mode "SINGLE_INSTANCE" \ --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-http-test-1:b-2a1b5133-a10c-49d2-879b-8c176c34cf73", "BrokerId": "b-2a1b5133-a10c-49d2-879b-8c176c34cf73" } -
Verifica che lo stato del broker passi da
CREATION_IN_PROGRESSaRUNNING, utilizzando il comandodescribe-brokerAWS CLI.aws mq describe-broker \ --broker-id "<b-2a1b5133-a10c-49d2-879b-8c176c34cf73>"Questo comando restituisce una risposta simile all'esempio seguente. La strategia di
config_managedautenticazione indica che il broker utilizza il metodo di autenticazione HTTP.{ "AuthenticationStrategy": "config_managed", ..., "BrokerState": "RUNNING", ... } -
Convalida l'accesso a RabbitMQ utilizzando uno degli utenti di test creati dallo stack CDK prerequisito
# FIXME: Replace ${RabbitMqHttpAuthElbStack.ConsoleUserPasswordArn} with the actual ARN from your deployed prerequisite CDK stack outputs CONSOLE_PASSWORD=$(aws secretsmanager get-secret-value \ --secret-id ${RabbitMqHttpAuthElbStack.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 vhost (should fail - console user only has management permissions) curl -u RabbitMqConsoleUser:$CONSOLE_PASSWORD \ -X PUT https://${BrokerConsoleURL}/api/vhosts/test-vhost \ -H "Content-Type: application/json" \ -d '{}'