セキュリティファイルがフルになったときやセキュリティファイルの高いレベルのパスワード暗号化の実施時等、
セキュリティファイルを再作成してTSSXTENDによる既存セキュリティファイルからのコピーする際の手順を教えてください。
Release : 16.0
セキュリティファイル再作成と既存セキュリティファイルからのコピー手順は以下の通りとなります。
(1) TSSFARを実行し、現在のセキュリティファイルの状況を確認。
(2) TSSFARの出力結果を参考にTSSMAINDを実行し、TSSMAINSの「BLOCKS」値を指定。
(3) VSAMDEF3にて新VSAMセキュリティファイルを作成。
(4) TSSMAINSにてTSSMAINDで確認した「BLOCKS」値を指定し新セキュリティファイルを作成。
(5) VSAMDEF6にて新VSAMセキュリティバックアップファイルを作成。
(6) TSSMAINBにて新セキュリティバックアップファイルを作成。
(7) 現行バックアップファイルを最新の状態に更新。
(8) TSSXTENDにて最新の現行バックアップファイルを入力に指定し新セキュリティファイルへコピーを実施。
(9) 新セキュリティファイル指定でTSSFARを実行し、新セキュリティファイルの状況を確認。
(10) Top Secretの起動プロシジャJCLを修正し新ファイル名に変更しTSSを再起動。
(11) Top Secret起動後、バックアップファイルを取得。
以下それぞれの手順詳細となります。
(1) TSSFAR 「SFSTATS」を実行し、セキュリティファイル統計を取得します。
セキュリティファイル統計を使用すると、セキュリティファイルに割り当てる ACIDの数、ボリューム、RES ブロック、PIEブロック、および SDT ブロックの指定に役立ちます。
//Jobname JOB ...
// EXEC PGM=TSSFAR
//SECFILE DD DISP=SHR,DSN=security file dsn.backup
//SYSPRINT DD SYSOUT=*
//INPUT DD *
KEY=KKKKKKKKKKKKKKKK
SFSTATS
出力例と出力内容説明
*** Security File Statistics Begins ***
Acid index entries allocated: 6,143 Acid index entries defined: 193
Next available acid number: 382 Last available acid number: 6,143
Acid blocks allocated: 751 Acid blocks used: 86
Volume entries allocated: 1,024 % Used 000 % Deleted 000
RES Blocks allocated: 20 % Used 000 % Deleted 000
PIE Blocks allocated: 53 % Used 000 % Deleted 000
MLS Blocks allocated: 54 % Used 000 Records: 0
SDT Blocks allocated: 2 % Used 004
「Acid index entries allocated」: 現在アロケートされているACIDエントリー数
「Next available acid number」 : 最小ACIDエントリー数。TSSMAIND/TSSMAINSで指定可能な最小値。
「Volume entries allocated」 : 現在アロケートされているVolumeエントリー数
*ここで出力の値を参考にTSSMAINDのSECDUMMYに指定します。
(2) TSSMAIND を実行して、TSSMAINS に指定するブロック数を決定します。
//JOBNAME JOB
//TSSMAINT PROC PRINT='*', /* SYSOUT O/P DESTINATION */
// CAI='PRODHLQ', /* HIGH LEVEL QUALIFIER */
// SYSDA=SYSDA, /* LOCAL DASD DEVICE */
// VOLSER=?????? /* DASD VOLSER FOR NEW FILE */
//*
//TSSMAIND EXEC PGM=TSSMAINT
//STEPLIB DD DSN=&CAI..CAKOLINK,DISP=SHR
//MAINTOUT DD SYSOUT=&PRINT
//SECFILE DD UNIT=&SYSDA,VOL=SER=&VOLSER,
// DSN=&&TEMP,SPACE=(TRK,(1)),DCB=KEYLEN=17,
// DISP=(,DELETE,DELETE)
//MAINTIN DD DDNAME=TSSIN
// PEND
//*
//DUMMYRUN EXEC TSSMAINT
//TSSIN DD DSN=&CAI..CAKOJCL0(SECDUMMY),DISP=SHR
&CAI.CAKOJCL0(SECDUMMY)の内容と説明
CREATE SECURITY
ACCESSORS=????? <---- ACID最大数。デフォルト5000。
VOLUMES=????? <---- Top Secretに定義されるボリュームおよびプレフィツクス数。デフォルト1000。
BLOCKSIZE=8192
RESBLOCKS=????? <----OPTIONAL システムで割り当てられる一般リソースのブロック数。デフォルト10。
SDTBLOCKS=????? <----OPTIONAL システムで割り当てられるSDTブロック数。デフォルト2。
PIEBLOCKS=????? <----OPTIONAL ACCESSORSで指定の各ACIDに対してデフォルトで2つのPIEエントリ。
SCA=MSCA/PASSWORD
ID=DUMMY
*それぞれの値は、既存セキュリティファイル設定の値を指定し
TSSFARの結果で、「RES」「PIE」「MLS」「SDT」各ブロックが100%に近いまたは超えている場合は、指定値を増やします。
*既存の指定値が不明な場合、「ACCESSORS」値は、TSSFARの「Acid index entries allocated:」を参照して値を指定し
「RES」「PIE」「MLS」「SDT」各ブロックは、それぞれのデフォルト値を指定してください。
出力結果
SECURITY FILE REQUIRES 000000849 BLOCKS OF BLOCK LENGTH 000008192
*ここで「SECURITY FILE REQUIRES nnnnnnnnnnnn BLOCKS 」出力された値を参考にTSSMAINSの「BLOCKS」値を指定します。
* TSSMAINDの実行は「SD37」または「U1520」で終了しますが、これは正常な稼働となります。
*「ACCESSORS」で実際に割り当てられるACID数は、以下の計算式で算出されます。
(((指定したACCESSORS数 * 16) / ブロック サイズ(商のみ、余りは無視)) + 1) * (ブロックサイズ / 16))
例:5000を指定
(((5000 x 16) / 8192) +1) x (8192 / 16))
≒ ((80000 / 8192) +1) x 512
≒ (9 + 1) x 512
≒ 5119 --> 実際に割り当てられるACID数
(3) VSAMDEF3にて新VSAMセキュリティファイルを作成します。
//VSAMDEF3 JOB
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE security file dsn.VSAMFILE
DEFINE CLUSTER -
(NAME(security file dsn.VSAMFILE) -
SHR(3,3) -
RECORDSIZE(256 24576) -
CYLINDERS(1,1) -
SPANNED -
KEYS(64,0) -
VOL(XXXXXX)) -
DATA -
(NAME(security file dsn.VSAMFILE.DATA) -
CISZ(4096)) -
INDEX -
(NAME(security file dsn.INDEX) -
CISZ(4096)) -
CATALOG(icf catalog name)
/*
(4) TSSMAINSにて、TSSMAINDで確認した「BLOCKS」値を指定し新セキュリティファイルを作成します。
//TSSMAINT PROC PRINT='*', /* SYSOUT O/P DESTINATION */
// HL='SECFHLQ', /* SECFILE HLQ */
// CAI='PRODHLQ', /* TOP SECRET HLQ */
// SYSDA=SYSDA, /* LOCAL DASD DEVICE */
// BLKSIZE=8192, /* SECFILE BLOCKSIZE */
//* CYLS=????, /* SECFILE ALLOCATION */
// BLOCKS=????, /* NUMBER OF CYLINDERS */ <- TSSMAINDの実行結果からの値を指定
// VOLSER=?????? /* DASD VOLSER FOR NEW FILE */
//*
//TSSMAINS EXEC PGM=TSSMAINT
//STEPLIB DD DSN=&CAI..CAKOLINK,DISP=SHR
//MAINTOUT DD SYSOUT=&PRINT
//SECFILE DD DSN=&HL..SECFILE,
// SPACE=(&BLKSIZE,(&BLOCKS),RLSE,CONTIG),
//* SPACE=(CYL,(&CYLS),RLSE,CONTIG),
// UNIT=&SYSDA,DISP=(,CATLG,DELETE),VOL=SER=&VOLSER,
// DCB=(KEYLEN=17,BLKSIZE=&BLKSIZE)
//MAINTIN DD DISP=SHR,DSN=&CAI..CAKOJCL0(SECPARMS)
// DD DISP=SHR,DSN=&CAI..CAKOJCL0(SECPRIM)
//VSAMFILE DD DSN=&HL..VSAMFILE,DISP=SHR
// PEND
//*
//PRIMARY EXEC TSSMAINT
/*
*VSAMDEF3で作成のVSAMファイルをDD VSAMFILEに指定します。
*TSSMAINS内「STEP2」はセキュリティファイルを複数システム間で共有している場合のみ実行します。
&CAI.CAKOJCL0(SECPARMS)の内容と説明
CREATE SECURITY
ACCESSORS=????? <---- ACID最大数。デフォルト5000。
VOLUMES=????? <---- Top Secretに定義されるボリュームおよびプレフィツクス数。デフォルト「1000」。
BLOCKSIZE=8192
RESBLOCKS=????? <----OPTIONAL システムで割り当てられる一般リソースのブロック数。デフォルト「10」。
SDTBLOCKS=????? <----OPTIONAL システムで割り当てられるSDTブロック数。デフォルト「2」。
PIEBLOCKS=????? <----OPTIONAL ACCESSORSで指定の各ACIDに対してデフォルトで「2」つのPIEエントリ。
*MLSBLOCKS=????? <----OPTIONAL
*MAXACIDSIZE=???? <----OPTIONAL
*INITVSAM=???? <----OPTIONAL
AES256ENCRYPT <----セキュリティファイルを「AES 256」で暗号化します。
SCA=MSCA/PASSWORD
*「AES 256」による暗号化実施時は「AESCACHE」制御オプションを「ON」に設定します。当設定にて「AES 256」によるログオンパスワード検証時パフォーマンスを改善できます。なお、「AESCACHE」制御オプション有効化には、PTF SO05264の適用が必要です。
SO05264 AES ENCRYPTED PASSWORD CACHING OPTION
(5) VSAMDEF6にて新VSAMバックアップファイルを作成します。
//VSAMDEF6 JOB
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE security file dsn.VSAMBKUP
DEFINE CLUSTER -
(NAME(security file dsn.VSAMBKUP) -
SHR(3,3) -
RECORDSIZE(256 24576) -
CYLINDERS(1,1) -
SPANNED -
REUSE -
KEYS(64,0) -
VOL(XXXXXX)) -
DATA -
(NAME(security file dsn.VSAMBKUP.DATA) -
CISZ(4096)) -
INDEX -
(NAME(security file dsn.INDEX) -
CISZ(4096)) -
CATALOG(icf catalog name)
/*
//
(6) TSSMAINBにて新セキュリティバックアップファイルを作成します。
//JOBNAME JOB
//TSSMAINT PROC PRINT='*', /* SYSOUT O/P DESTINATION */
// HL='BCKUHLQ, /* HIGH LEVEL QUALIFIER */
// CAI='PRODHLQ', /* HIGH LEVEL QUALIFIER */
// SYSDA=SYSDA, /* LOCAL DASD DEVICE */
// BLKSIZE=8192, /* BACKUP FILE BLOCKSIZE */
//* CYLS=????, /* BACKUP FILE ALLOCATION */
// BLOCKS=????, /* NUMBER OF CYLINDERS */ <- TSSMAINSと同様の値を指定
// VOLSER=?????? /* DASD VOLSER FOR NEW FILE */
//*
//TSSMAINB EXEC PGM=TSSMAINT
//STEPLIB DD DSN=&CAI..CAKOLINK,DISP=SHR
//MAINTOUT DD SYSOUT=&PRINT
//SECFILE DD DSN=&HL..BACKUP,
// SPACE=(&BLKSIZE,(&BLOCKS),RLSE,CONTIG),
//* SPACE=(CYL,(&CYLS),RLSE,CONTIG),
// UNIT=&SYSDA,DISP=(,CATLG,DELETE),VOL=SER=&VOLSER,
// DCB=(KEYLEN=17,BLKSIZE=&BLKSIZE)
//MAINTIN DD DISP=SHR,DSN=&CAI..CAKOJCL0(SECPARMS)
// DD DISP=SHR,DSN=&CAI..CAKOJCL0(SECBACK)
//VSAMFILE DD DSN=&HL..VSAMBKUP,DISP=SHR
// PEND
//*
//BACKUP EXEC TSSMAINT
/*
*TSSMAINSで新セキュリティファイルを作成したのと同じSECPARMSを使用します。
*VSAMDEF6で作成のVSAMバックアップファイルをDD VSAMFILEに指定します。
(7) 後続処理の入力ファイルとして現行バックアップファイルを最新の状態に更新します。
コンソールより
F TSS,BACKUP
もしくは、
TSS MODIFY(BACKUP)
にてバックアップを取得します。
(8) TSSXTENDにて最新の現行バックアップファイルを指定し新セキュリティファイルにコピーを実施。
//JOBNAME JOB ...
//UTL EXEC PGM=TSSXTEND,REGION=4M,TIME=1440
//SYSABEND DD SYSOUT=*
//MAINTOUT DD SYSOUT=*
//SECFNEW DD DSN=new security file dsn,DISP=SHR
//SECNVSM DD DSN=new vsam file dsn,DISP=SHR
//SECFOLD DD DSN=old security file BACKUP,DISP=SHR
//SECOVSM DD DSN=old security file VSAMBKUP,DISP=SHR
//MAINTIN DD *
COPY SECURITY
OLDKEY=KKKKKKKKKKKKKKKK
NEWKEY=KKKKKKKKKKKKKKKK
/*
(9) 新セキュリティファイルを指定してTSSFAR「SFSTATS」を実行し、既存セキュリティファイルの内容が新セキュリティファイルにコピーされていることを確認します。
//Jobname JOB ...
// EXEC PGM=TSSFAR
//SECFILE DD DISP=SHR,DSN=new security file dsn
//SYSPRINT DD SYSOUT=*
//INPUT DD *
KEY=KKKKKKKKKKKKKKKK
SFSTATS
(10) Top Secretの起動プロシジャJCLを修正し新ファイル名に変更。その後TSSを再起動。
*Top Secretの起動プロシジャJCLを修正し新ファイル名に変更します。
*Top Secretの起動プロシジャJCLの他、以下起動プロシジャを修正し新ファイル名に変更します。
リカバリー時起動プロシージャ(TSSB)
リカバリープロシージャ(TSSRCVR1、TSSRCVR2)
*その後、IPLまたはTop Secretを再起動します。
*Top Secret再起動の場合、「P TSS」でTop Secretを停止後、テンポラリーシャットダウンを実施し、「S tssproc,,,REINTI」で再起動します。
停止
P TSS
TSS9072I ** SELECT TYPE OF SHUTDOWN ** <I> TO IGNORE
TSS9072I <Z> END OF DAY; ** RE-IPL ** WILL BE REQUIRED
nn TSS9072A <T> TEMPORARY; MAY IMPACT THROUGHPUT
起動
S tssproc,,,REINIT
(11) Top Secret起動後、新バックアップファイルを最新の状態に更新します。
コンソールより
F TSS,BACKUP
もしくは、
TSS MODIFY(BACKUP)