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 エンジン, グローバル化 1
内容 アクセス権管理の必要性 SAS プログラムによる管理方法 SAS プログラムの役割 SAS プログラムのポイント まとめ 3 医薬品業界の現状 開発のグローバル化 - 多極同時開発, 国際共同治験 etc 開発に関わる人の増加, 多様化 - 海外子会社, 提携会社,CRO etc 臨床データや解析結果など, 機密性の高い情報管理の重要性が増している - コンプライアンス違反のリスク - 情報漏えいのリスク 4 2
シオノギの解析環境 ( これまで ) SAS サーバー ( 社内 ) SAS サーバー ( 社内 ) Project 1: Project 4: Project 2: SDD Project 3: 各極で独立したサーバーを持っていた 作業も独立で行っていたため, 情報管理は比較的容易であった 5 シオノギの解析環境 ( これから ) CPU: Intel Xeon Processor X5647 2.93 GHz, 4 Cores/8 Threads RAM: 16GB DISK: 2TB (RAID1) SASサーバー Project 1: Project 3: Project 2: SDD 本社と子会社でドメイン間の信頼関係を結び, ユーザーアカウントの一元管理が可能となった. 一方で, 役割も多様となり情報管理も複雑になっている Project 2: 6 3
シオノギの解析環境 ( これから ) PJ 内での情報管理 STAT,DM,Programmer によって作成 閲覧すべき情報が異なる PJ 外での情報管理 PJ 外の人には, 機密情報にアクセスさせるべきでない 機密性の高くない情報は PJ 外の人にも参照可能としたい 統計解析計画書 (SAP), 各種仕様書 (spec 類 ) など ノウハウの蓄積 PJ 外の人も参照可能となるように Viewer という役割を追加した 7 シオノギの解析環境 ( これから ) 役割 STAT DM Programmer Viewer 特徴 当該 PJ の統計家 - 解析計画書作成 当該 PJ の DM - SDTM spec 作成,SDTM 作成 当該 PJ のプログラマー - ADaM spec 作成,ADaM 作成, 解析資料作成 当該 PJ 以外の人 - 他の PJ の機密でない情報は閲覧可能 業務プロセスごとに編集可能, 閲覧のみ, 閲覧不可, といった具合に権利を付与する 業務プロセスごとに作業フォルダを分けることとした 8 4
シオノギでの主なプログラミング業務プロセス DM DM,Programmer STAT,Programmer Programmer SDTM Data Raw Data ADaM Data TLF SDTM Spec SAP, ADaM Spec TLF Spec, TLF Shells ( 解析資料 ) DM 以外編集権は必要ない Programmer, DM は編集権が必要 STAT は閲覧で良い Programmer, STAT は編集権が必要 DM は閲覧で良い Programmer は編集権が必要 STAT は閲覧で良い ファイルの誤編集などのヒューマンエラーを防ぐ必要がある Viewer は Data 類は閲覧できないが,spec 類は閲覧できる 9 ectd への対応 FDA が ectd で求める module5 の構造 シオノギが作ったフォルダ構造 SDTM や ADaM 関連のフォルダの構造が示されている FDA が提示した構造に加え, TLF や SAP,TLF shells を格納するフォルダを追加した社内独自のフォルダ構造を構築した フォルダを template 化 ( 全 115folders) 上記で構築したフォルダ別, 役割別にアクセス権を細かく定義していった 出典 [1] 10 5
シオノギが作ったフォルダ構造 ( 例 ) Viewer stat R R C C XPT R R 権限 C R N 特徴 Read and Write Read Only Cannot Access N N 11 アクセス権管理の具体的方法 PJ と役割に応じてユーザーグループを作成する (ex. PJ 名 _STAT) 役割に応じて, フォルダごとにユーザーグループのアクセス権を設定する Ex.) ADaM spec,tlf spec 格納フォルダは Viewer が閲覧可能である Ex.) TLF 出力フォルダは Viewer は閲覧すべきでない アクセス権管理が複雑になってしまうことは不可避であった PJ メンバーの追加, 異動による変更には機敏に対応する必要がある 手動での管理には限界があるため自動化したい! 12 6
アクセス権管理の自動化 アクセス権設定を容易に行いたい 複雑な設定に対応した DOS コマンドで行う サーバー管理者, ユーザーの使いやすさも重視したい 各 PJ 主担当者がアクセス権設定の申請を行う手順が複雑になると不便であるため,Excel に数個の情報を入力してもらうだけにした サーバー管理者が SAS や DOS コマンドに精通していないことを想定した アクセス権設定の変遷も辿れるようにしたい 有事の際に参照する必要があるため, ログを出力し管理を行う 自動で Excel から情報を読み取り,DOS コマンドでアクセス権を設定し, それらの管理ログを出力をする必要があった データハンドリングが容易で, 他のソフトウェアとの連携も可能な SAS で管理することとした 13 内容 アクセス権管理の必要性 SAS プログラムによる管理方法 SAS プログラムの役割 SAS プログラムのポイント まとめ 14 7
SAS プログラムによる管理体制 申請書 3 6, 7 ログ 1 2 3 4 5 ユーザーサーバー運用責任者サーバー管理者 1. PJ 主担当者が,PJ 名, プロトコル名, ユーザー名と役割を申請書 (Excel) に入力して サーバー管理者に依頼 2. サーバー運用責任者が不自然な申請がないか確認, サーバー管理者に実行を指示 3. サーバー管理者がExcelからSASプログラムを実行,Excelの情報が抽出される 4. SASプログラムがコマンドプロンプトを実行 5. コマンドプロンプトの実行ログをテキストに出力する 6. コマンドプロンプト実行後のアクセス権の状況を出力する 7. SASプログラム自体の実行ログを出力する 15 Excel の申請フォーム project: protocol: ユーザーはこれらの情報を入力するだけで良い ユーザーの追加, 削除ともに対応 VIEW サーバー管理者は SAS や DOS コマンドに精通していなくても良い ユーザー名を入力すると, 自動で入力される サーバー運用責任者が入力内容を確認して, サーバー管理者が実行ボタンを押すとプログラムが走る 16 8
SAS プログラムの役割 (1/2) template フォルダのコピーとユーザーグループのフォルダへの アクセス権付与 申請フォームの情報をマクロ変数化する template をコピーして PJ 名, protocol 名でリネームする &protocol. &project. template template 新規の PJ であれば, ユーザーグループを作成する - x net localgroup &project._stat /add ; &project.-&protocol. フォルダごとユーザーグループごとにアクセス権を割り当てる - x icacls./&project.-&protocol./analysis /grant:r &project._:(ci)(r) ; - x icacls./&project.-&protocol./tabulations /grant:r &project._dm:(ci)(r) ; ( 全 115 folders) 17 SAS プログラムの役割 (2/2) ユーザーグループへのユーザーの割り当て 申請フォームの情報をマクロ変数 & データセット化する矛盾する申請 ( グループに割り当てられていないのに削除 etc) があればエラーを出力 VIEWER VIEWER DOS コマンドを格納した変数を作る x コマンドで実行 VIEWER &project._[group name] 18 9
SAS プログラムのポイント (1/3) Excel からの SAS プログラム実行 VBA, SAS バッチ実行 retval = Shell( [SAS.exe ファイルのパス ] -config D: Progra~1 SAS SAS9.2 SASFoundation 9.2(32- bit) nls 1d SASV9.CFG -sysin [SAS プログラムファイルのパス ] -log [ 保存するログのパス ]") 指定した SAS プログラムを実行してそのログを指定したファイル名で残すことが可能 19 SAS プログラムのポイント (2/3) 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 名のフォルダ 20 10
SAS プログラムのポイント (3/3) ユーザーグループの情報などを取得 PIPE エンジン, net localgroup など 現状のユーザーグループを確認する場合 filename data1 PIPE "net localgroup ; data temp ; infile data1 dlm='09'x ; length TEMP $100 ; input TEMP $ ; run; PIPEエンジン 1コマンド実行 2 結果を受け渡し _VIEWER _VIEWER _VIEWER 21 ログの出力 開発品フォルダ全てのアクセス権を PIPE エンジン,x コマンドなどの機能を利用して SAS で読み込み,Excel へ出力する (Excel であれば容易に管理可能と考えた ) _STAT _VIEWER アクセス権の変遷を辿ることが可能 22 11
内容 アクセス権管理の必要性 SAS プログラムによる管理方法 SAS プログラムの役割 SAS プログラムのポイント まとめ 23 まとめ コンプライアンス, 情報漏えいというリスク回避のためにも, 誰が, いつ, どの情報にアクセスできる状態にあるかを管理することは重要である 上記への対応としてアクセス権を設定とログの管理をすることとし, そのアプローチとして SAS プログラムを利用する方法を考えた x コマンド PIPE エンジン 複数ソフトウェアの連携が必要な場合でも SAS を用いることで管理体制を容易に整えることができた SAS は, 統計的な計算機能だけではなく幅広い応用が可能と言える 出典 [3] 24 12
Reference [1] Study Data Specifications version 2.0, FDA(2012) [2] Windows DOS/ コマンドプロンプト辞典, 飯島弘文, 翔泳社 (2003) [3] FDA Submission のための define.pdf 作成事例 -SAS によるファイル変換の Automation 化 -, 豊泉樹一郎, 北西由武, 吉田祐樹, 平井健太,SAS ユーザー総会 (2013) 25 13