説明

ストレージ装置及びアクセス制御プログラム

【課題】第三者によるホストへの成りすましを防止する。
【解決手段】デバイス11は、ホストが読み書きするデータを記憶する。記憶部12は、コマンド記憶部12aを有する。コマンド記憶部12aは、デバイスに関する情報を取得するコマンドを記憶する。制御部13は、コマンド取得部13aとアクセス判定部13bとを有する。コマンド取得部13aは、デバイス11に記憶されるデータへのアクセスを要求するホストが、アクセスを要求する場合にデバイス11に発行したコマンドを取得する。アクセス判定部13bは、コマンド取得部13aにより取得されたコマンドがコマンド記憶部12aに記憶されている場合に、アクセスを許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置及びアクセス制御プログラムに関する。
【背景技術】
【0002】
従来、複数のホストサーバによって共有されるストレージ装置は、ホストサーバ毎に特定の領域を割り当ててデータを保存する。つまり、ストレージ装置は、あるホストサーバが読み書きの対象とするデータ以外にも他のホストサーバからのデータを保存する。このような状況において、ストレージ装置は、悪意ある利用者によってデータを破壊されたり流出させられることを防止するために、特定の利用者に対してのみアクセス権限を与え、不特定の利用者からのアクセスを制限するアクセス制限を行っている。
【0003】
例えば、ストレージ装置は、ホストサーバ毎に一意に決まるiSCSI NameやWorld Wide Name(以下、「ホスト名」と呼ぶ)を用いてアクセスしたホストサーバを識別する。そして、ストレージ装置は、ホスト名が登録されているホストサーバのみからのアクセスを受付け、ホスト名が登録されていないホストサーバからのアクセスを拒絶する。このようにして、ストレージ装置は、不特定のホストサーバからのアクセスを制限する。
【0004】
具体例を用いて、ストレージ装置によるホストサーバの識別を説明する。図13は、従来技術に係るストレージ装置によるホスト識別を説明する図である。図13に示すストレージ装置は、アクセス許可ホストとしてホストAのホスト名「xxx1」を登録している。また、ストレージ装置は、IP(Internet Protocol)やSAN(Storage Area Network)などのネットワーク網を介してホストA及びホストBと接続されている。
【0005】
そして、ストレージ装置は、ホストAからアクセス要求を受付けた場合、ホストAのホスト名「xxx1」取得する。ストレージ装置は、取得したホスト名「xxx1」が登録済みであると判定し、ホストAからのアクセスを許可する。
【0006】
一方、ストレージ装置は、ホストBからアクセス要求を受付けた場合、ホストBのホスト名「xxx2」を取得する。ストレージ装置は、取得したホスト名「xxx2」が登録済みではないと判定し、ホストBからのアクセスを不許可にする。なお、ホスト名だけでなく、MACアドレスやIPアドレスを用いてホストサーバを識別する方法も利用されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005−134961号公報
【特許文献2】特開2005−85279号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した従来の技術では、第三者のなりすましを防止することができないという課題があった。具体的には、ストレージ装置は、第三者が何らかの方法によって正当なホスト名を入手してアクセスしてきた場合に、正当なホストサーバと第三者とを識別することができない。
【0009】
図13に示す例において、ストレージ装置は、未登録のホストBからのアクセス要求を受付けた場合、ホストBを識別するホスト名「xxx2」が登録済みではないことからアクセスを不許可にする。しかし、ホストBがホストAのホスト名を何らかの方法によって入手した場合には、ストレージ装置は、ホストBを登録済みのホストAと判定してしまう。したがって、ストレージ装置は、不正なホストBからのアクセスを許可してしまう。すなわち、ストレージ装置は、ホスト名でホストを識別した場合、登録済みのホスト名を何らかの方法によって入手した第三者のなりすましを防止することはできない。
【0010】
開示の技術は、上記に鑑みてなされたものであって、第三者のなりすましを防止することができるストレージ装置及びアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示するストレージ装置及びアクセス制御プログラムは、ホストが読み書きするデータを記憶する。また、ストレージ装置及びアクセス制御プログラムは、デバイスに関する情報を取得するコマンドを記憶する。また、ストレージ装置及びアクセス制御プログラムは、デバイスに記憶されるデータへのアクセスを要求するホストが、アクセスを要求する場合に発行したコマンドを取得する。そして、ストレージ装置及びアクセス制御プログラムは、コマンドが記憶されている場合に、アクセスを許可する。
【発明の効果】
【0012】
本願の開示するストレージ装置及びアクセス制御プログラムの一つの態様によれば、第三者のなりすましを防止することができるという効果を奏する。
【図面の簡単な説明】
【0013】
【図1】図1は、実施例1に係るストレージ装置の構成を示すブロック図である。
【図2】図2は、実施例2に係るストレージ装置の構成を示すブロック図である。
【図3】図3は、ホスト名記憶テーブルとして格納される情報の一例を示す図である。
【図4】図4は、コマンド記憶テーブルとして格納される情報の一例を示す図である。
【図5】図5は、コマンド記憶テーブルとして格納される情報の別例を示す図である。
【図6】図6は、コマンド取得部が取得するコマンドが格納されたCDBフォーマットの一例を示す図である。
【図7】図7は、ホストによって発行されたコマンドの一例を示す図である。
【図8】図8は、コマンド取得部が集計したホストの発行コマンドの一例を示す図である。
【図9】図9は、コマンド取得部が集計したホストの発行コマンドの別例を示す図である。
【図10】図10は、実施例2に係るストレージ装置による処理の処理手順を示すフローチャートである。
【図11】図11は、実施例2に係るストレージ装置によるアクセス判定処理の処理手順を示すフローチャートである。
【図12】図12は、アクセス制御プログラムを実行するコンピュータシステムの一例を示す図である。
【図13】図13は、従来技術に係るストレージ装置によるホスト識別を説明する図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示するストレージ装置及びアクセス制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0015】
図1は、実施例1に係るストレージ装置10の構成を示すブロック図である。図1に示すように、ストレージ装置10は、デバイス11と、記憶部12と、制御部13とを有する。また、ストレージ装置10は、ホスト20と接続されている。
【0016】
デバイス11は、ホストが読み書きするデータを記憶する。記憶部12は、コマンド記憶部12aを有する。コマンド記憶部12aは、デバイス11に関する情報を取得するコマンドを記憶する。制御部13は、コマンド取得部13aとアクセス判定部13bとを有する。コマンド取得部13aは、デバイス11に記憶されるデータへのアクセスを要求するホストが、アクセスを要求する場合にデバイス11に発行したコマンドを取得する。アクセス判定部13bは、コマンド取得部13aにより取得されたコマンドがコマンド記憶部12aに記憶されている場合に、アクセスを許可する。
【0017】
上述してきたように、本実施例1では、アクセス判定部13bは、ホストが発行したコマンドとコマンド記憶部12aが記憶するコマンドとが一致する場合にアクセスを許可する。したがって、ストレージ装置10は、ホストのなりすましを防止することができる。
【実施例2】
【0018】
[実施例2に係るストレージ装置の構成]
次に、図2を用いて、実施例2に係るストレージ装置100の構成を説明する。図2は、実施例2に係るストレージ装置100の構成を示すブロック図である。実施例2に係るストレージ装置100は、デバイス部110とコントロール部120とを有する。また、実施例2に係るストレージ装置100は、iSCSI(Internet Small Computer System Interface)を用いてIP(Internet Protocol)網に接続され、IP網を介してホスト300及びホスト400と接続される。ただし、ストレージ装置100が使用するネットワーク網200は、IP網に限定されない。例えば、ストレージ装置100は、ファイバーチャネルを用いた場合、ネットワーク網200としてSAN(Storage Area Network)を介してホスト300及びホスト400と接続することもできる。また、ホスト300は、iSCSI Name「xxx1」を有し、ホストID「1」が割り当てられる。また、ホスト400は、iSCSI Name「xxx2」を有し、ホストID「2」が割り当てられる。
【0019】
デバイス部110は、デバイス111〜114とデバイス制御部115とを有する。なお、デバイス112〜114は、デバイス111と同様の構成であるためここでは詳細な説明を省略する。デバイス111は、ホスト300及びホスト400からの要求に応じて読み書きされるデータを記憶する記憶部であり、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などである。
【0020】
デバイス制御部115は、デバイス111〜114への読み書きを実行する。例えば、デバイス制御部115は、デバイスインターフェース122を介して、制御部124からどのデバイスのどのメモリアドレスに対して読み書きを実行するのかを示した通知を受信する。そして、デバイス制御部115は、受信した通知に基づいて、読み書きを実行する。一例としては、デバイス制御部115は、ホスト300からデバイス111のVolumeAに記憶されたデータの読み出し要求を受付けた場合、デバイス111のVolumeAに記憶されたデータを読み出し、読み出したデータをコントロール部120へ送信する。
【0021】
コントロール部120は、ホストインターフェース121とデバイスインターフェース122と記憶部123と制御部124とを有し、ホスト300及びホスト400からの要求に応じて、デバイス部110へのデータの読み書きを制御する。
【0022】
ホストインターフェース121は、ホスト300及びホスト400から、デバイス部110へのデータの読み書きを実行する旨の要求を受付け、受付けた要求を制御部124へ転送する。例えば、ホストインターフェース121は、ホストから書き込み要求を受付けた場合、ホストから受信したデータをデバイス制御部115まで制御部124を介して転送する。また、ホストインターフェース121は、ホストから読み出し要求を受付けた場合、制御部124を介して、デバイス制御部115が読み出したデータを受け取り、ホスト300及び400へ転送する。
【0023】
デバイスインターフェース122は、制御部124からどのデバイスのどのメモリアドレスに対して読み書きを実行するのかを示した通知を受信し、受信した通知をデバイス制御部115へ転送する。例えば、デバイスインターフェース122は、ホストから書き込み要求を受付けた場合、制御部124を介して、ホストから受信したデータをデバイス制御部115へ転送する。また、デバイスインターフェース122は、ホストから読み出し要求を受付けた場合、デバイス制御部115が読み出したデータを受け取り、制御部124へ転送する。
【0024】
記憶部123は、例えば、半導体メモリ素子、又はハードディスクなどの記憶装置であり、ホスト名記憶テーブル123aとコマンド記憶テーブル123bとを有する。また、記憶部123は、ホスト300及びホスト400がデバイス111〜114のうちどのデバイスのどのVolumeにアクセスを許可されているのかについての情報を記憶する。この情報を参照することで、制御部124は、ホスト300及びホスト400から要求を受付けた場合に、デバイスインターフェース122に対して、どのデバイスのどのメモリアドレスに対して読み書きを実行するのかを通知することができる。したがって、ホスト300及びホスト400は、デバイス111〜114にデータの読み出しや書き込みを実行することができる。
【0025】
ホスト名記憶テーブル123aは、ストレージ装置100へのアクセスを許可されたホスト名を記憶する。図3は、ホスト名記憶テーブル123aとして格納される情報の一例を示す図である。例えば、ホスト名記憶テーブル123aは、図3に示すように、ホスト名を一意に識別する識別子である「ホスト名ID」と「ホスト名」とを対応付けて記憶する。具体的には、図3に示したホスト名記憶テーブル123aは、「ホスト名ID」が「1」のホストの「ホスト名」は、「xxx1」であることを示す。また、ホスト名記憶テーブル123aは、「ホスト名ID」が「2」のホストの「ホスト名」は、「xxx2」であることを示す。ここで、ホスト名記憶テーブル123aは、利用者によって予め登録される。
【0026】
コマンド記憶テーブル123bは、デバイス111〜114へのアクセスを許可されたホスト300及び400が発行したコマンドを記憶する。例えば、コマンド記憶テーブル123bは、ホスト300及び400がデバイス111〜114へ読み書きを実行する前に発行した、ストレージ装置の構成、種別や記憶容量などの情報を取得するSCSIコマンド一覧を記憶する。
【0027】
図4は、コマンド記憶テーブルとして格納される情報の一例を示す図である。例えば、コマンド記憶テーブル123bは、図4に示すように、「ホストID」と「発行volume」と「SCSIコマンド」と「発行回数」の項目を有する。ここで、「ホストID」は、ホスト名を一意に識別する識別子であり、「発行volume」は、デバイスが有する論理空間を特定する情報である。また、「SCSIコマンド」は、アクセスを許可されたホストが発行したコマンドの種別であり、「発行回数」は、アクセスを許可されたホストがストレージ装置の構成、種別や記憶容量などの情報を取得するにあたってコマンドを発行した回数である。すなわち、ログインを許可されたホストが、デバイスにアクセスするために必要な情報を取得するコマンドであって、ログイン後からデバイスへ読み書きを実行する前までの間に発行したコマンドの回数である。
【0028】
「Inquiry Standard」は、ストレージ装置100の構成を示す基本情報を取得するコマンドである。「Inquiry Page」は、ストレージ装置100の構成を示す詳細な情報を取得するコマンドである。「Report Luns」は、ストレージ装置100に存在するVolumeの情報を取得するコマンドである。「Test Unit Ready」は、ホストが指定したVolumeの状態がReadyであるか否かを示す情報を取得するコマンドである。「Start Stop Unit」は、ホストが指定したVolumeをアクセス可能にしたり、アクセスできない状態に変更するコマンドである。「Read Capacity(10)」は、10Byteのフォーマットで指定したVolumeの容量を示す情報を取得するコマンドである。「Read Capacity(16)」は、16Byteのフォーマットで指定したVolumeの容量を示す情報を取得するコマンドである。「Log Sense」は、ストレージ装置100が保持する統計情報の値やパラメーターの属性を取得するコマンドである。「Mode Sense(6)Page」は、6Byteのフォーマットでホストが指定したVolumeやストレージ装置100の情報を取得するコマンドである。情報はページで分かれており、ホストは、ページを指定することによって必要な情報を取得する。「Mode Sense(10)Page」は、10Byteのフォーマットでホストが指定したVolumeやストレージ装置100の情報を取得するコマンドである。情報はページで分かれており、ホストは、ページを指定することによって必要な情報を取得する。「Other Command」は、上述したコマンド以外に発行されたコマンドを総称する。
【0029】
具体的には、図4に示すコマンド記憶テーブル123bには、「ホストID」が「1」で識別されるホストから「発行volume」が「0」で識別されるデバイスに「Inquiry Standard」が3回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Inquiry Page」が3回、「Report Luns」が0回、「Test Unit Ready」が1回、「Start Stop Unit」が1回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Read Capacity(10)」が1回、「Read Capacity(16)」が0回、「Log Sense」が1回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Mode Sense(6)Page」が2回、「Mode Sense(10)Page」が0回、「Other Command」が1回発行されたことを示す情報が格納されている。
【0030】
また、具体例を用いてコマンド記憶テーブル123bとして格納される情報の別例を示す。図5は、コマンド記憶テーブルとして格納される情報の別例を示す図である。図5に示すコマンド記憶テーブル123bには、「ホストID」が「2」で識別されるホストから「発行volume」が「1」で識別されるデバイスに「Inquiry Standard」が1回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Inquiry Page」が3回、「Report Luns」が5回、「Test Unit Ready」が0回、「Start Stop Unit」が0回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Read Capacity(10)」が1回、「Read Capacity(16)」が0回、「Log Sense」が0回発行されたことを示す情報が格納されている。また、係るコマンド記憶テーブル123bには、「Mode Sense(6)Page」が0回、「Mode Sense(10)Page」が0回、「Other Command」が0回発行されたことを示す情報が格納されている。
【0031】
図2に戻り、制御部124は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。この制御部124は、ログイン判定部124aとコマンド取得部124bとアクセス判定部124cとを有する。また、制御部124は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0032】
ログイン判定部124aは、ホストからアクセス要求を受付けた場合に、当該ホストのログインを許可するか否かを判定する。例えば、ログイン判定部124aは、ホストインターフェース121が受付けたホストからのアクセス要求を受信し、受信した要求からホスト名を特定する。続いて、ログイン判定部124aは、特定したホスト名がホスト名記憶テーブル123aに格納されているか否かを判定する。ここで、ログイン判定部124aは、特定したホスト名がホスト名記憶テーブル123aに格納されていた場合には、特定したホスト名が登録済みのホストであると判定し、当該ホストのログインを許可する。一方、ログイン判定部124aは、特定したホスト名がホスト名記憶テーブル123aに格納されていない場合には、特定したホスト名が登録済みのホストではないと判定し、当該ホストのログインを許可しない。
【0033】
図3に示したホスト名記憶テーブルを用いて具体例を示す。例えば、ログイン判定部124aは、ホスト名が「xxx1」であるホストからアクセス要求を受付けた場合、ホスト名記憶テーブル123aの「ホストID」が「1」の項目にホスト名「xxx1」が格納されていると判定する。したがって、ログイン判定部124aは、ホスト名が「xxx1」であるホストからのログインを許可する。
【0034】
また、ログイン判定部124aは、ログインを許可するか否かの判定終了後に、コマンド取得部124bへログインを許可したことを通知する。また、ログイン判定部124aは、ログインを許可されたホストにコマンドを送信させるようにホストインターフェース121へ通知する。この結果、ホストは、ストレージ装置の構成、種別や記憶容量などの情報を取得するコマンドを発行することができる。
【0035】
コマンド取得部124bは、ログイン判定部124aからログインを許可した通知を受付けると、ホストがデバイスへ読み書きを実行する前に、ストレージ装置100及びデバイス111〜114の情報を取得するのに発行するコマンドを取得する。ここで、コマンド取得部124bは、ホスト300及びホスト400が送信したCDB(Command Descriptor Block)フォーマットからコマンドを取得する。
【0036】
図6を用いて、ホスト300及びホスト400が、ログインを許可された後からデバイスへ読み書きを実行する前までの間に送信したCDBフォーマットに格納されるコマンドを説明する。ここでホスト300及び400は、コマンドを送信することでストレージ装置100及びデバイス111〜114の構成、種別や記憶容量などの情報を取得する。図6は、コマンド取得部が取得するコマンドが格納されたCDBフォーマットの一例を示す図である。図6に示すように、CDBフォーマットは、「Bit」と「Byte」の項目を有し、「Bit」は、「0」〜「7」の8Bitを有する。「Byte」は、「0」〜「N」のByteを有しており、「N」が5以上31以下で表されるので6〜32Byteを有する。「0」Byteの項目にはSCSIコマンドを特定する「オペレーション・コード」が格納される。なお、「オペレーション・コード」によって特定されるSCSIコマンドについては、上述したので、ここでは詳細な説明を省略する。また、「1」以降のByteの項目には、パラメーター情報が格納される。
【0037】
図2に戻り、コマンド取得部124bは、ホストが発行した順番でSCSIコマンドを取得し、取得したコマンドを集計する。例えば、コマンド取得部124bは、ホスト300及びホスト400が発行したコマンドを取得して、どのホストが、どのVolumeへ、どのSCSIコマンドを何回発行したのかについての情報を集計する。
【0038】
図7及び図8を用いてコマンド取得部124bが集計するコマンドの具体例を示す。図7は、ホスト300によって発行されたコマンドの一例を示す図である。図8は、コマンド取得部124bが集計したホスト300の発行コマンドの一例を示す図である。
【0039】
まず、図7に示すように、コマンド取得部124bは、ログインを許可されたホスト300がデバイス111〜114へ読み書きを実行する前までの間に発行したコマンドの種別と発行回数とを対応付けて集計する。コマンド取得部124bが集計する結果は、後述するアクセス判定部124cによってホストがアクセスを許可されたホストであるかの判定に使用される。図7は、ホストIDが「1」で識別されるホスト300が、1番目に、Volume「0」のデバイスへ「Inquiry Standard」を発行したことを示す。また、図7は、ホスト300が、2番目に、コマンド「Inquiry Standard」、3番目に「Test Unit Ready」、4番目に「Start Stop Unit」をVolume「0」のデバイスへ発行したことを示す。また、ホスト300が、5番目に「Inquiry Standard」、6番目に「Ready Capacity(10)」、7番目に「Log Sense」、8番目に「Mode Sense(6)Page03」をVolume「0」のデバイスへ発行したことを示す。また、ホスト300が、9番目に「Mode Sense(6)Page04」、10番目に「Inquiry Page00」、11番目に「Inquiry Page80」をVolume「0」のデバイスへ発行したことを示す。また、ホスト300が、12番目に「Inquiry Page83」、13番目に「Persistent Reserve In」をVolume「0」のデバイスへ発行したことを示す。なお、「Persistent Reserve In」は、複数のホストがデバイスにアクセスする際の競合を解決するコマンドである。
【0040】
続いて、ホスト300が図7に示すコマンドを発行した場合を例に、コマンド取得部124bによるコマンドの集計を説明する。コマンド取得部124bは、1番目と2番目と5番目に「Inquiry Standard」が発行されたことを取得したので、「Inquiry Standard」が3回発行されたと集計する。また、コマンド取得部124bは、10番目と11番目と12番目に「Inquiry Page」が発行されたことを取得したので、「Inquiry Page」が3回発行されたと集計する。また、コマンド取得部124bは、「Report Luns」が発行されたことを取得していないので、「Report Luns」が0回発行されたと集計する。
【0041】
また、コマンド取得部124bは、3番目に「Test Unit Ready」が発行されたことを取得したので、「Test Unit Ready」が1回発行されたと集計する。また、コマンド取得部124bは、4番目に「Start Stop Unit」が発行されたことを取得したので、「Start Stop Unit」が1回発行されたと集計する。また、コマンド取得部124bは、6番目に「Read Capacity(10)」が発行されたことを取得したので、「Read Capacity(10)」が1回発行されたと集計する。また、コマンド取得部124bは、「Read Capacity(16)」が発行されたことを取得していないので、「Read Capacity(16)」が0回発行されたと集計する。また、コマンド取得部124bは、7番目に「Log Sense」が発行されたことを取得したので、「Log Sense」が1回発行されたと集計する。
【0042】
また、コマンド取得部124bは、8番目と9番目に「Mode Sense(6)Page」が発行されたことを取得したので、「Mode Sense(6)Page」が2回発行されたと集計する。また、コマンド取得部124bは、「Mode Sense(10)Page」が発行されたことを取得していないので、「Mode Sense(10)Page」が0回発行されたと集計する。また、コマンド取得部124bは、13番目に「Persistent Reserve In」が発行されたことを取得したので、「Persistent Reserve In」が1回発行されたと集計する。ただし、コマンド取得部124bは、「Persistent Reserve In」を「Other Command」として扱うので、「Other Command」が1回発行されたと集計する。
【0043】
以上の処理を実行することで、コマンド取得部124bは、図8に示すような集計結果を得る。図8は、「ホストID」が「1」であるホスト300がVolume「0」へ発行したSCSIコマンドの種別と発行回数をコマンド取得部124bが集計した結果を示す。
【0044】
また、コマンド取得部124bが、同様にして、ログインを許可されたホスト400がデバイス111〜114へ読み書きを実行する前までの間に発行したコマンドの種別と発行回数とを対応付けて集計した結果を図9に示す。なお、図9は、コマンド取得部124bが集計したホスト400の発行コマンドの別例を示す図である。
【0045】
図9の例では、「ホストID」が「2」で識別されるホスト400が「発行Volume」が「1」で識別されるデバイスへアクセスを要求する場合に発行したコマンド毎の発行回数を示す。コマンド取得部124bは、「Inquiry Standard」が2回、「Inquiry Page」が0回、「Report Luns」が1回、「Test Unit Ready」が1回発行されたと集計する。また、コマンド取得部124bは、「Start Stop Unit」が0回、「Read Capacity(10)」が1回、「Read Capacity(16)」が0回、「Log Sense」が0回発行されたと集計する。また、コマンド取得部124bは、「Mode Sense(6)Page」が2回、「Mode Sense(10)Page」が0回、「Other Command」が0回発行されたと集計する。なお、コマンド取得部124bは、「Persistent Reserve In」を「Other Command」として集計する。
【0046】
また、コマンド取得部124bは、集計が終了した場合、集計した結果を制御部124が有する内部メモリ等に格納する。続いて、コマンド取得部124bは、集計したコマンドがコマンド記憶テーブル123bとして登録済みであるか否かを判定する。例えば、コマンド取得部124bは、集計したコマンドの「ホストID」及び「発行Volume」と同一の「ホストID」及び「発行Volume」とを有するコマンド記憶テーブル123bが存在するか否かを判定する。
【0047】
コマンド取得部124bは、集計したコマンドがコマンド記憶テーブル123bとして登録済みではないと判定した場合、集計したコマンドをコマンド記憶テーブル123bとして格納する。例えば、同一の「ホストID」及び「発行Volume」を有するコマンド記憶テーブル123bが存在しない場合、コマンド取得部124bは、コマンド記憶テーブル123bが登録済みではないと判定する。係る場合は、例えば、ホストが最初にストレージ装置へアクセスを要求した場合である。また、コマンド取得部124bは、集計したコマンドの「ホストID」及び「発行Volume」と同一のコマンド記憶テーブル123bが登録済みではない旨をアクセス判定部124cへ通知する。
【0048】
一方、コマンド取得部124bは、集計したコマンドがコマンド記憶テーブル123bとして登録済みである場合、アクセス判定部124cへ通知し、集計したコマンドの内容が登録済みの内容と同一であるか否かを判定させる。具体的には、コマンド取得部124bは、図8に示した集計結果の「ホストID」から「1」を特定し、図4に示したコマンド記憶テーブル123bに格納された「ホストID」が同一であると判定する。
【0049】
図2に戻り、アクセス判定部124cは、コマンド取得部124bによって同一のホストIDを有するコマンドが存在すると判定された場合に、コマンド取得部124bから通知を受付ける。そして、アクセス判定部124cは、コマンド取得部124bが集計したコマンドの内容がコマンド記憶テーブル123bに格納された情報の内容と同一であるか否かを判定する。例えば、アクセス判定部124cは、「SCSIコマンド」に格納された情報と「発行回数」に格納された情報とが一致するか否かを判定する。
【0050】
アクセス判定部124cは、コマンド記憶テーブル123bに格納された情報と、コマンド取得部124bが集計した情報の内容の両者が完全に一致した場合に、アクセスを許可されたホストであると判定し、当該ホストからのアクセスを許可する。具体例として、コマンド取得部124bが図8に示す集計結果を得た場合を示す。アクセス判定部124cは、図4に示したコマンド記憶テーブル123bと図8に示す集計結果を比較し、コマンドが一致するか否かを判定する。
【0051】
具体的には、アクセス判定部124cは、記憶部123から図4に示したコマンド記憶テーブル123bと制御部124が有する内部メモリ等から図8に示したコマンドの集計結果とを読み出す。続いて、アクセス判定部124cは、図4に示したコマンド記憶テーブル123bの「Inquiry Standard」と、図8に示す集計結果の「Inquiry Standard」が共に3回であることから、発行回数が同一であると判定する。同様に、アクセス判定部124cは、コマンド記憶テーブル123bと集計結果における「Inquiry Page」、「Report Luns」、「Test Unit Ready」の発行回数が同一であると判定する。また、アクセス判定部124cは、コマンド記憶テーブル123bと集計結果における「Start Stop Unit」、「Read Capacity(10)」、「Read Capacity(16)」の発行回数が同一であると判定する。また、アクセス判定部124cは、コマンド記憶テーブル123bと集計結果における「Log Sense」、「Mode Sense(6)Page」、「Mode Sense(10)Page」の発行回数が同一であると判定する。また、アクセス判定部124cは、コマンド記憶テーブル123bと集計結果における「Other Command」の発行回数が同一であると判定する。
【0052】
したがって、アクセス判定部124cは、コマンド取得部124bが図8に示す集計結果を得た場合、アクセスを要求したホスト300がアクセス要求を許可されたホスト300であると判定する。そして、アクセス判定部124cは、アクセスを要求したホスト300のアクセスを許可する。
【0053】
一方、アクセス判定部124cは、コマンド記憶テーブル123bに格納された情報と、コマンド取得部124bが集計した情報の内容が完全には一致しないと判定した場合、ホストがなりすましであると判定し、当該ホストからのアクセスを拒絶する。すなわち、アクセス判定部124cは、ホストとの接続を切断する。具体例として、アクセス判定部124cが図9に示す集計結果を得た場合を示す。アクセス判定部124cは、図5に示したコマンド記憶テーブル123bと図9に示す集計結果を比較し、コマンドが一致するか否かを判定する。
【0054】
具体的には、アクセス判定部124cは、図5に示したコマンド記憶テーブル123bの「Inquiry Standard」が1回であり、図9に示す集計結果の「Inquiry Standard」が2回であることから、発行回数が同一ではないと判定する。したがって、アクセス判定部124cは、コマンド取得部124bが図9に示す集計結果を得た場合、アクセスを要求したホスト400がアクセス要求を許可されたホスト400ではないと判定する。そして、アクセス判定部124cは、アクセスを要求したホスト400は、なりすましのホストであると判定し、当該ホストからのアクセスを拒絶する。また、アクセス判定部124cは、当該ホストとの間で確立されたコネクションを切断する。
【0055】
また、アクセス判定部124cは、コマンド取得部124bからコマンド記憶テーブル123bが登録済みではない旨の通知を受付けた場合、アクセスを要求したホストのアクセスを許可する。
【0056】
[ストレージ装置による処理の処理手順]
次に、図10を用いて、ストレージ装置100による処理の処理手順を説明する。図10は、実施例2に係るストレージ装置による処理の処理手順を示すフローチャートである。ログイン判定部124aは、ホストからのログインを受信した場合(ステップS101、Yes)、ホスト名が登録されているか否かを判定する(ステップS102)。ログイン判定部124aは、ホスト名が登録されていないと判定した場合(ステップS102、No)、ホストからのログインを拒絶し(ステップS106)、処理を終了する。
【0057】
一方、ログイン判定部124aは、ホスト名が登録されていると判定した場合(ステップS102、Yes)、ホストのログインを許可する(ステップS103)。続いて、コマンド取得部124bは、ホストがデバイスへ読み書きを実行する前に、ストレージ装置100及びデバイス111〜114の情報を取得するのに発行したコマンドを取得する(ステップS104)。そして、ストレージ装置100は、取得したコマンドの内容からアクセスを要求したホストのアクセスを許可するか否かを判定するアクセス判定処理を実行し(ステップS105)、処理を終了する。
【0058】
なお、ストレージ装置100は、ホストのアクセスを許可した場合、ホストとのコネクションが切断されるまので間、ここで説明したステップS101〜ステップS105の処理を省略することもできる。例えば、ストレージ装置100は、エラーを検出した場合やコネクションを再確立する場合に、ステップS101〜ステップS105の処理を実行するようにしてもよい。
【0059】
[ストレージ装置によるアクセス判定処理の処理手順]
次に、図11を用いて、ストレージ装置100によるアクセス判定処理の処理手順を説明する。図11は、実施例2に係るストレージ装置100によるアクセス判定処理の処理手順を示すフローチャートである。なお、この処理は、図10のステップS105に対応する。
【0060】
ステップS104の処理でホストが発行したコマンドを取得した場合、コマンド取得部124bは、集計したコマンドのホストIDと同一のホストIDを有するコマンド記憶テーブル123bが存在するか否かを判定する(ステップS201)。コマンド取得部124bは、コマンド記憶テーブル123bが存在しないと判定した場合(ステップS201、No)、集計したコマンドをコマンド記憶テーブル123bとして格納する(ステップS204)。続いて、アクセス判定部124cは、アクセスを要求したホストのアクセスを許可し(ステップS203)、処理を終了する。
【0061】
コマンド取得部124bによって当該コマンド記憶テーブル123bが存在すると判定された場合(ステップS201、Yes)、アクセス判定部124cは、情報が一致するか否かを判定する(ステップS202)。すなわち、アクセス判定部124cは、コマンド記憶テーブル123bが記憶する情報と、コマンド取得部124bが取得したコマンドとが一致するか否かを判定する。
【0062】
ここで、アクセス判定部124cは、情報が一致すると判定した場合(ステップS202、Yes)、アクセスを要求したホストのアクセスを許可し(ステップS203)、処理を終了する。一方、アクセス判定部124cは、情報が一致しないと判定した場合(ステップS202、No)、アクセスを要求したホストのアクセスを拒絶し(ステップS205)、処理を終了する。
【0063】
[実施例2の効果]
本実施例に係るストレージ装置100において、ログイン判定部124aは、アクセスを要求したホストのホスト名が登録されているか否かを判定する。ログイン判定部124aによってアクセスを要求したホストのホスト名が登録されていた場合には、コマンド取得部124bは、ホストが発行したコマンドを取得し、取得したコマンドを集計する。アクセス判定部124cは、コマンド取得部124bが集計したコマンドが、アクセスを許可されたホストが発行するコマンドと一致するか否かを判定し、一致する場合にアクセスを許可する。また、コマンド記憶テーブル123bとして格納されるコマンドは、ホスト300及びホスト400を構成するハードウェアやソフトウェアによって異なる。すなわち、同じホストであれば、発行するコマンドも同じである。
【0064】
したがって、本実施例2では、何らかの方法によってホスト名を入手した第三者によるなりすましを防止することができる。この結果、ストレージ装置100は、第三者によるデータの破壊及び第三者へのデータの漏洩を防止することができる。
【実施例3】
【0065】
ところで、本願の開示するストレージ装置は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例3では、本願の開示するストレージ装置の他の実施例について説明する。
【0066】
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【0067】
コマンド記憶テーブル123bには、ホストが最初にストレージ装置100へアクセスを要求した場合、コマンド取得部124bが集計したコマンドが格納されるものとして説明したが、これに限定されるものではない。例えば、コマンド記憶テーブル123bには、ホストとストレージ装置との関係によって予測されたものを事前に格納しておいてもよい。例えば、ホストの機種種別、使用するOS(Operating System)、Host Bus Adapterやストレージ装置のRAID、ディスクなどの種別によって予測される。
【0068】
コマンド取得部124bが集計したコマンドは、制御部124が有する内部メモリ等に格納するものとして説明したが、これに限定されるものではない。例えば、コマンド取得部124bは、記憶部123が有する記憶領域にコマンド取得部124bが集計したコマンドを格納してもよい。
【0069】
コマンド取得部124bは、「Persistent Reserve In」を「Other Command」として集計するものとして説明したが、これに限定されるものではない。例えば、その他のコマンドを「Other Command」として集計してもよい。具体的には、コマンド取得部124bは、「Mode Sense(6)Page」及び「Mode Sense(10)Page」を「Other Command」として集計してもよい。
【0070】
また、アクセス判定部124cが判定に用いるコマンドの数は、任意に選択し、組み合わせることが可能である。例えば、アクセス判定部124cは、「Inquiry Standard」、「Inquiry Page」、「Report Luns」、「Test Unit Ready」、「Start Stop Unit」のみを用いてアクセスを判定してもよい。また、アクセス判定部124cは、図4及び図5に記載したSCSIコマンド以外のコマンドを用いてアクセスを判定してもよい。
【0071】
また、アクセス判定部124cは、コマンドの順番を考慮して判定してもよい。例えば、コマンド取得部124bは、取得したコマンドの種類と取得した順番とを対応付けて制御部124の内部メモリ等に格納する。また、コマンド記憶テーブル123bには、ホストが発行したコマンドの種類と発行した順番とを対応付けて格納される。そして、アクセス判定部124cは、コマンド記憶テーブル123bに格納された情報と、コマンド取得部124bが取得した情報の内容が完全に一致するか否か判定する。
【0072】
また、図示した記憶部が格納する情報は一例に過ぎず、必ずしも図示のごとく情報が格納される必要はない。例えば、コマンド記憶テーブル123bとして格納されるコマンドは、他のSCSIコマンドを格納してもよい。具体的には、コマンド記憶テーブル123bは、SCSIコマンドとして「SPACE」や「Read Position」を格納してもよい。
【0073】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、ストレージ装置100は、コマンド取得部124bとアクセス判定部124cとは統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0074】
(プログラム)
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【0075】
図12は、アクセス制御プログラムを実行するコンピュータシステム500を示す図である。図12に示すように、コンピュータシステム500は、RAM510と、CPU520と、ROM530と、入力装置540と、出力装置550と、媒体読取装置560と、ネットワークインターフェース570とを有する。ここで、ROM530には、上記実施例と同様の機能を発揮するプログラムを予め記憶されている。つまり、図10に示すように、ROM530には、コマンド取得プログラム531とアクセス判定プログラム532とが予め記憶されている。
【0076】
そして、CPU520には、コマンド取得プログラム531とアクセス判定プログラム532とを読み出してRAM510に展開する。そして、CPU520は、コマンド取得プログラム531をコマンド取得プロセス521として実行する。またCPU520は、アクセス判定プログラム532をアクセス判定プロセス522として実行する。なお、コマンド取得プロセス521は、図2に示したコマンド取得部124bに対応する。同様に、アクセス判定プロセス522は、アクセス判定部124cに対応する。
【0077】
ところで、上記したプログラム531及び532は、必ずしもROM530に記憶させておく必要はない。例えば、コンピュータシステム500に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム500の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータシステム500に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム500がこれらからプログラムを読み出して実行するようにしてもよい。
【0078】
すなわち、このプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータシステム500は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム500によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0079】
10 ストレージ装置
11 デバイス
12 記憶部
12a コマンド記憶部
13 制御部
13a コマンド取得部
13b アクセス判定部
20 ホスト
100 ストレージ装置
110 デバイス部
111、112、113、114 デバイス
115 デバイス制御部
120 コントロール部
121 ホストインターフェース
122 デバイスインターフェース
123 記憶部
123a ホスト名記憶テーブル
123b コマンド記憶テーブル
124 制御部
124a ログイン判定部
124b コマンド取得部
124c アクセス判定部
200 ネットワーク網
300、400 ホスト
500 コンピュータシステム
510 RAM
520 CPU
521 コマンド取得プロセス
522 アクセス判定プロセス
530 ROM
531 コマンド取得プログラム
532 アクセス判定プログラム
540 入力装置
550 出力装置
560 媒体読取装置
570 ネットワークインターフェース

