首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AmazonMQ ActiveMQ问题权限太严格

AmazonMQ ActiveMQ问题权限太严格
EN

Stack Overflow用户
提问于 2022-11-25 22:27:04
回答 1查看 17关注 0票数 0

我有一个AmazonMQ设置(ActiveMQ 5.17.1),用户在我的terraform中定义如下:

代码语言:javascript
复制
user {
    username = "myUser"
    password = "somethingSecret"
    console_access = false
}

以及没有任何ActiveMQ的authorizationMap配置:我的客户端能够毫无问题地进行连接。

现在,我想为其他一些用户设置authorizationMap,并在所有队列和主题上授予用户myUser管理权限。

这是我的authorizationMap的样子

代码语言:javascript
复制
<authorizationPlugin>
    <map>
        <authorizationMap>
            <authorizationEntries>
                <authorizationEntry queue="SYS1.IN.>" read="system1"/>
                <authorizationEntry queue="SYS2.IN>" read="system2"/>
                <authorizationEntry queue="SYS2.OUT>" write="system2"/>
                <!-- few other queues / permissions -->
                <!-- taken from https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/child-element-details.html#authorizationEntry -->
                <authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" queue=">"/>
                <authorizationEntry admin="admins,activemq-webconsole" read="admins,users,activemq-webconsole" write="admins,activemq-webconsole" topic=">"/>
            </authorizationEntries>
        </authorizationMap>
    </map>
</authorizationPlugin>

我还在terraform中将myUSer添加到管理组中:

代码语言:javascript
复制
user {
    username = "myUser"
    password = "somethingSecret"
    groups = ["admins"]
}

但是,在这个设置中,我在AWS日志(以及客户端)中看到一个错误,上面写着:

代码语言:javascript
复制
... User myUser doesn't have permission to write in topic `ActiveMQ.Advisory.Connection` ...

我尝试在authorizationMap中添加以下条目(保留上面现有的条目):

代码语言:javascript
复制
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins,activemq-webconsole" write="admins,activemq-webconsole" admin="admins,activemq-webconsole"/>

但是错误仍然是一样的。

注意,当我试图从控制台(与另一个用户一起发送console_access = true)在队列中发送消息时,会出现一个错误,但我可以创建新的队列。

请注意,我在每次配置更改之间强制重新启动代理,但上述错误仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-01 09:17:50

我发现我的terraform文件有两个问题:

首先,我必须添加身份验证:

代码语言:javascript
复制
authentication_strategy = "simple"

但仅此一项仍未奏效。

从控制台中,我看到我的代理war没有引用最新的配置。

其次,我必须在配置中显式地添加revision行,如下所示:

代码语言:javascript
复制
configuration {
    id = aws_mq_configuration.conf-amq-area51-dev.id
    revision = aws_mq_configuration.conf-amq-area51-dev.latest_revision
}

为了明确引用最新版本,正如我所做的(错误)假设,不引用修订将隐式地采用最新版本。

在这两个更改之后,我能够正确地使用我的用户,控制台管理也在正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74578303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档