View a markdown version of this page

RabbitMQ 組態中的 ARN 支援 - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

RabbitMQ 組態中的 ARN 支援

Amazon MQ for RabbitMQ 支援某些 RabbitMQ 組態設定值的 AWS ARNs。這是由 RabbitMQ 社群外掛程式 Detectormq-aws 啟用。此外掛程式由 Amazon MQ 開發和維護,也可用於非由 Amazon MQ 管理的自我託管 RabbitMQ 代理程式。 Amazon MQ

重要考量
  • aws 外掛程式擷取的已解析 ARN 值會在執行時間直接傳遞至 RabbitMQ 程序。它們不會存放在 RabbitMQ 節點上的其他位置。

  • Amazon MQ for RabbitMQ 需要 IAM 角色,Amazon MQ 可以擔任該角色來存取設定的 ARNs。這是透過設定 來設定aws.arns.assume_role_arn

  • 呼叫 CreateBroker 或 UpdateBroker APIs的使用者,如果代理程式組態包含 IAM 角色,則必須具有該角色的 iam:PassRole 許可。

  • IAM 角色必須存在於與 RabbitMQ 代理程式相同的 AWS 帳戶中。組態中的所有 ARNs 必須與 RabbitMQ 代理程式位於相同的 AWS 區域中。

  • Amazon MQ 會在擔任 IAM 角色aws:SourceArn時新增 IAM 全域條件式金鑰aws:SourceAccount和 。這些值必須用於連接到角色的 IAM 政策中,以進行混淆代理人保護

支援的金鑰

必要的 IAM 角色
aws.arns.assume_role_arn

Amazon MQ 擔任以存取其他 AWS 資源的 IAM 角色 ARN。使用任何其他 ARN 組態時為必要。

組態金鑰 說明
aws.arns.ssl_options.cacertfile SSL/TLS 用戶端連線的憑證授權機構檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
組態金鑰 說明
aws.arns.management.ssl.cacertfile 管理介面 SSL/TLS 連線的憑證授權機構檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
組態金鑰 說明
aws.arns.auth_oauth2.https.cacertfile OAuth 2.0 HTTPS 連線的憑證授權單位檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
組態金鑰 說明
aws.arns.auth_http.ssl_options.cacertfile HTTP 身分驗證 SSL/TLS 連線的憑證授權機構檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
aws.arns.auth_http.ssl_options.certfile Amazon MQ 與 HTTP 身分驗證伺服器之間交互 TLS 連線的憑證檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
aws.arns.auth_http.ssl_options.keyfile Amazon MQ 與 HTTP 身分驗證伺服器之間交互 TLS 連線的私有金鑰檔案。Amazon MQ 需要使用 AWS Secrets Manager 來存放私有金鑰。
組態金鑰 說明
aws.arns.auth_ldap.ssl_options.cacertfile LDAP SSL/TLS 連線的憑證授權機構檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
aws.arns.auth_ldap.ssl_options.certfile Amazon MQ 與 LDAP 伺服器之間交互 TLS 連線的憑證檔案。Amazon MQ 需要使用 Amazon S3 或 來存放憑證。
aws.arns.auth_ldap.ssl_options.keyfile Amazon MQ 與 LDAP 伺服器之間交互 TLS 連線的私有金鑰檔案。Amazon MQ 需要使用 AWS Secrets Manager 來存放私有金鑰。
aws.arns.auth_ldap.dn_lookup_bind.password LDAP DN 查詢繫結的密碼。Amazon MQ 需要使用 將密碼 AWS Secrets Manager 儲存為純文字值。
aws.arns.auth_ldap.other_bind.password LDAP 其他繫結的密碼。Amazon MQ 需要使用 將密碼 AWS Secrets Manager 儲存為純文字值。

IAM 政策範例

如需 IAM 政策範例,包括擔任角色政策文件和角色政策文件,請參閱 CDK 範例實作

如需如何設定 AWS Secrets Manager 和 Amazon S3 資源的步驟使用 LDAP 身分驗證和授權,請參閱 。

相關中介裝置隔離狀態

如需與 ARN 支援問題相關的中介裝置隔離狀態資訊,請參閱:

範例藍本

  • 代理程式b-f0fc695e-2f9c-486b-845a-988023a3e55b已設定為使用 IAM 角色<role>來存取 AWS Secrets Manager 秘密 <arn>

  • 如果提供給 Amazon MQ 的角色沒有 AWS Secrets Manager 秘密的讀取許可,RabbitMQ 日誌中會顯示下列錯誤:

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

    此外,代理程式將進入INVALID_ASSUMEROLE隔離狀態。如需詳細資訊,請參閱 INVALID_ASSUMEROLE

  • LDAP 身分驗證嘗試將會失敗,並顯示下列錯誤:

    [error] <0.254.0> LDAP bind failed: invalid_credentials
  • 使用適當的許可修正 IAM 角色