Suporte de ARN na configuração do RabbitMQ - Amazon MQ

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Suporte de ARN na configuração do RabbitMQ

O Amazon MQ para RabbitMQ suporta AWS ARNs os valores de algumas definições de configuração do RabbitMQ. Isso é habilitado pelo plug-in da comunidade RabbitMQ rabbitmq-aws. Esse plug-in é desenvolvido e mantido pelo Amazon MQ e também pode ser usado em corretores RabbitMQ auto-hospedados e não gerenciados pelo Amazon MQ.

Considerações importantes
  • Os valores de ARN resolvidos recuperados pelo plug-in aws são passados diretamente para o processo RabbitMQ em tempo de execução. Eles não são armazenados em outro lugar no nó RabbitMQ.

  • O Amazon MQ para RabbitMQ exige uma função do IAM que possa ser assumida pelo Amazon MQ para acessar o configurado. ARNs Isso é configurado pela configuraçãoaws.arns.assume_role_arn.

  • Os usuários que UpdateBroker APIs ligam CreateBroker ou têm uma configuração de agente que inclui uma função do IAM devem ter a iam:PassRole permissão para essa função.

  • A função do IAM deve existir na mesma AWS conta do broker RabbitMQ. Tudo ARNs na configuração deve estar presente na mesma AWS região do broker RabbitMQ.

  • O Amazon MQ adiciona chaves condicionais globais do IAM aws:SourceAccount e aws:SourceArn ao assumir a função do IAM. Esses valores devem ser usados na política do IAM anexada à função de proteção delegada confusa.

Chaves compatíveis

Função obrigatória do IAM
aws.arns.assume_role_arn

ARN da função do IAM que o Amazon MQ assume para acessar outros recursos. AWS Obrigatório quando qualquer outra configuração de ARN é usada.

Chave de configuração Description
aws.arns.ssl_options.cacertfile Arquivo de autoridade de certificação para conexões de SSL/TLS clientes. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
Chave de configuração Description
aws.arns.management.ssl.cacertfile Arquivo de autoridade de certificação para SSL/TLS conexões de interface de gerenciamento. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
Chave de configuração Description
aws.arns.auth_oauth2.https.cacertfile Arquivo de autoridade de certificação para conexões HTTPS OAuth 2.0. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
Chave de configuração Description
aws.arns.auth_http.ssl_options.cacertfile Arquivo de autoridade de certificação para SSL/TLS conexões de autenticação HTTP. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
aws.arns.auth_http.ssl_options.certfile Arquivo de certificado para conexões TLS mútuas entre o Amazon MQ e o servidor de autenticação HTTP. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
aws.arns.auth_http.ssl_options.keyfile Arquivo de chave privada para conexões TLS mútuas entre o Amazon MQ e o servidor de autenticação HTTP. O Amazon MQ exige o uso AWS Secrets Manager para armazenar a chave privada.
Chave de configuração Description
aws.arns.auth_ldap.ssl_options.cacertfile Arquivo de autoridade de certificação para conexões LDAP. SSL/TLS O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
aws.arns.auth_ldap.ssl_options.certfile Arquivo de certificado para conexões TLS mútuas entre o Amazon MQ e o servidor LDAP. O Amazon MQ exige o uso do Amazon S3 ou o armazenamento do certificado.
aws.arns.auth_ldap.ssl_options.keyfile Arquivo de chave privada para conexões TLS mútuas entre o Amazon MQ e o servidor LDAP. O Amazon MQ exige o uso AWS Secrets Manager para armazenar a chave privada.
aws.arns.auth_ldap.dn_lookup_bind.password Senha para associação de pesquisa LDAP DN. O Amazon MQ exige o uso AWS Secrets Manager para armazenar a senha como um valor de texto simples.
aws.arns.auth_ldap.other_bind.password Senha para outro vínculo LDAP. O Amazon MQ exige o uso AWS Secrets Manager para armazenar a senha como um valor de texto simples.

Exemplos de políticas do IAM

Para exemplos de políticas do IAM, incluindo documentos de política de assumir funções e documentos de política de funções, consulte o exemplo de implementação do CDK.

Consulte Usando autenticação e autorização LDAP as etapas sobre como configurar AWS Secrets Manager os recursos do Amazon S3.

Validação de acesso

Para solucionar cenários em que os valores do ARN não podem ser buscados, o plug-in aws oferece suporte a um endpoint da API de gerenciamento do RabbitMQ que pode ser chamado para verificar se o Amazon MQ é capaz de assumir a função e resolver com êxito. AWS ARNs Isso evita a necessidade de atualizar a configuração do agente, atualizar o agente com a nova revisão de configuração e reinicializar o agente para testar as alterações na configuração.

nota

O uso dessa API requer um usuário administrador existente do RabbitMQ. O Amazon MQ recomenda a criação de agentes de teste com um usuário interno, além de outros métodos de acesso. Consulte habilitar a autenticação OAuth 2.0 e a autenticação simples (interna). Esse usuário pode então ser usado para acessar a API de validação.

nota

Embora o plug-in aws ofereça suporte à transmissão de uma nova função como entrada para a API de validação, esse parâmetro não é suportado pelo Amazon MQ. A função do IAM usada para validação deve corresponder ao valor aws.arns.assume_role_arn da configuração do agente.

Estados de quarentena de corretores relacionados

Para obter informações sobre os estados de quarentena do corretor relacionados a problemas de suporte do ARN, consulte:

Exemplo de cenário

  • b-f0fc695e-2f9c-486b-845a-988023a3e55bO corretor foi configurado para usar a função IAM <role> para acessar o AWS Secrets Manager segredo <arn>

  • Se a função fornecida ao Amazon MQ não tiver permissão de leitura no AWS Secrets Manager segredo, o seguinte erro será mostrado nos registros do RabbitMQ:

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

    Além disso, o corretor entrará no estado de INVALID_ASSUMEROLE quarentena. Para obter mais informações, consulte INVALID_ASSUMEROLE.

  • As tentativas de autenticação LDAP falharão com o seguinte erro:

    [error] <0.254.0> LDAP bind failed: invalid_credentials
  • Corrija a função do IAM com as permissões adequadas

  • Chame o endpoint de validação para verificar se o RabbitMQ agora consegue acessar o segredo:

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