4.20. 为管理操作配置基于角色的访问控制


基于角色的访问控制(RBAC)用于限制对 MBeans 属性和方法的访问。Mbeans 是 AMQ Broker 公开管理 API 的方式,以支持管理操作。在以前的版本中,您可以通过在 ActiveMQArtemisSecurity 自定义资源(CR)中设置 RBAC 配置并重启代理以使更改生效来限制对 MBeans 的访问。从 7.12 开始,您可以限制对 ActiveMQArtemis CR 中的 MBeans 的访问,并且不需要代理重启才能使更改生效。

流程

  1. 为您的代理部署编辑 ActiveMQArtemis CR 实例。
  2. 添加以下环境变量,将代理配置为使用您在 ActiveMQArtemis CR 中指定的 RBAC 配置。

    spec:
      ..
      env:
      - name: JAVA_ARGS_APPEND
        value: "-Dhawtio.role=* -Djavax.management.builder.initial=org.apache.activemq.artemis.core.server.management.ArtemisRbacMBeanServerBuilder"
      ..
    Copy to Clipboard Toggle word wrap
  3. brokerProperties 属性中,为管理操作添加基于角色的访问控制配置。

    管理操作的匹配地址的格式是:

    mops.<资源类型 &gt;.<resource name>.<operation>

    例如,以下配置向 activemq.management 地址授予 manager 角色 视图编辑权限。操作位置中的星号 packagemanifests 授予对所有操作的访问权限。

    spec:
      ..
      brokerProperties:
      - securityRoles."mops.address.activemq.management.*".manager.view=true
      - securityRoles."mops.address.activemq.management.*".manager.edit=true
    Copy to Clipboard Toggle word wrap

    在以下示例中,mops 前缀后的数字符号(#)将 amq 角色视图授予 amq 角色 视图,并将权限 编辑 到所有 MBeans。

    spec:
      ..
      brokerProperties:
      - securityRoles."mops.#".amq.view=true
      - securityRoles."mops.#".amq.edit=true
      ..
    Copy to Clipboard Toggle word wrap
  4. 使用 resourceTemplates 属性定义运行脚本的 init 容器,以删除每个代理容器中的 /amq/init/config/amq-broker/etc/management.xml 文件中的默认 RBAC 配置,如下例所示。您必须删除默认的 RBAC 配置,以便代理使用您在 ActiveMQArtemis CR 中创建的新 RBAC 配置。

    spec:
      ..
      resourceTemplates:
      - selector:
          kind: "StatefulSet"
        patch:
          kind: "StatefulSet"
          spec:
          template:
           spec:
            initContainers:
            - name: "<BROKER_NAME>-container-init"
              args:
              -  '-c'
              -  '/opt/amq/bin/launch.sh && /opt/amq-broker/script/default.sh; echo "Empty management.xml";echo "<management-context xmlns=\"http://activemq.apache.org/schema\" />" > /amq/init/config/amq-broker/etc/management.xml'
    Copy to Clipboard Toggle word wrap

    将 <BROKER_NAME> 替换为 CR 实例中 metadata.name 属性的值。

  5. 保存 CR。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat