13
1 SASを使った情報管理事例 ~そしてリスクをやっつけろ~ 惟高裕一,藤原正和,北西由武,吉田祐樹 塩野義製薬株式会社 Information Management by using SAS - MINIMIZE THE RISK - Yuichi Koretaka, Masakazu Fujiwara, Yoshitake Kitanishi, Yuki Yoshida Biostatistics Dept. SHIONOGI CO., LTD. 要旨: 機密情報管理のためにフォルダのアクセス権設定を行うとき,SAS に精通していない方でもアクセス権設定が行えるようなSASプログ ラムを開発しました.その方法をご紹介します. *本報告はSAS 9.2Microsoft Office 2010, Windows server 2008 R2 standardでの設定を前提としています キーワード:情報管理,コマンドプロンプト,xコマンド,PIPEエンジン, グローバル化

SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

1

SASを使った情報管理事例

~そしてリスクをやっつけろ~ 惟高裕一,藤原正和,北西由武,吉田祐樹

塩野義製薬株式会社

Information Management by using SAS

- MINIMIZE THE RISK -

Yuichi Koretaka, Masakazu Fujiwara, Yoshitake Kitanishi, Yuki Yoshida

Biostatistics Dept. SHIONOGI & CO., LTD.

要旨:

機密情報管理のためにフォルダのアクセス権設定を行うとき,SAS

に精通していない方でもアクセス権設定が行えるようなSASプログラムを開発しました.その方法をご紹介します.

*本報告はSAS 9.2,Microsoft Office 2010, Windows server

2008 R2 standardでの設定を前提としています

キーワード:情報管理,コマンドプロンプト,xコマンド,PIPEエンジン, グローバル化

Page 2: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

2

内容

• アクセス権管理の必要性

• SASプログラムによる管理方法

– SASプログラムの役割

– SASプログラムのポイント

• まとめ

3

医薬品業界の現状

4

開発のグローバル化 - 多極同時開発,国際共同治験 etc

開発に関わる人の増加,多様化 - 海外子会社,提携会社,CRO etc

臨床データや解析結果など,機密性の高い情報管理の重要性が増している - コンプライアンス違反のリスク - 情報漏えいのリスク

Page 3: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

3

SASサーバー (社内)

5

SASサーバー (社内)

シオノギの解析環境(これまで)

Project 1: STAT, DM, Programmer

Project 2: STAT, DM, Programmer

• 各極で独立したサーバーを持っていた • 作業も独立で行っていたため,情報管理は比較的容易であった

Project 4: STAT, DM, Programmer

Project 3: STAT, DM, Programmer

SDD

SASサーバー

6

CPU: Intel Xeon Processor X5647 2.93 GHz, 4 Cores/8 Threads RAM: 16GB DISK: 2TB (RAID1)

• 本社と子会社でドメイン間の信頼関係を結び,ユーザーアカウントの一元管理が可能となった.

• 一方で,役割も多様となり情報管理も複雑になっている

シオノギの解析環境(これから)

Project 1: STAT, DM, Programmer

Project 2: STAT, DM, Programmer

Project 3: STAT, DM, Programmer

Project 2: STAT, DM, Programmer

SDD

Page 4: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

4

• PJ内での情報管理 – STAT,DM,Programmerによって作成・閲覧すべき情報が異なる

• PJ外での情報管理 – PJ外の人には,機密情報にアクセスさせるべきでない

– 機密性の高くない情報はPJ外の人にも参照可能としたい

• 統計解析計画書(SAP),各種仕様書(spec類) など

• ノウハウの蓄積

• PJ外の人も参照可能となるようにViewerという役割を追加した

7

シオノギの解析環境(これから)

8

役割 特徴

STAT 当該PJの統計家 - 解析計画書作成

DM 当該PJのDM - SDTM spec作成,SDTM作成

Programmer 当該PJのプログラマー - ADaM spec作成,ADaM作成,解析資料作成

Viewer 当該PJ以外の人 - 他のPJの機密でない情報は閲覧可能

業務プロセスごとに編集可能,閲覧のみ,閲覧不可, といった具合に権利を付与する

業務プロセスごとに作業フォルダを分けることとした

シオノギの解析環境(これから)

Page 5: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

5

STAT,Programmer

SDTM Data Raw Data ADaM Data TLF

(解析

資料)

DM DM,Programmer Programmer

• DM以外編集

権は必要ない

• Programmer,DMは編集権が必要

• STATは閲覧で良い

• Programmer,STATは編集権が必要

• DMは閲覧で良い

• Programmer

は編集権が必要

• STATは閲覧で良い

SDTM Spec SAP, ADaM Spec TLF Spec,

TLF Shells

• ファイルの誤編集などのヒューマンエラーを防ぐ必要がある • ViewerはData類は閲覧できないが,spec類は閲覧できる

シオノギでの主なプログラミング業務プロセス

9

10

SDTMやADaM関連の フォルダの構造が示されている

出典 [1]

FDAがeCTDで求めるmodule5の構造

• FDAが提示した構造に加え,TLFやSAP,TLF shellsを格納す

るフォルダを追加した社内独自のフォルダ構造を構築した

フォルダをtemplate化 (全115folders)

• 上記で構築したフォルダ別,役割別にアクセス権を細かく定義していった

シオノギが作ったフォルダ構造

eCTDへの対応

Page 6: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

6

シオノギが作ったフォルダ構造 (例)

11

権限 特徴

C Read and Write

R Read Only

N Cannot Access

Viewer

R R N

N

C C

R R

stat

XPT

• PJと役割に応じてユーザーグループを作成する (ex. PJ名_STAT)

• 役割に応じて,フォルダごとにユーザーグループのアクセス権を設定する – Ex.) ADaM spec,TLF spec格納フォルダはViewerが閲覧可能である

– Ex.) TLF出力フォルダはViewerは閲覧すべきでない

12

アクセス権管理の具体的方法

• アクセス権管理が複雑になってしまうことは不可避であった • PJメンバーの追加,異動による変更には機敏に対応する必要がある

手動での管理には限界があるため自動化したい!

Page 7: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

7

アクセス権管理の自動化

自動でExcelから情報を読み取り,DOSコマンドでアクセス権を設定し,それらの管理ログを出力をする必要があった

13

• アクセス権設定を容易に行いたい – 複雑な設定に対応したDOSコマンドで行う

• サーバー管理者,ユーザーの使いやすさも重視したい – 各PJ主担当者がアクセス権設定の申請を行う手順が複雑になると不便であるため,Excelに数個の情報を入力してもらうだけにした

– サーバー管理者がSASやDOSコマンドに精通していないことを想定した

• アクセス権設定の変遷も辿れるようにしたい – 有事の際に参照する必要があるため,ログを出力し管理を行う

データハンドリングが容易で,他のソフトウェアとの連携も可能なSASで管理することとした

内容

• アクセス権管理の必要性

• SASプログラムによる管理方法

– SASプログラムの役割

– SASプログラムのポイント

• まとめ

14

Page 8: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

8

SASプログラムによる管理体制

15

1. PJ主担当者が,PJ名,プロトコル名,ユーザー名と役割を申請書(Excel)に入力してサーバー管理者に依頼

2. サーバー運用責任者が不自然な申請がないか確認,サーバー管理者に実行を指示 3. サーバー管理者がExcelからSASプログラムを実行,Excelの情報が抽出される 4. SASプログラムがコマンドプロンプトを実行 5. コマンドプロンプトの実行ログをテキストに出力する 6. コマンドプロンプト実行後のアクセス権の状況を出力する 7. SASプログラム自体の実行ログを出力する

2 4

5

6, 7 3

3

ユーザー サーバー運用責任者 サーバー管理者

申請書 ログ

16

Excelの申請フォーム

ユーザーの追加,削除ともに対応

ユーザー名を入力すると,自動で入力される

サーバー管理者はSASやDOSコマンドに精通していなくても良い

サーバー運用責任者が入力内容を確認して, サーバー管理者が実行ボタンを押すとプログラムが走る

ユーザーはこれらの情報を 入力するだけで良い

project:

protocol:

PROG

VIEW

Page 9: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

9

フォルダごとユーザーグループごとにアクセス権を割り当てる - x “icacls …./&project.-&protocol./analysis /grant:r &project._PROG:(CI)(R)“ ; - x “icacls …./&project.-&protocol./tabulations /grant:r &project._DM:(CI)(R)“ ;

