Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan otentikasi dan otorisasi LDAP untuk Amazon MQ untuk RabbitMQ
Tutorial ini menjelaskan cara mengkonfigurasi otentikasi dan otorisasi LDAP untuk Amazon MQ Anda untuk broker RabbitMQ menggunakan. AWS Managed Microsoft AD
Di halaman ini
Prasyarat untuk mengonfigurasi otentikasi dan otorisasi LDAP
Anda dapat mengatur AWS sumber daya yang diperlukan dalam tutorial ini dengan menerapkan tumpukan AWS CDK untuk Amazon MQ untuk integrasi RabbitMQ LDAP
Tumpukan CDK ini secara otomatis membuat semua AWS sumber daya yang diperlukan termasuk AWS Managed Microsoft AD, pengguna dan grup LDAP, Network Load Balancer, sertifikat, dan peran IAM. Lihat paket README untuk daftar lengkap sumber daya yang dibuat oleh tumpukan.
Jika Anda menyiapkan sumber daya secara manual alih-alih menggunakan tumpukan CDK, pastikan Anda memiliki infrastruktur yang setara sebelum mengonfigurasi LDAP di Amazon MQ Anda untuk broker RabbitMQ.
Prasyarat untuk mengatur Amazon MQ
AWS Versi CLI >= 2.28.23 untuk membuat penambahan nama pengguna dan kata sandi opsional selama pembuatan broker.
Mengkonfigurasi LDAP di RabbitMQ menggunakan CLI AWS
Prosedur ini menggunakan AWS CLI untuk membuat dan mengkonfigurasi sumber daya yang diperlukan. Dalam prosedur berikut, pastikan untuk mengganti nilai placeholder, seperti ConfigurationId dan Revision, <c-fa3390a5-7e01-4559-ae0c-eb15b38b22ca> dan<2>, dengan nilai sebenarnya.
-
Buat konfigurasi baru menggunakan perintah
create-configurationAWS CLI seperti yang ditunjukkan pada contoh berikut.aws mq create-configuration \ --name "rabbitmq-ldap-config" \ --engine-type "RABBITMQ" \ --engine-version "3.13"Perintah ini mengembalikan respon mirip dengan contoh berikut.
{ "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" } -
Buat file konfigurasi yang dipanggil
rabbitmq.confuntuk menggunakan LDAP sebagai metode otentikasi dan otorisasi, seperti yang ditunjukkan pada contoh berikut. Ganti semua nilai placeholder dalam template (ditandai dengan${RabbitMqLdapTestStack.*}) dengan nilai aktual dari output tumpukan AWS CDK prasyarat yang diterapkan atau infrastruktur yang setara.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}} ] } ''' -
Perbarui konfigurasi menggunakan perintah
update-configurationAWS CLI seperti yang ditunjukkan pada contoh berikut. Dalam perintah ini, tambahkan ID konfigurasi yang Anda terima sebagai respons Langkah 1 dari prosedur ini. Misalnya,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)"Perintah ini mengembalikan respon mirip dengan contoh berikut.
{ "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": [] } -
Buat broker dengan konfigurasi LDAP yang Anda buat di Langkah 2 prosedur ini. Untuk melakukan ini, gunakan perintah
create-brokerAWS CLI seperti yang ditunjukkan pada contoh berikut. Dalam perintah ini, berikan ID konfigurasi dan nomor revisi yang Anda peroleh dalam tanggapan Langkah 1 dan 2 masing-masing. Misalnya,c-fa3390a5-7e01-4559-ae0c-eb15b38b22cadan2.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>}'Perintah ini mengembalikan respon mirip dengan contoh berikut.
{ "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" }Pembatasan penamaan broker
Peran IAM yang dibuat oleh tumpukan CDK prasyarat membatasi nama broker untuk memulai.
rabbitmq-ldap-testPastikan nama broker Anda mengikuti pola ini atau peran IAM tidak akan memiliki izin untuk mengambil peran untuk resolusi ARN. -
Verifikasi bahwa status broker bertransisi dari
CREATION_IN_PROGRESSkeRUNNING, menggunakan perintahdescribe-brokerAWS CLI seperti yang ditunjukkan pada contoh berikut. Dalam perintah ini, berikan ID broker yang Anda peroleh dalam hasil langkah sebelumnya Misalnya,b-2a1b5133-a10c-49d2-879b-8c176c34cf73.aws mq describe-broker \ --broker-id "<b-2a1b5133-a10c-49d2-879b-8c176c34cf73>"Perintah ini mengembalikan respon mirip dengan contoh berikut. Respons berikut adalah versi singkat dari output lengkap yang dikembalikan
describe-brokerperintah. Tanggapan ini menunjukkan status broker dan strategi otentikasi yang digunakan untuk mengamankan broker. Dalam hal ini, strategiconfig_managedotentikasi menunjukkan bahwa broker menggunakan metode otentikasi LDAP.{ "AuthenticationStrategy": "config_managed", ..., "BrokerState": "RUNNING", ... } -
Validasi akses RabbitMQ menggunakan salah satu pengguna pengujian yang dibuat oleh tumpukan CDK prasyarat
# 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"}'