リソース

本章では、リソースの設定方法と使用方法について説明します。

1. 概要

本書でのリソースとは、OpenFrameシステムで使用されるデータセット以外のすべてのリソースを意味します。リソースは、トランザクション・タイプまたはターミナル・タイプに分類することが可能であり、この分類をクラスといいます。

データセットと同様、事前に登録されたリソースの権限レベルに従って特定のリソースにアクセスしようとするユーザーからリソースを保護するためには、該当のリソース・プロファイルを登録する必要があります。リソースのアクセス・レベルは、データセットの権限設定を参照してください。リソース・プロファイルの内容はデータセットと同じですが、リソースにはクラスを別途明示する必要があります。

クラスは、TACFに定義されているリソースをタイプ別に分類したものです。クラスには、メンバー・クラスとリソース・グループ・クラスがあります。メンバー・クラスとリソース・グループ・クラスは互いに参照することができます。リソースのタイプによって以下のように分類されます。

  • 一般リソース(Generic Resource)

    同じタイプのリソースに対するアクセス制御を個別プロファイルとして管理します。このタイプのリソースが属するクラスをメンバー・クラスといいます。

  • グループ・リソース(Group Resource)

    同じタイプの複数のリソースを1つのリソースとしてグループ化し、リソースのアクセス制御を1つのプロファイルとして管理します。このタイプのリソースが属するクラスをリソース・グループ・クラスといいます。

以下は、TACFに定義済みのメンバー・クラスとリソース・グループ・クラスです。

メンバー・クラス リソース・グループ・クラス 用途

SURROGAT

なし

代理ジョブ・サブミット

TERMINAL

GTERMINL

TSO/VMターミナル

TCICSTRN

GCICSTRN

CICSトランザクション

FCICSFCT

HCICSFCT

CICSファイル

DCICSDCT

ECICSDCT

CICS TDQ

SCICSTST

UCICSTST

CICS TSQ

MCICSPPT

NCICSPPT

CICSプログラム

ACICSPCT

BCICSPCT

開始されたCICSトランザクション

TJESMGR

GTJESMGR

tjesmgrコマンド

UTILITY

GUTILITY

JCLランナー・ユーティリティ(ジョブを使用して実行できるすべてのプログラムを含む)

UNIFYDS

GUNIFYDS

登録されていないデータセットに対してボリュームをリソースとして登録して権限を管理します

JESJOBS

なし

JOBコマンド

JESSPOOL

なし

SPOOLデータセット

OFMANAGR

なし

OpenFrame Managerのログイン制御

  1. CICSに関連するメンバー・クラスのTCICSTRN、FCICSFCT、DCICSDCT、SCICSTST、MCICSPPT、ACICSPCTの詳細については、OpenFrame OSC『管理者ガイド』の「リソースのセキュリティ」を参照してください。

  2. tjesmgrコマンドの詳細については、OpenFrame Batch『TJES ガイド』の「TJESMGRコマンド」を参照してください。

2. リソース・プロファイル

TACFでサポートされるリソース・プロファイルには、個別リソース・プロファイル、一般リソース・プロファイル、グループ・リソース・プロファイルがあります。

