无法登录 CDK 创建的 Amazon MQ (RabbitMQ) Web 控制台

问题描述

在创建可公开访问的 Amazon MQ 实例(在后台使用 RabbitMQ)时,我可以轻松登录到 Web 控制台。

但是,在通过 CDK 使用相同设置和凭据创建 MQ 实例时,我无法登录 Web 控制台。 RabbitMQ 服务的唯一响应是

{
    "error": "not_authorised","reason": "Login Failed"
}

Cloudwatch 日志表明用户已创建,但也警告用户尝试使用无效凭据登录

2021-07-02 14:20:54.867 [info] <0.1474.0> Created user 'admin'
2021-07-02 14:20:55.587 [info] <0.1481.0> Successfully set user tags for user 'admin' to [administrator]
2021-07-02 14:20:56.295 [info] <0.1488.0> Successfully set permissions for 'admin' in virtual host '/' to '.*','.*','.*'
2021-07-02 14:26:14.529 [warning] <0.1639.0> HTTP access denied: user 'admin' - invalid credentials

broker 的结构如下所示:

private createMessagebroker(vpc: Vpc,stage: Stage) {
        const password: Secret = new Secret(this,'brokerAdminPassword',{
            generateSecretString: { excludePunctuation: true },description: 'Password for the Message broker User',});
        const user: Cfnbroker.UserProperty = {
            consoleAccess: true,username: 'admin',password: password.toString(),};

        new Cfnbroker(this,'TaskMessagebroker',{
            autoMinorVersionUpgrade: true,brokerName: 'Messagebroker',deploymentMode: 'SINGLE_INSTANCE',engineType: 'RABBITMQ',engineVersion: '3.8.11',hostInstanceType: 'mq.t3.micro',publiclyAccessible: true,users: [user],logs: { general: true },});
    }

解决方法

在实例化您的 UserProperty

时尝试改用以下内容
const user: CfnBroker.UserProperty = {
  consoleAccess: true,username: 'admin',password: password.secretValue.toString(),}