Mark,

On 6/13/22 13:19, Mark Thomas wrote:
On 13/06/2022 17:32, Christopher Schultz wrote:
All,

I've been thinking about the possibility of making a read-only JMX role available for the existing manager-jmx capability.

The idea would be that this role would only be able to make "get" requests (that is, a JMX-get operation, not HTTP-GET). No "set" or "invoke" operations would be allowed.

The manager-jmx role has quite a bit of power, and is typically used only for monitoring where being able to modify the server is not necessary. If manager-jmx is being used "only" for monitoring, then opening-up the system for potential reconfiguration by the monitoring user is a potential attack vector.

I don't think the level-of-effort would be significant: simply require "manager-jmx" for set/invoke operations and require either manager-jmx or manager-jmx-read-only (or something similar) for get operations.

Does anyone think this is a good idea?

I for one use jmxproxy at $work for both monitoring /and/ administrative tasks such as restarting applications, listing users, and initiating garbage collection (in very rare cases). For these full-write purposes, I could continue to use the (full) jmxproxy role, but for the monitoring-only ones, it would be nice to lock things down to the absolute minimum.

Given the widespread use of JMX for monitoring combined with the very minimal security model provided with JMX, I think there is merit in trying to improve the situation.

My concern with a simple read-only approach is that there are lots of attributes exposed via JMX that are considered security sensitive (AJP secrets, TLS key file passwords etc). With the current model we can't easily limit access to specific beans and attributes.

My assumption is that most monitoring tools only need a few attributes. Is there something we can do with the URI to move the bean name, attribute name, etc into the URI so we can use security constraints to limit access?

So like a more REST-style interface where the ACL ends up being just "simple" role-based access using the <security-constraint> framework already supported by Tomcat?

I agree I'd really like to avoid creating a new type of authorization system, so this seems like a good path to go down.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to