Re: External access to the AMQP broker

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 27 Feb 2019 at 10:57, Aurelien Bompard
<abompard@xxxxxxxxxxxxxxxxx> wrote:
>
> Hey y'all,
>
> Fedora Messaging, the replacement for fedmsg, is using AMQP and thus a
> message broker. The current clusters we have deployed in staging and
> prod are only accessible from inside our infrastructure.
> There are two needs for an externally accessible broker:
> - the CentOS folks, who are outside of our infrastructure, would like
> to send messages
> - people from the community would like to subscribe to messages and do
> things based on them
>
> We have several options to make that happen.
>
> 1. Use our existing cluster and expose it to the world
> The advantage is we don't maintain another cluster, but the downside
> is in the case of a DoS attack we're directly affected. With RabbitMQ
> 3.7 there are some limits[0] you can set on vhosts (max connections
> and max queues), but we're not yet on 3.7.
> [0] https://www.rabbitmq.com/vhosts.html#limits

What would it take to get 3.7 ? Could we react (shuting down the
queues ? ) to DoS early with monitoring ? What would it take for
someone to DoS our cluster, basically how easy would it be ?

>
> 2. Use a separate cluster and copy messages over
> We could deploy a separate cluster that would get a copy of all
> messages, and would be more limited in resources. It truly isolates
> infrastructure, so it's better protected against DoS, but it's more
> work for sysadmins.
>
> In both cases, there are several paths we can take as regards to authentication.
>
> A: make a single readonly account for everybody in the community to
> use, and a few read-write accounts (with X509 certs) for people who
> need to publish, ie CentOS CI. If we choose a separate broker we can
> copy those messages back to the main cluster.
> The issue here is that everybody in the community will be using the
> same account, so it's harder to shut down bad actors. It would also be
> theoretically possible for someone to consume from somebody else's
> queue (unless people make sure they use UUIDs in queues, I think we
> can enforce that but it way have side effects).
> However, it enables the same kind of usage that fedmsg provided before.
>
> B: require authentication with username & password but make it easy to
> get accounts. People could require accounts via tickets for example.
> It will make it much harder to abuse the service, and we could easily
> shut down bad actors. However it's an obviously heavier load on the
> people who will handle the tickets and create the accounts.
>
> My personal preference would be option 2A, so an external broker with
> an anonymous read-only account, but all combinations of options
> inflict different loads on the sysadmin (on deployment and in the
> longer term), so I think it's really up to them.
>
> What do you guys think?

I am generally not a fan of creating more work for hypothetical DoS, I
my opinion we should try to mitigate as much as possible to effect of
a possible DoS .

Just my 0.02 $ since I have very little knowledge about RabbitMQ ;-)

>
> Thanks
> Aurélien
> _______________________________________________
> infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux