限制特定于 MFT的资源的组权限

为了管理 Managed File Transfer 访问控制 (FTEUSER 和 FTEAGENT) ,请配置两个安全组,而不是向个别用户授予所有可能涉及的各种对象的权限。 IBM® MQ 管理员负责创建和填充这些组。 管理员可选择扩展或修改此处所述的建议配置。

连接至队列管理器的权限

由操作用户,管理用户和 IBM MQ Explorer 运行的命令需要能够连接到命令队列管理器和协调队列管理器。 用于创建、更改或删除代理而运行的代理进程和命令需要能够连接至代理队列管理器。
  • 授予 FTEUSER 组针对命令队列管理器和协调队列管理器的连接权限。 例如:
    [AIX、Linux 和 Windows]用于 AIX®, Linux®, and Windows 系统:
    setmqaut -m command_queue_manager -t qmgr -g FTEUSER +connect
    setmqaut -m coordination_queue_manager -t qmgr -g FTEUSER +connect
    [IBM i]IBM i
    GRTMQMAUT OBJ('command_queue_manager') OBJTYPE(*MQM) USER(FTEUSER) AUT(*CONNECT)
    GRTMQMAUT OBJ('coordination_queue_manager') OBJTYPE(*MQM) USER(FTEUSER) AUT(*CONNECT)
    [z/OS]z/OS®
    RDEFINE MQCONN command_queue_manager.BATCH UACC(NONE)
    PERMIT command_queue_manager.BATCH CLASS(MQCONN) ID(FTEUSER) ACCESS(READ)
    RDEFINE MQCONN coordination_queue_manager.BATCH UACC(NONE)
    PERMIT coordination_queue_manager.BATCH CLASS(MQCONN) ID(FTEUSER) ACCESS(READ)
  • 授予 FTEAGENT 组对于代理队列管理器的 connect 和 inquire 权限。 例如:
    [AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
    setmqaut -m agent_queue_manager -t qmgr -g FTEAGENT +connect +inq +setid
    [IBM i]IBM i
    GRTMQMAUT OBJ('agent_queue_manager') OBJTYPE(*MQM) USER(FTEAGENT) AUT(*CONNECT)
    [z/OS]z/OS
    RDEFINE MQCONN agent_queue_manager.BATCH UACC(NONE)
    PERMIT agent_queue_manager.BATCH CLASS(MQCONN) ID(FTEAGENT) ACCESS(READ)

有关哪个命令直接连接到哪个队列管理器的信息,请参阅 哪个 MFT 命令连接到哪个队列管理器

在属于代理的 COMMAND 队列上放置消息的权限

代理命令队列必须可供有权请求代理执行某一操作的任何用户使用。 要满足此需求,
  • 请仅授予 FTEUSER 组对 SYSTEM.FTE.COMMAND.agent_name 队列的 put 访问权。 例如:
    [AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
    setmqaut -m QM1 -n SYSTEM.FTE.COMMAND.agent_name -t queue -g FTEUSER +put
    [IBM i]IBM i
    GRTMQMAUT OBJ('SYSTEM.FTE.COMMAND.agent_name') OBJTYPE(*Q) USER(FTEUSER) AUT(*PUT) MQMNAME('QM1')
    [z/OS]z/OS
    RDEFINE MQQUEUE QM1.SYSTEM.FTE.COMMAND.agent_name UACC(NONE)
    PERMIT QM1.SYSTEM.FTE.COMMAND.agent_name CLASS(MQQUEUE) ID(FTEUSER) ACCESS(UPDATE)
  • 请授予 FTEAGENT 组对 SYSTEM.FTE.COMMAND.agent_name 队列的 put、get 和 setid 访问权。 例如:
    [AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
    setmqaut -m QM1 -n SYSTEM.FTE.COMMAND.agent_name -t queue -g FTEAGENT +browse +put +get +setid
    [IBM i]IBM i
    GRTMQMAUT OBJ('SYSTEM.FTE.COMMAND.agent_name') OBJTYPE(*Q) USER(FTEAGENT) AUT(*PUT) MQMNAME('QM1')
    GRTMQMAUT OBJ('SYSTEM.FTE.COMMAND.agent_name') OBJTYPE(*Q) USER(FTEAGENT) AUT(*GET) MQMNAME('QM1')
    GRTMQMAUT OBJ('SYSTEM.FTE.COMMAND.agent_name') OBJTYPE(*Q) USER(FTEAGENT) AUT(*SETID) MQMNAME('QM1')
    [z/OS]z/OS
    RDEFINE MQQUEUE QM1.SYSTEM.FTE.COMMAND.agent_name UACC(NONE)
    PERMIT QM1.SYSTEM.FTE.COMMAND.agent_name CLASS(MQQUEUE) ID(FTEAGENT) ACCESS(UPDATE)
    RDEFINE MQADMIN QM1.CONTEXT.SYSTEM.FTE.COMMAND.agent_name UACC(NONE)
    PERMIT QM1.CONTEXT.SYSTEM.FTE.COMMAND.agent_name CLASS(MQADMIN) ID(FTEAGENT) ACCESS(UPDATE)
    

代理需要访问权以将消息放入其他代理的命令队列中。 如果存在连接到远程队列管理器的代理,那么可能需要授予额外的权限以允许通道将消息放入此队列中。

在属于代理的 DATA、STATE、EVENT 和 REPLY 队列上放置消息的权限

只有 Managed File Transfer 代理需要能够使用这些系统队列,因此授予组 FTEAGENT put , get 和 inquire 访问权。 这些系统队列的名称如下所示:
  • DATA- SYSTEM.FTE.DATA.agent_name
  • 状态- SYSTEM.FTE.STATE.代理名称
  • EVENT- SYSTEM.FTE.EVENT。代理名称
  • REPLY- SYSTEM.FTE.REPLY。代理名称
例如,对 SYSTEM.FTE.DATA.agent_name 队列使用如下命令:
[AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
setmqaut -m QM1 -n SYSTEM.FTE.DATA.agent_name -t queue -g FTEAGENT +put +get +inq
[IBM i]IBM i
GRTMQMAUT OBJ('SYSTEM.FTE.DATA.agent_name') OBJTYPE(*Q) USER(FTEAGENT) AUT(*PUT) MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.FTE.DATA.agent_name') OBJTYPE(*Q) USER(FTEAGENT) AUT(*GET) MQMNAME('QM1')
[z/OS]z/OS
RDEFINE MQQUEUE QM1.SYSTEM.FTE.DATA.agent_name UACC(NONE)
PERMIT QM1.SYSTEM.FTE.DATA.agent_name CLASS(MQQUEUE) ID(FTEAGENT) ACCESS(UPDATE)

代理需要访问权以将消息放入其他代理的数据和回复队列中。 如果存在连接到远程队列管理器的代理,那么可能需要授予额外的权限以允许通道将消息放入这些队列中。

代理过程运行时使用的权限

代理过程运行时使用的权限会影响代理可在文件系统上读取和写入的文件,以及代理可访问的队列和主题。 如何配置权限取决于系统。 将代理过程运行时使用的用户标识添加到 FTEAGENT 组。 有关将用户标识添加到组的更多信息,请参阅 设置安全性 并浏览到操作系统的信息。

用于运行命令和 IBM MQ Explorer 的权限

管理命令 (例如 fteStartAgent 命令) 和 IBM MQ ExplorerManaged File Transfer 插件需要能够将消息放入 SYSTEM.FTE.COMMAND.agent_name 队列并从该队列检索已发布的信息。 将有权运行命令或 IBM MQ Explorer 的用户标识添加到 FTEUSER 组。 发起方用户标识记录在传输日志中。 有关将用户标识添加到组的更多信息,请参阅 设置安全性 并浏览到操作系统的信息。

在 SYSTEM.FTE 队列和 SYSTEM.FTE 主题上放置消息的权限

仅代理进程才需要在 SYSTEM.FTE 队列和 SYSTEM.FTE 主题上放置消息这一功能。 授予 FTEAGENT 组对于 SYSTEM.FTE 队列的 put、get 和 inquire 权限,并授予 FTEAGENT 组对 SYSTEM.FTE 主题的 publish 和 subscribe 权限。 例如:
[AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
setmqaut -m QM1 -n SYSTEM.FTE -t queue -g FTEAGENT +put +inq
setmqaut -m QM1 -n SYSTEM.FTE -t topic -g FTEAGENT +pub +sub +resume
[IBM i]IBM i
GRTMQMAUT OBJ('SYSTEM.FTE') OBJTYPE(*Q) USER(FTEAGENT) AUT(*PUT) MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.FTE') OBJTYPE(*TOPIC) USER(FTEAGENT) AUT(*PUB) MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.FTE') OBJTYPE(*TOPIC) USER(FTEAGENT) AUT(*SUB) MQMNAME('QM1')
[z/OS]z/OS
RDEFINE MQQUEUE QM1.SYSTEM.FTE UACC(NONE)
PERMIT QM1.SYSTEM.FTE CLASS(MQQUEUE) ID(FTEAGENT) ACCESS(UPDATE)
RDEFINE MXTOPIC QM1.PUBLISH.SYSTEM.FTE UACC(NONE)
PERMIT QM1.PUBLISH.SYSTEM.FTE CLASS(MXTOPIC) ID(FTEAGENT) ACCESS(UPDATE)

如果存在连接到远程队列管理器的代理,那么可能需要授予额外的权限以允许通道将消息放入 SYSTEM.FTE 队列中。

要将消息发布到 SYSTEM.FTE 主题,SYSTEM.FTE 主题的权限记录必须允许按照消息的消息描述符结构 (MQMD) 中包含的用户标识进行发布。 这在发布 MFT 代理日志和状态信息的权限中有所描述。

[z/OS]要允许用户在 z/OS 上发布 SYSTEM.FTE 主题,必须授予通道发起者用户 ID 发布 SYSTEM.FTE 主题的权限。 如果 RESLEVEL 安全概要文件导致要检查两个用户标识的通道启动程序连接,那么您还需要授予针对包含在消息的消息描述符结构 (MQMD) 中的用户标识的访问权限。 有关更多信息,请参阅 RESLEVEL 安全概要文件

在 SYSTEM.FTE 主题上接收发布的权限

传输日志消息、进度消息和状态消息旨在供常规使用,因此请为 FTEUSER 组授予预订 SYSTEM.FTE 主题的权限。 例如:
[AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
setmqaut -m QM1 -n SYSTEM.FTE -t topic -g FTEUSER +sub
[IBM i]IBM i
GRTMQMAUT OBJ('SYSTEM.FTE') OBJTYPE(*TOPIC) USER(FTEUSER) AUT(*SUB) MQMNAME('QM1')
[z/OS]z/OS
RDEFINE MXTOPIC QM1.SUBSCRIBE.SYSTEM.FTE UACC(NONE)
PERMIT QM1.SUBSCRIBE.SYSTEM.FTE CLASS(MXTOPIC) ID(FTEUSER) ACCESS(ALTER)             

使用传输队列连接至远程队列管理器的权限

在多个队列管理器的拓扑中,代理请求传输队列上的 put 权限(用于连接至远程队列管理器)。

为文件传输创建临时回复队列的权限

文件传输请求将等待传输完成,并且依赖于正在创建和填充的临时回复队列。 授予 FTEUSER 组对临时模型队列定义的 DISPLAY、PUT、GET 和 BROWSE 权限。 例如:
[AIX、Linux 和 Windows]用于 AIX, Linux, and Windows 系统:
setmqaut -m QM1 -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g FTEUSER +dsp +put +get +browse
[IBM i]IBM i
GRTMQMAUT OBJ('SYSTEM.DEFAULT.MODEL.QUEUE') OBJTYPE(*Q) USER(FTEUSER) AUT(*ADMDSP) MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.DEFAULT.MODEL.QUEUE') OBJTYPE(*Q) USER(FTEUSER) AUT(*PUT)    MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.DEFAULT.MODEL.QUEUE') OBJTYPE(*Q) USER(FTEUSER) AUT(*GET)    MQMNAME('QM1')
GRTMQMAUT OBJ('SYSTEM.DEFAULT.MODEL.QUEUE') OBJTYPE(*Q) USER(FTEUSER) AUT(*BROWSE) MQMNAME('QM1')
[z/OS]z/OS
RDEFINE MQQUEUE QM1.SYSTEM.DEFAULT.MODEL.QUEUE UACC(NONE)
PERMIT QM1.SYSTEM.DEFAULT.MODEL.QUEUE CLASS(MQQUEUE) ID(FTEUSER) ACCESS(UPDATE)
缺省情况下,该队列是 SYSTEM.DEFAULT.MODEL.QUEUE,但是您可以通过在 command.properties 文件中设置“modelQueueName”和“dynamicQueuePrefix”属性的值来配置该名称。
[z/OS]z/OS 上,还必须授予 FTEUSER 访问临时队列的权限。 例如:
RDEFINE MQQUEUE QM1.WMQFTE.** UACC(NONE)
PERMIT QM1.WMQFTE.** CLASS(MQQUEUE) ID(FTEUSER) ACCESS(UPDATE)
缺省情况下, z/OS 上每个临时队列的名称都以 WMQFTE 开头。
下表总结了所描述的安全方案中 FTEUSER 和 FTEAGENT 的访问控制配置:
表 1. FTEUSER 和 FTEAGENT 的访问控制配置摘要
Object 对象类型 FTEUSER FTEAGENT
代理队列管理器 队列管理器   CONNECT、INQ 和 SETID。 还需要 ALTUSER 来启用对 MFT 代理操作的用户权限限制
协调队列管理器 队列管理器    
命令队列管理器 队列管理器 CONNECT CONNECT
SYSTEM.FTE 本地队列   GET 和 PUT
SYSTEM.FTE.COMMAND。代理名称 本地队列 PUT BROWSE、GET、PUT 和 SETID
SYSTEM.FTE.DATA.agent_name 本地队列   GET 和 PUT
SYSTEM.FTE.EVENT。代理名称 本地队列   BROWSE、GET 和 PUT
SYSTEM.FTE.REPLY。代理名称 本地队列   GET 和 PUT
SYSTEM.FTE.STATE.代理名称 本地队列   BROWSE、GET、INQ 和 PUT
SYSTEM.FTE 本地主题 SUBSCRIBE PUBLISH 和 SUBSCRIBE
SYSTEM.DEFAULT.MODEL.QUEUE

(或 Managed File Transfer 中定义的用于创建临时应答队列的模型队列。)

模型队列 BROWSE、DISPLAY、GET 和 PUT BROWSE、DISPLAY、GET 和 PUT
与远程队列管理器通信的传输队列 本地队列   PUT

通过 IBM MQ Explorer 管理传输的权限

除了向此页面上已提及的情境中的用户授予 MFT 权限外,还需要向通过 IBM MQ Explorer管理和执行所有 MFT 操作的 MFT 代理程序用户授予进一步的权限。 要发出诸如 "创建" , "取消" , "调度文件传输" , "创建" , "删除资源监视器" 和 "创建传输模板" 之类的命令, IBM MQ Explorer 用户必须具有如下权限:
  • 协调队列管理器:连接、查询和显示
  • 命令队列管理器:连接、查询和显示
  • SYSTEM.FTE 主题:发布和预订
  • SYSTEM.MQEXPLORER.REPLY.MODEL: 显示,查询,获取,浏览,放置
  • SYSTEM.ADMIN.COMMAND.QUEUE:查询、放置和显示
  • SYSTEM.DEFAULT.MODEL.QUEUE:获取、放置、查询、显示和浏览
另请参阅 哪个 MFT 命令连接到哪个队列管理器