ARN-Unterstützung in der RabbitMQ-Konfiguration - Amazon MQ

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

ARN-Unterstützung in der RabbitMQ-Konfiguration

Amazon MQ for RabbitMQ unterstützt AWS ARNs die Werte einiger RabbitMQ-Konfigurationseinstellungen. Dies wird durch das RabbitMQ-Community-Plugin rabbitmq-aws ermöglicht. Dieses Plugin wurde von Amazon MQ entwickelt und verwaltet und kann auch in selbst gehosteten RabbitMQ-Brokern verwendet werden, die nicht von Amazon MQ verwaltet werden.

Wichtige Überlegungen
  • Die vom aws-Plugin abgerufenen aufgelösten ARN-Werte werden zur Laufzeit direkt an den RabbitMQ-Prozess übergeben. Sie werden nicht an anderer Stelle auf dem RabbitMQ-Knoten gespeichert.

  • Amazon MQ for RabbitMQ erfordert eine IAM-Rolle, die von Amazon MQ für den Zugriff auf die Konfiguration übernommen werden kann. ARNs Dies wird durch Einstellung konfiguriert. aws.arns.assume_role_arn

  • Benutzer, die anrufen CreateBroker oder UpdateBroker APIs über eine Broker-Konfiguration verfügen, die eine IAM-Rolle enthält, müssen über die entsprechenden iam:PassRole Berechtigungen verfügen.

  • Die IAM-Rolle muss in demselben AWS Konto wie der RabbitMQ-Broker vorhanden sein. Alle ARNs in der Konfiguration enthaltenen Elemente müssen in derselben AWS Region wie der RabbitMQ-Broker vorhanden sein.

  • Amazon MQ fügt globale bedingte IAM-Schlüssel hinzu aws:SourceAccount und aws:SourceArn wenn die IAM-Rolle übernommen wird. Diese Werte müssen in der IAM-Richtlinie verwendet werden, die der Rolle für den Schutz verwirrter Stellvertreter zugewiesen ist.

Unterstützte Schlüssel

Erforderliche IAM-Rolle
aws.arns.assume_role_arn

ARN für die IAM-Rolle, die Amazon MQ für den Zugriff auf andere AWS Ressourcen annimmt. Erforderlich, wenn eine andere ARN-Konfiguration verwendet wird.

Schlüssel zur Konfiguration Description
aws.arns.ssl_options.cacertfile Zertifizierungsstellendatei für SSL/TLS Client-Verbindungen. Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
Schlüssel zur Konfiguration Description
aws.arns.management.ssl.cacertfile Zertifizierungsstellendatei für Verbindungen mit Verwaltungsschnittstellen. SSL/TLS Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
Schlüssel zur Konfiguration Description
aws.arns.auth_oauth2.https.cacertfile Zertifizierungsstellendatei für OAuth 2.0-HTTPS-Verbindungen. Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
Schlüssel zur Konfiguration Description
aws.arns.auth_http.ssl_options.cacertfile Zertifizierungsstellendatei für HTTP-Authentifizierungsverbindungen. SSL/TLS Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
aws.arns.auth_http.ssl_options.certfile Zertifikatsdatei für gegenseitige TLS-Verbindungen zwischen Amazon MQ und dem HTTP-Authentifizierungsserver. Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
aws.arns.auth_http.ssl_options.keyfile Private Schlüsseldatei für gegenseitige TLS-Verbindungen zwischen Amazon MQ und dem HTTP-Authentifizierungsserver. Amazon MQ erfordert die Verwendung AWS Secrets Manager zum Speichern des privaten Schlüssels.
Schlüssel zur Konfiguration Description
aws.arns.auth_ldap.ssl_options.cacertfile Zertifizierungsstellendatei für LDAP-Verbindungen. SSL/TLS Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
aws.arns.auth_ldap.ssl_options.certfile Zertifikatsdatei für gegenseitige TLS-Verbindungen zwischen Amazon MQ und dem LDAP-Server. Amazon MQ erfordert die Verwendung von Amazon S3 oder die Speicherung des Zertifikats.
aws.arns.auth_ldap.ssl_options.keyfile Private Schlüsseldatei für gegenseitige TLS-Verbindungen zwischen Amazon MQ und dem LDAP-Server. Amazon MQ erfordert die Verwendung AWS Secrets Manager zum Speichern des privaten Schlüssels.
aws.arns.auth_ldap.dn_lookup_bind.password Passwort für die LDAP-DN-Suchverbindung. Amazon MQ erfordert die Verwendung AWS Secrets Manager , um das Passwort als Klartextwert zu speichern.
aws.arns.auth_ldap.other_bind.password Passwort für andere LDAP-Verbindungen. Amazon MQ erfordert die Verwendung AWS Secrets Manager , um das Passwort als Klartextwert zu speichern.

