Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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エンジン, グローバル化
2
内容
• アクセス権管理の必要性
• SASプログラムによる管理方法
– SASプログラムの役割
– SASプログラムのポイント
• まとめ
3
医薬品業界の現状
4
開発のグローバル化 - 多極同時開発,国際共同治験 etc
開発に関わる人の増加,多様化 - 海外子会社,提携会社,CRO etc
臨床データや解析結果など,機密性の高い情報管理の重要性が増している - コンプライアンス違反のリスク - 情報漏えいのリスク
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
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の機密でない情報は閲覧可能
業務プロセスごとに編集可能,閲覧のみ,閲覧不可, といった具合に権利を付与する
業務プロセスごとに作業フォルダを分けることとした
シオノギの解析環境(これから)
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への対応
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メンバーの追加,異動による変更には機敏に対応する必要がある
手動での管理には限界があるため自動化したい!
7
アクセス権管理の自動化
自動でExcelから情報を読み取り,DOSコマンドでアクセス権を設定し,それらの管理ログを出力をする必要があった
13
• アクセス権設定を容易に行いたい – 複雑な設定に対応したDOSコマンドで行う
• サーバー管理者,ユーザーの使いやすさも重視したい – 各PJ主担当者がアクセス権設定の申請を行う手順が複雑になると不便であるため,Excelに数個の情報を入力してもらうだけにした
– サーバー管理者がSASやDOSコマンドに精通していないことを想定した
• アクセス権設定の変遷も辿れるようにしたい – 有事の際に参照する必要があるため,ログを出力し管理を行う
データハンドリングが容易で,他のソフトウェアとの連携も可能なSASで管理することとした
内容
• アクセス権管理の必要性
• SASプログラムによる管理方法
– SASプログラムの役割
– SASプログラムのポイント
• まとめ
14
8
SASプログラムによる管理体制
15
1. PJ主担当者が,PJ名,プロトコル名,ユーザー名と役割を申請書(Excel)に入力してサーバー管理者に依頼
2. サーバー運用責任者が不自然な申請がないか確認,サーバー管理者に実行を指示 3. サーバー管理者がExcelからSASプログラムを実行,Excelの情報が抽出される 4. SASプログラムがコマンドプロンプトを実行 5. コマンドプロンプトの実行ログをテキストに出力する 6. コマンドプロンプト実行後のアクセス権の状況を出力する 7. SASプログラム自体の実行ログを出力する
1
2 4
5
6, 7 3
3
ユーザー サーバー運用責任者 サーバー管理者
申請書 ログ
16
Excelの申請フォーム
ユーザーの追加,削除ともに対応
ユーザー名を入力すると,自動で入力される
サーバー管理者はSASやDOSコマンドに精通していなくても良い
サーバー運用責任者が入力内容を確認して, サーバー管理者が実行ボタンを押すとプログラムが走る
ユーザーはこれらの情報を 入力するだけで良い
project:
protocol:
PROG
VIEW
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
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名のフォルダ
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
12
内容
• アクセス権管理の必要性
• SASプログラムによる管理方法
– SASプログラムの役割
– SASプログラムのポイント
• まとめ
23
まとめ
• コンプライアンス,情報漏えいというリスク回避のためにも,誰が,いつ,どの情報にアクセスできる状態にあるかを管理することは重要である
• 上記への対応としてアクセス権を設定とログの管理をすることとし,そのアプローチとしてSASプログラムを利用する方法を考えた
– xコマンド
– PIPEエンジン
• 複数ソフトウェアの連携が必要な場合でもSASを用いることで管理体制を容易に整えることができた
• SASは,統計的な計算機能だけではなく幅広い応用が可能と言える – 出典[3]
24
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