リソース・プロファイルとデータセット・プロファイルの特性は同じです。ただし、リソース・プロファイルでは、最初の修飾子には特殊文字を使用できますが、「***」はサポートされません。

  • 個別リソース・プロファイル(Discrete resource profile)

    1つの特定のリソースを一意のプロファイルとして管理します。

    個別プロファイルは、対応するリソース名と一致します。個別プロファイルを使用してリソースを管理すると、各リソースをより細かく管理できるというメリットがありますが、多くのプロファイルを管理しなければならないデメリットも存在します。

  • 一般リソース・プロファイル(Generic resource profile)

    類似した名前形式とアクセス権限を持つ複数のリソースを1つのプロファイルとして管理します。

    たとえば、最初の修飾子がTMAXで始まるすべてのリソースに同じユーザーのアクセスが許可されている場合、リソースに対してそれぞれのプロファイルを登録せずに、「TMAX.**」という1つのプロファイルを登録してリソースを管理することができます。一般プロファイルは、個別プロファイルのように各プロファイルを細かく管理することはできませんが、複数のリソースを1つのプロファイルとして管理できるというメリットがあります。

  • グループ・リソース・プロファイル(Group resource profile)

    一般プロファイルと同様に、複数のリソースを1つのプロファイルとして管理します。ただし、グループ・リソース・プロファイルのメンバーは、一般プロファイルとして管理されるリソースと違って同じ命名規則は持っていません。

    • グループ・リソース・プロファイルの作成

      グループ・リソース・プロファイルのメンバーは、一般プロファイルとして管理される一般リソースと違って命名規則を持たないため、リソース名を一般プロファイルとして作成できない場合には、グループ・リソース・クラスという別途のプロファイルを登録し、各リソースをグループ・リソース・プロファイルのメンバーとして追加します。これによって、グループ・リソース・プロファイルを使用してリソースのアクセス権限を1つのプロファイルとして管理することができます。

      グループ・リソース・プロファイルがTACFに登録される手順です。

      1. グループ・リソース・プロファイルに登録するリソースに対して個別プロファイルを登録します。

      2. RDEFINEまたはRALTERのADDMEMを使用して、リソースをグループ・リソース・プロファイルに追加します。

      3. グループ・リソース・プロファイルからリソースを削除する場合は、RALTERコマンドのDELMEMにリソースのプロファイル名を指定します。

        グループ・リソース・プロファイルをTACFに登録する際に使用されるコマンドについては、TACFコマンドを参照してください。

新しいリソースを登録するとリソース・プロファイルが作成され、リソースを登録する際に指定した情報がプロファイルの各フィールドに保存されます。リソースの登録時には、クラス名(CLASSNAME)とプロファイル名(PROFILENAME)を必ず指定してください。その他のフィールドはユーザーが定義した設定値によって自動的に設定されます。

以下は、リソース・プロファイルに保存されるリソースの情報です。

フィールド 説明

CLASSNAME

一般プロファイルが属するクラス名を設定します。(必須項目)

PROFILENAME

TACFで保護されるリソース名を設定します。(必須項目)

プロファイル名には、英文字、数字、特殊文字(%、*、**)を使用できます。英文字、数字、特殊文字が含まれたプロファイルを一般プロファイルといいます。

OWNER

プロファイル所有者のユーザーIDまたはグループ名を設定します。

プロファイルの所有者はプロファイルを変更または削除することができます。また、リソースにアクセスできる権限が付与されます。指定しない場合は、登録者のIDが設定されます。

MEMBERS

グループ・リソース・プロファイルに所属する個別プロファイル名または個別プロファイルが属するグループ・リソース・プロファイル名を指定します。

UACC

リソースへの一般アクセス権限(Universal Access Authority)を設定します。

指定しない場合は、NONEに設定されます。アクセス権限の詳細については、データセットの権限設定を参照してください。

AUDT

リソースにアクセスする際の監査レベルを指定します。監査レベルの詳細については、データセット・プロファイルを参照してください。

現在のTACFでは、リソース・プロファイルのCATEGORY、SECLEVEL、SECLABEL、DATA、FLAGS、LTMODDT、NOTIFYフフィールドは、内部で使用される値を使用するか、エラーを防ぐために構文のみサポートしています。

3. リソースの権限設定

以下の2つの方法でリソースの権限を設定することができます。

  • 個別リソース・プロファイルを作成する際にUACCを指定する方法

    すべてのユーザーに同じ権限レベルの権限を付与するように設定します。

  • アクセス・リストを使用してユーザーごとに権限を設定する方法

    リソースを使用するユーザーまたはグループを指定して、リソースを使用する曜日と時間を指定した後、PERMITコマンドを使用して登録します。

リソースで使用できる権限レベルは、データセットの権限設定を参照してください。