Beispiele für IAM-Richtlinien

Beispiele für IAM-Richtlinien, einschließlich Richtliniendokumente für die Übernahme von Rollen und Dokumente zu Rollenrichtlinien, finden Sie in der CDK-Beispielimplementierung.

Anweisungen Verwendung der LDAP-Authentifizierung und -Autorisierung zur Einrichtung AWS Secrets Manager und zu Amazon S3 S3-Ressourcen finden Sie unter.

Bestätigung des Zugriffs

Zur Fehlerbehebung in Szenarien, in denen ARN-Werte nicht abgerufen werden können, unterstützt das aws-Plugin einen RabbitMQ-Verwaltungs-API-Endpunkt, der aufgerufen werden kann, um zu überprüfen, ob Amazon MQ die Rolle erfolgreich übernehmen und lösen kann. AWS ARNs Dadurch entfällt die Notwendigkeit, die Broker-Konfiguration zu aktualisieren, den Broker mit der neuen Konfigurationsrevision zu aktualisieren und den Broker neu zu starten, um Konfigurationsänderungen zu testen.

Anmerkung

Für die Verwendung dieser API ist ein vorhandener RabbitMQ-Administratorbenutzer erforderlich. Amazon MQ empfiehlt, zusätzlich zu anderen Zugriffsmethoden Testbroker mit einem internen Benutzer zu erstellen. Weitere Informationen finden Sie unter Aktivieren von OAuth 2.0 und einfacher (interner) Authentifizierung. Dieser Benutzer kann dann für den Zugriff auf die Validierungs-API verwendet werden.

Anmerkung

Obwohl das aws-Plugin die Übergabe einer neuen Rolle als Eingabe an die Validierungs-API unterstützt, wird dieser Parameter von Amazon MQ nicht unterstützt. Die für die Validierung verwendete IAM-Rolle sollte dem Wert von aws.arns.assume_role_arn in der Broker-Konfiguration entsprechen.

Verwandte Quarantänestatus des Brokers

Informationen zu den Quarantänestatus von Brokern im Zusammenhang mit ARN-Supportproblemen finden Sie unter:

Beispielszenario

  • Der Broker b-f0fc695e-2f9c-486b-845a-988023a3e55b wurde so konfiguriert, dass er die IAM-Rolle für den Zugriff auf geheime Daten verwendet <role> AWS Secrets Manager <arn>

  • Wenn die Amazon MQ zur Verfügung gestellte Rolle keine Leseberechtigung für das AWS Secrets Manager Geheimnis hat, wird der folgende Fehler in den RabbitMQ-Protokollen angezeigt:

    [error] <0.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}}

    Darüber hinaus wechselt der Broker in den Quarantänestatus. INVALID_ASSUMEROLE Weitere Informationen finden Sie unter INVALID_ASSUMEROLE.

  • LDAP-Authentifizierungsversuche schlagen mit dem folgenden Fehler fehl:

    [error] <0.254.0> LDAP bind failed: invalid_credentials
  • Korrigieren Sie die IAM-Rolle mit den richtigen Berechtigungen

  • Rufen Sie den Validierungsendpunkt auf, um zu überprüfen, ob RabbitMQ jetzt auf das Geheimnis zugreifen kann:

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