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

Unable to log in to CDK created Amazon MQ (RabbitMQ) web console

在创建一个可公开访问的 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(),
}