Supporto ARN nella configurazione di RabbitMQ - Amazon MQ

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

Supporto ARN nella configurazione di RabbitMQ

Amazon MQ for RabbitMQ supporta i AWS ARNs valori di alcune impostazioni di configurazione di RabbitMQ. Ciò è reso possibile dal plugin della community RabbitMQ rabbitmq-aws. Questo plug-in è sviluppato e gestito da Amazon MQ e può essere utilizzato anche in broker RabbitMQ con hosting autonomo non gestiti da Amazon MQ.

Considerazioni importanti
  • I valori ARN risolti recuperati dal plugin aws vengono passati direttamente al processo RabbitMQ in fase di esecuzione. Non sono memorizzati altrove nel nodo RabbitMQ.

  • Amazon MQ for RabbitMQ richiede un ruolo IAM che può essere assunto da Amazon MQ per accedere alla configurazione. ARNs Questo viene configurato tramite impostazione. aws.arns.assume_role_arn

  • Gli utenti che chiamano CreateBroker o UpdateBroker APIs con una configurazione di broker che include un ruolo IAM devono disporre dell'iam:PassRoleautorizzazione per quel ruolo.

  • Il ruolo IAM deve esistere nello stesso AWS account del broker RabbitMQ. Tutto ARNs nella configurazione deve essere presente nella stessa AWS regione del broker RabbitMQ.

  • Amazon MQ aggiunge chiavi condizionali globali IAM aws:SourceAccount e aws:SourceArn quando assume il ruolo IAM. Questi valori devono essere utilizzati nella policy IAM associata al ruolo in caso di confusa protezione sostitutiva.

Chiavi supportate

Ruolo IAM richiesto
aws.arns.assume_role_arn

ARN del ruolo IAM che Amazon MQ assume per accedere ad altre risorse. AWS Richiesto quando viene utilizzata qualsiasi altra configurazione ARN.

Chiave di configurazione Description
aws.arns.ssl_options.cacertfile File di autorità di certificazione per SSL/TLS le connessioni client. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
Chiave di configurazione Description
aws.arns.management.ssl.cacertfile File di autorità di certificazione per le connessioni all'interfaccia SSL/TLS di gestione. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
Chiave di configurazione Description
aws.arns.auth_oauth2.https.cacertfile File di autorità di certificazione per connessioni HTTPS OAuth 2.0. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
Chiave di configurazione Description
aws.arns.auth_http.ssl_options.cacertfile File di autorità di certificazione per le connessioni di autenticazione SSL/TLS HTTP. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
aws.arns.auth_http.ssl_options.certfile File di certificato per connessioni TLS reciproche tra Amazon MQ e il server di autenticazione HTTP. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
aws.arns.auth_http.ssl_options.keyfile File di chiave privata per connessioni TLS reciproche tra Amazon MQ e il server di autenticazione HTTP. Amazon MQ richiede l'utilizzo Gestione dei segreti AWS per archiviare la chiave privata.
Chiave di configurazione Description
aws.arns.auth_ldap.ssl_options.cacertfile File di autorità di certificazione per le connessioni LDAP. SSL/TLS Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
aws.arns.auth_ldap.ssl_options.certfile File di certificato per connessioni TLS reciproche tra Amazon MQ e il server LDAP. Amazon MQ richiede l'utilizzo di Amazon S3 o l'archiviazione del certificato.
aws.arns.auth_ldap.ssl_options.keyfile File di chiave privata per connessioni TLS reciproche tra Amazon MQ e il server LDAP. Amazon MQ richiede l'utilizzo Gestione dei segreti AWS per archiviare la chiave privata.
aws.arns.auth_ldap.dn_lookup_bind.password Password per l'associazione di ricerca DN LDAP. Amazon MQ richiede l'utilizzo Gestione dei segreti AWS di memorizzare la password come valore di testo non crittografato.
aws.arns.auth_ldap.other_bind.password Password per LDAP (altro collegamento). Amazon MQ richiede l'utilizzo Gestione dei segreti AWS di memorizzare la password come valore di testo non crittografato.

Esempi di policy IAM

Per esempi di policy IAM, tra cui i documenti relativi alle policy relative all'assunzione di ruoli e i documenti relativi alle policy relative ai ruoli, consulta l'esempio di implementazione CDK.

Consulta Utilizzo dell'autenticazione e dell'autorizzazione LDAP la procedura per la configurazione Gestione dei segreti AWS e le risorse di Amazon S3.

Convalida dell'accesso

Per risolvere gli scenari in cui i valori ARN non possono essere recuperati, il plugin aws supporta un endpoint dell'API di gestione RabbitMQ che può essere chiamato per verificare se Amazon MQ è in grado di assumere correttamente il ruolo e risolverlo. AWS ARNs In questo modo si evita la necessità di aggiornare la configurazione del broker, aggiornare il broker con la nuova revisione della configurazione e riavviare il broker per testare le modifiche alla configurazione.

Nota

L'uso di questa API richiede un utente amministratore RabbitMQ esistente. Amazon MQ consiglia di creare broker di test con un utente interno oltre ad altri metodi di accesso. Scopri come abilitare sia l'autenticazione OAuth 2.0 che quella semplice (interna). Questo utente può quindi essere utilizzato per accedere all'API di convalida.

Nota

Sebbene il plugin aws supporti il passaggio di un nuovo ruolo come input all'API di convalida, questo parametro non è supportato da Amazon MQ. Il ruolo IAM utilizzato per la convalida deve corrispondere al valore della configurazione del aws.arns.assume_role_arn broker.

Stati di quarantena dei broker correlati

Per informazioni sugli stati di quarantena dei broker relativi ai problemi di supporto ARN, consulta:

Scenario di esempio

  • Il broker b-f0fc695e-2f9c-486b-845a-988023a3e55b è stato configurato per utilizzare il ruolo IAM per accedere al segreto <role> Gestione dei segreti AWS <arn>

  • Se il ruolo fornito ad Amazon MQ non dispone dell'autorizzazione di lettura sul Gestione dei segreti AWS segreto, nei log di RabbitMQ verrà visualizzato il seguente errore:

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

    Inoltre, il broker entrerà nello stato di quarantena. INVALID_ASSUMEROLE Per ulteriori informazioni, vedere INVALID_ASSUMEROLE.

  • I tentativi di autenticazione LDAP falliranno con il seguente errore:

    [error] <0.254.0> LDAP bind failed: invalid_credentials
  • Correggi il ruolo IAM con le autorizzazioni appropriate

  • Chiama l'endpoint di convalida per verificare se RabbitMQ è ora in grado di accedere al segreto:

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