Replies: 1 comment
-
@doxsch thanks for sharing your findings about the authentications and authorizations, they are correct.
ManagementRBACEnabled is enabled by default. Individual management operations in the console be configured granularly by using ArtemisRbacMBeanServerBuilder, see the test security with management role access
The status check from the operator can use mTLS and it is so by default in the restricted mode
The operator only connects to the broker/console/Jolokia endpoint.
I'm not sure about what this representation means. The jolokia endpoint authentication is the same for the console and the authorization is the same for JMX, see https://activemq.apache.org/components/artemis/documentation/latest/management.html#configuring-jmx
The broker-to-broker communication uses the special cluster credentials (cluster-user, cluster-password), see https://activemq.apache.org/components/artemis/documentation/latest/clusters.html#cluster-user-credentials |
Beta Was this translation helpful? Give feedback.
-
I am currently trying to figure out how all the authentications and authorizations work.
Here is what I have identified so far.
Client -> Broker (Acceptors):
PropertiesLoginModule
configs are located under/home/jboss/amq-broker/etc
. It can be customized using a secret ending with-jaas-config
. To use mTLS, we additionally configuredTextFileCertificateLoginModule
and required the client to present its certificate usingneedClientAuth: true
.securityRoles."<matcher>".<role>.<permission>=true
. See ActiveMQ Artemis Security Documentation.Console:
PropertiesLoginModule
with the role "admin" can access the console. By default, this is just the randomly generated default user. The role that has access to the console can be overridden using-Dhawtio.role=<role>
. However, if this is done, the status check from the operator no longer works (see below).If
useClientAuth: true
, a valid client certificate is also expected. Certain operations like sending messages seem to consider thesecurityRoles
permission. However, if a new address and queue are created andsecurityRoles
are more specific than the default#
matcher, the admin user does not seem to have send permission on it. I couldn't quite figure out how the RBAC system works here.Operator -> Jolokia (Status check):
The operator performs status checks against the cluster.
useClientAuth=true
is enabled for the console, the operator must also be provided with a valid certificate: Artemis Cloud Operator PKI.Broker -> Broker:
AMQ_CLUSTER_USER
andAMQ_CLUSTER_PASSWORD
in the environment variables.Open Questions:
ManagementRBACEnabled
? Can individual management operations in the console be configured granularly? If so, how can it be configured which role can use which operations?Broker -> embedded Server -> hawtio (/console) -> jolokia (/console/jolokia) -> JMX (internal port exposed by Jolokia as a web service)
Beta Was this translation helpful? Give feedback.
All reactions