【特許請求の範囲】
【請求項1】
ホストが読み書きするデータを記憶するデバイスと、
前記デバイスに関する情報を取得するコマンドを記憶するコマンド記憶部と、
前記デバイスに記憶されるデータへのアクセスを要求する前記ホストが、前記アクセスを要求する場合に、前記デバイスに発行したコマンドを取得するコマンド取得部と、
前記コマンド取得部により取得されたコマンドが前記コマンド記憶部に記憶されている場合に、前記アクセスを許可するアクセス判定部と
を有することを特徴とするストレージ装置。
【請求項2】
前記デバイスへのアクセスを以前に実施したホストが、当該アクセスを要求する場合に、前記デバイスに発行したコマンドを前記コマンド記憶部に格納するコマンド格納部をさらに有することを特徴とする請求項1に記載のストレージ装置。
【請求項3】
前記コマンド記憶部は、前記コマンドとして、当該ストレージ装置へのログインが許可されたホストごとに、前記コマンド発行対象のボリュームに発行されたコマンドの種別と発行されたコマンドの回数とを記憶し、
前記コマンド取得部は、前記ログインを許可されたホストが前記アクセスを要求する場合に、前記デバイスに発行したコマンドとして、前記コマンド発行対象のボリュームに発行されたコマンドの種別と発行されたコマンドの回数とを取得することを特徴とする請求項1または2に記載のストレージ装置。
【請求項4】
前記アクセス判定部は、前記コマンド取得部により取得されたコマンドと前記コマンド記憶部に記憶されているコマンドとが完全に一致する場合に、前記アクセスを許可することを特徴とする請求項1〜3のいずれか一つに記載のストレージ装置。
【請求項5】
前記コマンド記憶部は、前記デバイスへ発行されるコマンドと発行される順番とを対応付けて記憶し、
前記コマンド取得部は、前記ホストが前記アクセスを要求する場合に、前記デバイスに発行されるコマンドと、前記コマンドが発行される順番とを対応付けて取得し、
前記アクセス判定部は、前記コマンド取得部により取得されたコマンドと順番とが対応付けられたコマンドが、前記コマンド記憶部に記憶されている場合に、前記アクセスを許可することを特徴とする請求項1〜3のいずれか一つに記載のストレージ装置。
【請求項6】
ストレージ装置に、
ホストが読み書きするデータを記憶するデバイスへのアクセスを要求するホストが、前記アクセスを要求する場合に、前記デバイスに発行したコマンドを取得するコマンド取得手順と、
前記コマンド取得手順によって取得されたコマンドが、前記デバイスに関する情報を取得するコマンドを記憶する前記コマンド記憶部に記憶されている場合に、前記アクセスを許可するアクセス判定手順と
を実行させることを特徴とするアクセス制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−14594(P2012−14594A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−152428(P2010−152428)
【出願日】平成22年7月2日(2010.7.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】