templateをコピーしてPJ名, protocol名でリネームする

17

申請フォームの情報を マクロ変数化する

template

&project.-&protocol.

SASプログラムの役割 (1/2) templateフォルダのコピーとユーザーグループのフォルダへのアクセス権付与

&protocol. &project.

新規のPJであれば, ユーザーグループを作成する - x “net localgroup &project._STAT /add” ;

template

(全115 folders)

VIEWER

18

SASプログラムの役割 (2/2) ユーザーグループへのユーザーの割り当て

申請フォームの情報をマクロ変数&データセット化する 矛盾する申請 (グループに割り当てられていないのに削除 etc) があればエラーを出力

&project._[group name] DOSコマンドを格納した変数を作る xコマンドで実行

PROG

VIEWER

PROG PROG

VIEWER

Page 10: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

10

SASプログラムのポイント (1/3)

19

• ExcelからのSASプログラム実行

retval = Shell(“[SAS.exeファイルのパス] -config D:¥Progra~1¥SAS¥SAS9.2¥SASFoundation¥9.2(32-bit)¥nls¥1d¥SASV9.CFG -sysin [SASプログラムファイルのパス] -log [保存するログのパス]")

VBA, SASバッチ実行

指定したSASプログラムを実行してそのログを指定したファイル名で残すことが可能

SASプログラムのポイント (2/3)

20

• SASからのコマンドプロンプト実行

xコマンド, icacls,robocopy など

• フォルダへの指定したグループに編集権限を与える x “icacls [フォルダ名] /grant:r [グループ名]:(OI)(CI)(M) /T /C“;

• フォルダ自体のアクセス権継承機能を無効にする x “icacls [フォルダ名] /inheritance:d“ ;

• フォルダtemplateのコピーは下記のコマンドで行う x “robocopy [folder path1] [folder path2] /E /COPYALL /MIR“ ;

templateフォルダ 作成するPJ名,protocol名のフォルダ

Page 11: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

11

SASプログラムのポイント (3/3)

21

• ユーザーグループの情報などを取得

filename data1 PIPE "net localgroup“ ; data temp ; infile data1 dlm='09'x ; length TEMP $100 ; input TEMP $ ; run;

PIPEエンジン, net localgroup など

• 現状のユーザーグループを 確認する場合 _VIEWER

_VIEWER

_VIEWER

PROG

PROG

PROG

PROG ①コマンド実行

②結果を受け渡し

PIPEエンジン

ログの出力

• 開発品フォルダ全てのアクセス権をPIPEエンジン,xコマンドなどの機能を利用してSASで読み込み,Excelへ出力する (Excelであれば容易に管理可能と考えた)

22

アクセス権の変遷を辿ることが可能

_STAT

PROG

_VIEWER

Page 12: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

12

内容

• アクセス権管理の必要性

• SASプログラムによる管理方法

– SASプログラムの役割

– SASプログラムのポイント

• まとめ

23

まとめ

• コンプライアンス,情報漏えいというリスク回避のためにも,誰が,いつ,どの情報にアクセスできる状態にあるかを管理することは重要である

• 上記への対応としてアクセス権を設定とログの管理をすることとし,そのアプローチとしてSASプログラムを利用する方法を考えた

– xコマンド

– PIPEエンジン

• 複数ソフトウェアの連携が必要な場合でもSASを用いることで管理体制を容易に整えることができた

• SASは,統計的な計算機能だけではなく幅広い応用が可能と言える – 出典[3]

24

Page 13: SASを使った情報管理事例 ~そしてリスクをやっつけろ~ · 2018-07-05 · 3 SASサーバー (社内) 5 SASサーバー (社内) シオノギの解析環境(これまで)

13

Reference

[1] Study Data Specifications version 2.0, FDA(2012)

[2] Windows DOS/コマンドプロンプト辞典, 飯島弘文, 翔泳社(2003)

[3] FDA Submissionのためのdefine.pdf作成事例-SAS®によるファイル変換のAutomation化-, 豊泉樹一郎, 北西由武,吉田祐樹, 平井健太,SASユーザー総会 (2013)

25