Celery/RabbitMQ权限管理交换机/队列配置

2024-05-17 17:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有队列声明的celeri应用程序。在

app.conf.CELERY_QUEUES = (
    Queue('default', routing_key='default'),
    Queue('classifier', routing_key='classifier'),
    Queue('clients', routing_key='clients'),
    Queue('bookings', routing_key='bookings'),
    Queue('ingestor', routing_key='ingestor'),
    Queue('typeahead', routing_key='typeahead')
)

我的DevOps团队最近设置了一个RabbitMQ用户,具有这样的权限。enter image description here

他们提到,他们不打算给用户任何配置特权,因为如果黑客获得了这些凭证,他们可以删除队列等

当我启动芹菜工人时,它没有授权

amqp.exceptions.AccessRefused: Exchange.declare: (403) ACCESS_REFUSED - access t o exchange 'celeryev' in vhost '/' refused for user 'test'

在测试时,我给自己显式地配置了celery*。在

它能够克服这个问题,但是后来它开始抱怨我的default/classifier队列同样的问题,它已经存在,不需要配置,所以我有几个问题。在

1)celery是否需要配置权限才能正常工作?在

2)如果没有,它为什么要尝试配置已经存在的队列?如图所示。 enter image description here

3)只需使用“.*”将其打开是否存在实际的安全问题

4)有没有办法告诉芹菜只读和写?不用担心配置什么?在

如果有什么想法请告诉我。我一直在用这个问题作为指导,但还没有弄清楚。在

https://github.com/celery/celery/issues/3895

我用的是芹菜3.1.24


Tags: key用户default声明权限队列queuerouting