チャネルの新規 CHLAUTH 規則の作成

チャネルの一般的なシナリオのいくつかと、そうしたシナリオを実現するための CHLAUTH 規則の例を示します。独自の CHLAUTH 規則を作成する時に役立ちます。

特定の IP アドレス範囲からの特定のチャネルへのアクセスのみを許可する

このシナリオでは、以下のようにすることが必要です。
  • あらゆる場所からのチャネルへのアクセスを禁止する
  • 特定の IP アドレスまたはアドレス範囲からのアクセスを許可する

runmqsc:
SET CHLAUTH('APP2.CHAN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
WARN(NO) ACTION(ADD)
SET CHLAUTH('APP2.CHAN') TYPE(ADDRESSMAP) ADDRESS('9.95.100.1-5')
USERSRC(MAP) MCAUSER('mqapp2') ACTION(ADD)

これにより、指定された特定の IP アドレス範囲から接続が行われた場合にのみ、APP2.CHAN チャネルの開始が許可されます。

MCAUSER として接続するユーザーは mqapp2にマップされるため、そのユーザーの IBM® MQ OAM 権限を取得します。

特定のチャネルに対し、すべてのユーザーをブロックするが、特定のユーザーにのみ接続を許可する

CHLAUTH の処理には、3 つのデフォルト規則があります。
  • すべての MQ-admin* ユーザーによるすべてのチャネルへのアクセスを禁止
  • すべての SYSTEM.* に対するアクセス権限がありません すべてのユーザーによるチャネル
  • SYSTEM.ADMIN.SVRCONN チャネルへのアクセスを許可 (非 MQ-admin ユーザー)
最初の 2 つの規則では、すべてのチャネルへのアクセスをブロックします。 3 つ目の規則はより具体的であるため、他の 2 つより優先され、チャネルが SYSTEM.ADMIN.SVRCONN チャネルである場合は、チャネルへのアクセスが許可されます。

このシナリオでは、チャネル MY.SVRCONN へのアクセスには、デフォルトの CHLAUTH 規則が設定されています。

以下を追加する必要があります。

# block all users
SET CHLAUTH('MY.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
DESCR(''block all'') WARN(NO) ACTION(ADD)

# override - no MQM admin rule
SET CHLAUTH('MY.SVRCONN') TYPE(BLOCKUSER) USERLIST('nobody') DESCR('override
no mqm admin rule') WARN(NO) ACTION(ADD)

# allow johndoe userid
SET CHLAUTH('MY.SVRCONN') TYPE(USERMAP) CLNTUSER('johndoe')
USERSRC(CHANNEL) DESCR('allow johndoe userid') ACTION(ADD)

このコードの最初の部分は、すべてのユーザーの MY.SVRCONN への接続をブロックし、接続が特定のユーザー ID johndoe から行われた場合にのみ、MY.SVRCONN チャネルの開始を許可します。

チャネル johndoe で接続するユーザーは、 IBM MQ オブジェクトの IBM MQ OAM 権限に使用されます。 したがって、ユーザー ID には適切な IBM MQ 権限が必要です。

必要に応じて、以下を使用して別の IBM MQ ユーザー ID にマップすることができます。
USERSRC(MAP) MCAUSER('mquser1')
これを USERSRC(CHANNEL) の代わりに使用します。

受信側チャネルおよび送信側チャネルに対する CHLAUTH の使用

CHLAUTH 規則を使用して受信側チャネルと送信側チャネルのセキュリティーを強化し、受信側チャネルへのアクセスを制限できます。 CHLAUTH 規則に対して追加または変更を行う場合、更新された CHLAUTH 規則はチャネルの開始時にのみ適用されることに注意してください。そのため、チャネルが既に実行中の場合は、CHLAUTH の更新を適用するために、チャネルを停止してから再開する必要があります。

CHLAUTH 規則は任意のチャネルで使用できますが、いくつかの制約事項があります。 例えば、USERMAP 規則は SVRCONN チャネルにのみ適用されます。

この例では、特定の IP アドレスからの接続にのみ TO.MYSVR1 チャネルの開始が許可されます。

# First you could lock down the channel by disallowing all
# for channel 'TO.MYSVR1', RCVR channel
SET CHLAUTH('TO.MYSVR1') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
DESCR('Back-stop rule')

# Then you could allow this channel to be started
SET CHLAUTH('TO.MYSVR1') TYPE(ADDRESSMAP) ADDRESS('192.168.1.134') USERSRC(MAP)
MCAUSER('mqapp') ACTION(ADD)
この例では、特定のキュー・マネージャーからの接続のみが許可されます。

# Lock down all access:
SET CHLAUTH('TO.MYSVR1') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
DESCR('Back-stop rule')

# Then allow access from queue manager MYSVR2 and from a particular ipaddress:
SET CHLAUTH('TO.MYSVR1') TYPE(QMGRMAP) QMNAME('MYSVR2') USERSRC(MAP)
MCAUSER('mqapp') ADDRESS('192.168.1.134') ACTION(ADD)