0

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

1 回答 1

1

在实例化您的时尝试使用以下内容UserProperty

const user: CfnBroker.UserProperty = {
  consoleAccess: true,
  username: 'admin',
  password: password.secretValue.toString(),
}
于 2021-07-03T16:37:16.647 回答