4. UNIFYDS

データセットの権限をチェックする際、各データセットのプロファイルを登録するのではなく、データセットが属しているボリュームを使用して権限をチェックすることができます。ボリュームをUNIFYDSクラスのリソースとして登録する場合、データセット・プロファイルによって保護されないデータセットの場合は、UNIFYDSに登録されたボリューム情報を使用して権限をチェックします。

この機能を使用するには、OpenFrame環境設定のtacfサブジェクト、AUTH_OPTIONセクションのENABLE_UNIFYDSキーのVALUE項目をYESに設定します。

以下のように、ボリュームをUNIFYDSクラスに登録します。一般的なリソース・プロファイルを登録する方法と同じです。

RDEFINE UNIFYDS DEFVOL UACC(EXECUTE)

tacfサブジェクトの詳しい設定方法については、OpenFrame TACF『環境設定ガイド』を参照してください。

5. 代理ジョブ・サブミット

ジョブの代理送信(Surrogated JOB Submit)とは、ジョブをサブミットするユーザーと実際にジョブを実行するユーザーが異なることをいいます。ジョブをサブミットして実行する際、一般的にはJCLにユーザーIDとパスワードを指定してサブミットされたジョブの実行権限を持つユーザーを明示します。一方、ジョブの代理送信では、ジョブの実行に必要なリソースへのアクセス権限をチェックする際、ジョブを送信したユーザーではなく、実際にジョブを実行するユーザーの権限をチェックします。

システムには、ジョブを送信するユーザーと実行するユーザーがそれぞれ存在することが可能であり、また異なる権限を持つことができるため、一般的にジョブを送信するユーザーとジョブを実行するユーザーを分離します。ただし、ジョブをサブミットするユーザーにJCLを参照できる権限がある場合は、JCLに記述されたジョブ実行者のパスワードが公開される恐れがあります。それを防ぐために、実行者のパスワードは記述せずにユーザーIDのみ記述して代理権限を登録します。

以下は、代理ジョブ・サブミットのリソースと権限を登録する例です。

リソース登録コマンド(RDEFINE)を使用して、ジョブの代理送信リソースを登録します。

RDEFINE SURROGAT executor.SUBMIT UACC(NONE)

代理ジョブ・サブミット・リソースへの権限を登録します。

PERMIT executor.SUBMIT CLASS(SURROGAT) ID(submitter) ACCESS(READ)

上記の例では、ジョブを実行するユーザーIDはexecutor、ジョブを送信するユーザーIDはsubmitterを使用しています。

6. TACF TJES

TACFを使用してSUBMIT、STOP、REMOVE、HOLD、START、CANCEL、SUSPEND、RESUME、NICEへの権限チェック、およびスプール・データセットへのアクセス権限を設定することができます。

この機能を使用するには、OpenFrame環境設定のtjesサブジェクト、TACFセクションのCHECK_JOBNAMEAUTHおよびCHECK_SPOOLAUTHキーのVALUE項目が両方ともYESに設定されている必要があります。

tjesサブジェクトの詳しい設定方法については、OpenFrame Batch『環境設定ガイド』を参照してください。

6.1. SUBMITへの権限チェック

TACFでは、特定のjobnameを持つジョブへの実行権限を設定できるため、権限のないユーザーによってジョブが実行されることを防ぐことができます。

以下は、特定のjobnameを持つジョブのSUBMITを制御する方法です。

  1. RDEFINEコマンドを使用してJESJOBSクラスに属するプロファイルを定義します。プロファイルを登録する際、UACCをREAD以上に設定すると、すべてのユーザーに同じREAD権限が付与されるため、UACCは必ずNONEに設定します。

    プロファイル名は、次の形式で指定します。

    SUBMIT.<jobname>
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

  2. PERMITコマンドを使用して特定のユーザーまたはグループにSUBMIT権限を付与します。権限の付与時には、ACCESS(アクセス権限)をREADに設定します。

    PERMIT SUBMIT.<jobname> CLASS(JESJOBS) ID([userid | group]) ACCESS(READ)
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

    userid/group

    指定のjobnameを持つジョブにSUBMIT権限を付与するユーザーまたはグループを指定します。

