Thanks all. This sounds like a viable solution to our problem.
Just to be sure: If I want to set permissions per user I also have to
create a dedicated role per user because permissions can only be
granted to roles?

Thanks,

Thorsten

Am Donnerstag, dem 28.04.2022 um 09:00 -0500 schrieb Justin Bertram:
> > But can users be created (and deleted) on-demand?
> 
> I'm not exactly sure what you mean by "on-demand," but users can be
> created
> administratively on a running broker via management. This can be done
> via
> the "artemis user" command, the web console, Jolokia, etc. You'll
> need to
> use the PropertiesLoginModule [1] with the JAAS security manager [2]
> (i.e.
> the default configuration) or the "Basic" security manager [3].
> 
> You could also likely accomplish this via LDAP [4].
> 
> > And is there a practical limit?
> 
> There is no arbitrarily imposed limit so any limit will be based on
> the
> resources available to the broker. My recommendation would be to test
> and
> see.
> 
> > An alternative solution would be to use some kind of proxy between
> > the
> broker and the consumer which allows access to certain queues only.
> Does
> something like this exist?
> 
> I'm not aware of anything like this, and I would be surprised if it
> existed
> as it would add needless complexity on top of something that could
> already
> be accomplished via the broker directly or via LDAP.
> 
> 
> Justin
> 
> [1]
> https://activemq.apache.org/components/artemis/documentation/latest/security.html#propertiesloginmodule
> [2]
> https://activemq.apache.org/components/artemis/documentation/latest/security.html#jaas-security-manager
> [3]
> https://activemq.apache.org/components/artemis/documentation/latest/security.html#basic-security-manager
> [4]
> https://activemq.apache.org/components/artemis/documentation/latest/security.html#ldaploginmodule
> 
> On Thu, Apr 28, 2022 at 7:59 AM Thorsten Meinl
> <thorsten.me...@knime.com>
> wrote:
> 
> > We have a more complicated scenario where we use Artemis and are
> > currently struggling with some security-related problems. Let me
> > try to
> > sketch our setup:
> > 
> > - Several producers put work items into queues in Artemis. Every
> > producer uses a dedicated queue, e.g. "jobs.123" where 123 is the
> > unique producer name.
> > - We create consumers on-demand for every producer, i.e. for
> > producer
> > "123" there is a consumer "123" that is consuming from queu
> > "jobs.123".
> > - The consumers are started in containers and get the access
> > credentials for Artemis passed as environment variables. All
> > consumers
> > share the same credentials and therefore have access to all queues.
> > - Now comes the crucial part: the consumers essentially allow for
> > arbitrary code execution. This is not an issue per se because they
> > are
> > restricted to the container. But a carefully crafted work item
> > allows
> > you to read the container's environment variables, create a
> > consumer
> > and read *any* message including work items which are not supposed
> > to
> > be read by the current consumer. E.g. the rogue consumer "123" can
> > then
> > read messages addressed to consumer "456". This compromises
> > confidentiality.
> > 
> > Now we are looking for solutions to this problem. We have to ensure
> > that consumer XYZ can only read messages addressed to it (i.e.
> > "jobs.XYZ") and nothing else. I guess this would be possible by
> > creating dedicated Artemis users for each consumer and setting
> > permissions accordingly. But can users be created (and deleted) on-
> > demand? And is there a practical limit? We would need hundreds if
> > not
> > thousands of Artemis users.
> > 
> > An alternative solution would be to use some kind of proxy between
> > the
> > broker and the consumer which allows access to certain queues only.
> > Does something like this exist?
> > 
> > Are there any other solutions that may think of?
> > 
> > I know it's a very generic question but maybe some of you have
> > ideas
> > that they can share.
> > 
> > Thanks,
> > 
> > Thorsten
> > 
> > --
> > Dr.-Ing. Thorsten Meinl
> > KNIME AG
> > Hardturmstrasse 66
> > 8005 Zurich, Switzerland
> > 
> > 

-- 
Dr.-Ing. Thorsten Meinl
KNIME AG
Hardturmstrasse 66
8005 Zurich, Switzerland

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to