6.2. REMOVE/STOPへの権限チェック

以下は、特定のjobnameを持つジョブのREMOVEとSTOPを制御する方法です。

  1. RDEFINEコマンドを使用してJESJOBSクラスに属するプロファイルを定義します。リソース・プロファイルの登録方法は、SUBMITと同じです。

    プロファイル名は、次の形式で指定します。

    REMOVE.<jobname> または STOP.<jobname>
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

  2. PERMITコマンドを使用して特定のユーザーまたはグループにREMOVEとSTOP権限を付与します。権限の付与時には、ACCESS(アクセス権限)をALTERに設定します。

    PERMIT REMOVE|STOP.<jobname> CLASS(JESJOBS) ID([userid | group]) ACCESS(ALTER)
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

    userid/group

    指定のjobnameを持つジョブにREMOVEとSTOP権限を付与するユーザーまたはグループを指定します。

6.3. HOLD/START/CANCEL/SUSPEND/RESUME/NICEへの権限チェック

その他にも、HOLD、START、CANCEL、SUSPEND、RESUME、NICEへの実行権限をチェックすることができます。

以下は、コマンドの実行権限を設定する方法です。

  1. RDEFINEコマンドを使用してJESJOBSクラスに属するプロファイルを定義します。

    プロファイル名は、次の形式で指定します。

    HOLD|START|CANCEL|SUSPEND|RESUME|NICE.<jobname>
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

  2. PERMITコマンドを使用して特定のユーザーまたはグループにHOLD、START、CANCEL、SUSPEND、RESUME、NICE権限を付与します。権限の付与時には、ACCESS(アクセス権限)をREADに設定します。

    PERMIT HOLD|START|CANCEL|SUSPEND|RESUME|NICE.<jobname> CLASS(JESJOBS) ID([userid | group]) ACCESS(READ)
    入力項目 説明

    jobname

    TACFを使用して制御するジョブ名を指定します。

    userid/group

    指定のjobnameを持つジョブにHOLD、START、CANCEL、SUSPEND、RESUME、NICE権限を付与するユーザーまたはグループを指定します。

6.4. スプール・データセットへのアクセス権限の設定

TACFでは、スプール・データセットに対してユーザーごとにアクセス権限を設定し、権限のないユーザーのアクセスを制御することができます。この設定は、スプール・データセットの作成を制御するのではなく、スプール・データセットのREAD権限(検索)への制御のみチェックします。

以下は、アクセス制御の対象となるスプール・データセットの種類です。

  • INPJCL

  • JESMSG

  • JESJCL

  • SYSMSG

  • CATPROC

  • 出力データセット(output dataset)

以下は、スプール・データセットのアクセス権限を設定する方法です。

  1. RDEFINEコマンドを使用してJESSPOOLクラスに属するスプール・データセットのプロファイルを登録します。プロファイルの登録時にUACCをREAD以上に設定すると、すべてのユーザーに同じREAD権限が付与されるため、UACCは必ずNONEに設定します。

    プロファイル名は、次の形式で指定します。

    <jobname>.<spool dataset>
    入力項目 説明

    jobname

    ジョブ名を指定します。

    spool dataset

    スプール・データセット名を指定します。すべてのスプール・データセットの一般プロファイルを設定する場合は「*」を指定します。

  2. PERMITコマンドを使用して特定のユーザーまたはグループにスプール・データセットへのREAD権限を設定します。

    PERMIT <profile-name> CLASS(JESSPOOL) ID(<userid | group>) ACCESS(READ)
    入力項目 説明

    profile-name

    RDEFINEコマンドを使用して設定したプロファイル名を指定します。

    userid/group

    スプール・データセットにREAD権限を付与するユーザーまたはグループを指定します。