(57)【要約】【課題】ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とする。【解決手段】情報処理装置が扱うデータを、ファイル単位でアクセスするファイルシステムによりアクセスするデータ管理システムであって、アクセスするファイルに関する細粒度アクセス情報を保持する。細粒度アクセス情報は、ファイルの位置と、そのファイルに対するアクセス権、リテンション情報を含み、細粒度アクセス情報に基づいて、ファイルの情報処理装置からのアクセスを制御する。ファイルは、ブロックチェーンブロックを含み、細粒度アクセス情報は、ブロックチェーンブロックを含んだファイルに、拡張属性として保持される。【選択図】  図１
2020126409.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理システムであって、
前記データは、複数のサブデータを有し、
細粒度アクセス情報は、サブデータの前記データ内での位置と、前記サブデータに対するアクセス権の規定を含み、
前記プロセッサは、前記細粒度アクセス情報に基づいて、前記データ内のサブデータへのアクセスを制御することを特徴とするデータ管理システム。
【請求項２】
前記細粒度アクセス情報は、前記データごとに作成されて、前記データ内に格納され、  前記プロセッサは、アクセス対象となるデータに格納された細粒度アクセス情報に基づいて、前記サブデータへのアクセスを制御することを特徴とする請求項１に記載のデータ管理システム。
【請求項３】
前記データに対してアクセス制御情報が設定されており、
前記アクセス制御情報に基づき前記データに対してアクセス可能な場合に、前記データ内の細粒度アクセス制御情報にアクセスして前記サブデータへのアクセス可否を判断することを特徴とする請求項２に記載のデータ管理システム。
【請求項４】
前記細粒度アクセス情報は、さらに、前記サブデータを維持するリテンション情報を含み、
前記リテンション情報に基づいて前記サブデータへのアクセスを制御することを特徴とする請求項１に記載のデータ管理システム。
【請求項５】
前記データは、ブロックチェーンブロック格納ファイルであり、前記サブデータは、ブロックチェーンブロック内のトランザクションデータであり、
前記アクセス制御情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、属性情報として保持され、
前記細粒度アクセス情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、拡張属性として保持されることを特徴とする請求項３に記載のデータ管理システム。
【請求項６】
前記プロセッサは、
前記細粒度アクセス情報を設定する際に、
複数のデータをグループ分けし、
同じグループに属する複数のデータに対して、一括して前記細粒度アクセス情報を設定することを特徴とする請求項２に記載のデータ管理システム。
【請求項７】
前記データをバックアップする際に、
バックアップするデータに関する前記細粒度アクセス情報を、バックアップデータの一部として保持することを特徴とする請求項１に記載のデータ管理システム。
【請求項８】
プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理方法であって、
前記データは、複数のサブデータを有し、
細粒度アクセス情報は、サブデータの前記データ内での位置と、前記サブデータに対するアクセス権の規定を含み、
前記プロセッサは、前記細粒度アクセス情報に基づいて、前記データ内のサブデータへのアクセスを制御するステップを有することを特徴とするデータ管理方法。
【請求項９】
前記細粒度アクセス情報は、前記データごとに作成されて、前記データ内に格納され、  前記プロセッサは、アクセス対象となるデータに格納された細粒度アクセス情報に基づいて、前記サブデータへのアクセスを制御することを特徴とする請求項８に記載のデータ管理方法。
【請求項１０】
前記データに対してアクセス制御情報が設定されており、
前記アクセス制御情報に基づき前記データに対してアクセス可能な場合に、前記データ内の細粒度アクセス制御情報にアクセスして前記サブデータへのアクセス可否を判断することを特徴とする請求項９に記載のデータ管理方法。
【請求項１１】
前記細粒度アクセス情報は、さらに、前記サブデータを維持するリテンション情報を含み、
前記リテンション情報に基づいて前記サブデータへのアクセスを制御することを特徴とする請求項８に記載のデータ管理方法。
【請求項１２】
前記データは、ブロックチェーンブロック格納ファイルであり、前記サブデータは、ブロックチェーンブロック内のトランザクションデータであり、
前記アクセス制御情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、属性情報として保持され、
前記細粒度アクセス情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、拡張属性として保持されることを特徴とする請求項１０に記載のデータ管理方法。
【請求項１３】
前記プロセッサは、
前記細粒度アクセス情報を設定する際に、
複数のデータをグループ分けし、
同じグループに属する複数のデータに対して、一括して前記細粒度アクセス情報を設定するステップを有することを特徴とする請求項９に記載のデータ管理方法。
【請求項１４】
前記データをバックアップする際に、
バックアップするデータに関する前記細粒度アクセス情報を、バックアップデータの一部として保持することを特徴とする請求項８に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理システムおよびデータ管理方法に係り、特に、ブロックチェーンシステムやＲＤＢＭＳ（Relational Database Management System）のようなアプリケシーションにおいて、データの細粒度アクセスをサポートするのに好適なデータ管理システムおよびデータ管理方法に関する。
【背景技術】
【０００２】
近年、プライバシー保護のための新しい権利の概念として、いわゆる「忘れられる権利」が主張されるようになり、各国や地域で法整備が進んでいる。忘れられる権利が規定されると、個人データを取り扱う組織は、個人データの主体（例えば、預金口座の所持者)からの申し出に応じて、個人データを削除する義務を伴うことになる。ただし、実際には必ずしも即時削除できるわけではなく、データによっては、他の法律等の関係により、一定のリテンション期間(削除猶予期間)を設けたり、その間特定の者(例えば、法令に定められた 監査者)以外のアクセスを拒否したりする必要がある。
【０００３】
上記のような個人データのアクセス制御や削除は、ブロックチェーンやデータベースが格納されるストレージボリュームやファイル、オブジェクトといった単位よりも細かい単位で実行できる必要がある。例えば、ブロックチェーンでは、ブロックチェーンブロック内のトランザクションデータの単位で個人データが含まれるため、この単位でアクセス制御と削除を実行しなければならない。
【０００４】
また、例えば、監査向けアプリケーションや、データ分析アプリケーションバックアップソフトウェアにより、ブロックチェーンやデータベースは、ブロックチェーンシステムやＲＤＭＳを介さずにアクセスされたり、別のストレージへ複製（または移動）されて利用・活用されたりする。このような場合であっても、意図しないアクセスを防ぎ、同様に上記要件を満たす必要がある。すなわち、このような場合には、ブロックチェーンやデータベースにおいて、仕様上アクセスが既定されている単位よりも細かな単位のアクセス（細粒度アクセス：fine grain access）をサポートする必要がある。
【０００５】
細粒度アクセス制御に関係するデータのアクセス制御の技術としては、例えば、特許文献１に開示がある。特許文献１には、大サイズのファイルを仮想的に固定長の複数のサブファイルに分割して管理し、ファイルレベルのバックアップ・マイグレーションを効率化するデータのアクセス制御方法であり、分割されたサブファイル単位で、アクセス制御する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５２５０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に記載されているファイルシステムにおいては、親ファイルから、親ファイルを分割した複数のサブファイルを生成する。その際のサブファイル化処理において、親ファイルのデータブロックの管理情報を基に、サブファイルの管理情報を生成する。そして、親ファイルのＩ／Ｏを、サブファイルへのＩ／Ｏに変更することにより、効率的なアクセスファイルへのアクセスができるものとしている。
【０００８】
しかしながら、特許文献１に記載されたデータのアクセス方法では、サブファイル単位でのアクセス制御は可能だが、ブロックチェーンやデータベース固有の内部構造（例えば、どこに個人データがあるか）を考慮したアクセス制御を実現できない。また、特許文献１では、ブロックチェーンやデータベースが別のストレージへ複製（または移動）される場合のアクセス制御について考慮されていない。
【０００９】
本発明の目的は、ファイルシステムやオブジェクトストレージにおいて、ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とするデータ管理システムおよびデータ管理方法を提供することにある。また、その目的は、細粒度アクセス制御の設定を施したファイルやオブジェクトを複製したり、移動したりする場合においても、複製先や移動先のストレージにおいて、複製元や移動元と同様の細粒度アクセス制御が可能となるデータ管理システムおよびデータ管理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のデータ管理システムの構成は、好ましくは、プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理システムであって、データは、複数のサブデータを有し、細粒度アクセス情報は、サブデータのデータ内での位置と、サブデータに対するアクセス権の規定を含み、プロセッサは、細粒度アクセス情報に基づいて、データ内のサブデータへのアクセスを制御するようにしたものである。
【発明の効果】
【００１１】
本発明によれば、ファイルシステムやオブジェクトストレージにおいて、ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とするデータ管理システムおよびデータ管理方法を提供することができる。また、細粒度アクセス制御の設定を施したファイルやオブジェクトを複製したり、移動したりする場合においても、複製先や移動先のストレージにおいて、複製元や移動元と同様の細粒度アクセス制御が可能となるデータ管理システムおよびデータ管理方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】データ管理システムの全体構成とブロックチェーンノードの機能構成を示す図である。
【図２】実施形態１に係るデータ管理システムのハードウェア・ソフトウェア構成図である。
【図３】実施形態１に係るデータ管理プログラムのモジュール構造を示すブロック図である。
【図４】ブロックチェーンプログラムのモジュール構造を示すブロック図である。
【図５】ファイルシステムプログラムのモジュール構造を示すブロック図である。
【図６】ブロックチェーンブロック格納ファイルの一例を示す図である。
【図７】ブロックチェーンブロックの一例を示す図である。
【図８】ブロックチェーンメタデータ管理テーブルの一例を示す図である。
【図９】細粒度アクセス制御テーブルの一例を示す図である。
【図１０】データ管理ポリシーの一例を示す図である。
【図１１】細粒度アクセス制御情報設定処理を説明するフローチャートである。
【図１２】Ｒｅａｄ処理の詳細を説明するフローチャートである。
【図１３】アクセス制御処理の詳細を説明するフローチャートである。
【図１４】実施形態２に係るデータ管理システムのハードウェア・ソフトウェア構成図である。
【図１５】実施形態２に係るデータ管理プログラムのモジュール構造を示すブロック図である。
【図１６】オブジェクトストレージプログラムのモジュール構造を示すブロック図である。
【図１７】オブジェクト管理テーブルの一例を示す図である。
【図１８】バックアップ処理を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明に係る各実施形態を、図１ないし図１８を用いて説明する。
【００１４】
〔実施形態１〕
以下、本発明に係る実施形態１を、図１ないし図１３を用いて説明する。
本実施形態では、ブロックチェーンノードが接続されたブロックチェーンシステムを前提としたデータ管理システムについて説明する。
【００１５】
先ず、図１および図２を用いて実施形態１に係るデータ管理システムの構成について説明する。
データ管理システムは、図１に示されるように、複数のブロックチェーンノード２２０、管理端末２００、クライアント端末２８０からなる。ブロックチェーンノード２２０、管理端末２００、クライアント端末２８０は、ネットワーク２１０により相互に接続されている。一般に、ブロックチェーンシステムでは、各々のブロックチェーンノード２２０が相互に通信し、協調的に動作することによりクライアントにサービスを提供する。
【００１６】
ブロックチェーンノード２２０は、機能構成として、データ管理部２２１、ブロックチェーン処理部２２２、ファイルシステム２２３、記憶部２２４からなる。データ管理部２２１は、プライバシー保護等に関する各種法規制に対応するために、管理端末２００からの要求に応じて、データのアクセス権や保管期限を統一的に管理、統制する機能を有する。ブロックチェーン処理部２２２は、クライアント端末２８０からの要求に応じてトランザクション処理を行い、その証跡をブロックチェーンとして保管する機能を有する。ファイルシステム２２３は、データ管理部２２１やブロックチェーン処理部２２２からの要求に応じて、各種ファイルの読み書きや管理を行う機能を有する。例えば、ブロックチェーン処理部２２２は、ファイルシステム２２３の機能に従って、図１に示されるように、ブロックチェーンブロック７００（後述する）を、ブロックチェーン格納ファイル６００（データ、後述する）の中に格納する。
【００１７】
記憶部２２４は、ブロックチェーンノード２２０に必要なデータ、プログラムを記憶する機能を有する。
【００１８】
ここで、本実施形態のデータ管理システムの処理の概要を示すと以下のようになる。
本実施形態におけるブロックチェーンシステムでは、利用者からの削除請求に従って、例えば、個人データの管理者が、データ管理部２２１に対して、当該利用者に関連するトランザクションデータ（サブデータ）の削除を要求する。データ管理プログラム３００は、該当するトランザクションを抽出し、削除対象の領域を特定する。データ管理部２２１は、各種法規制を鑑みて予め設定されたデータ管理ポリシー（詳細は、後述する）に従い、適切なアクセス権とリテンション期間（維持期間）をトランザクション単位で設定する。設定内容は、ブロックチェーンブロック格納ファイル６００の細粒度アクセス制御テーブル９００に、細粒度アクセス制御情報として格納される。図１の細粒度アクセス制御テーブル９００に示すように、監査者のみがアクセスできる領域が設定されている場合、管理者であっても、ブロックチェーンプログラムを介したアクセスはもちろん、ファイルシステムを介した当該領域へのアクセスも禁止される。そして、設定されたリテンション期間を満了した場合、ファイルシステム２２３が当該領域のデータを削除する。
【００１９】
次に、図２を用いてデータ管理システムを構成する各コンポーネントのハードウェア・ソフトウェア構成について説明する。
クライアント端末２８０は、一つ以上のブロックチェーンノード２２０が提供するトランザクション処理サービスを利用するために使用する情報処理装置である。クライアント端末２８０では、トランザクション処理サービスを利用するためのクライアントプログラムが動作する。
【００２０】
管理端末２００は、ブロックチェーンシステムを管理するために使用する情報処理装置である。管理者は、データ管理プログラム３００を介して、ブロックチェーンデータのアクセス権やリテンション期間を管理したり、ブロックチェーンプログラム４００を介してブロックチェーンノードの管理を行ったりする。データ管理プログラム３００とブロックチェーンプログラム４００の詳細については後述する。
【００２１】
ネットワーク２１０は、クライアント端末２８０と、管理端末２００と、ブロックチェーンノード２２０とを相互に接続するネットワークである。ネットワーク２１０は、例えば、構内網（ＬＡＮ：Local Area Network）であってもよいし、インターネットのような広域網（ＷＡＮ：Wide Area Network）であってもよい。
【００２２】
ブロックチェーンノード２２０は、クライアント端末２８０に対してトランザクション処理サービスを提供する情報処理装置である。ブロックチェーンノード２２０は、ＣＰＵ２３０と、ネットワークインタフェース２４０と、ディスクコントローラ２５０と、メインメモリ２６０からなり、内部的な通信路（例えば、バス）によって接続している構成である。
【００２３】
ＣＰＵ２３０は、ブロックチェーンノード２２０の各部を制御し、メインメモリ２６０にロードされたプログラムを実行する。メインメモリ２６０は、ロードされたプログラムやワークデータを一時的に保持する記憶装置である。ネットワークインタフェース２４０は、ネットワーク２１０を介して、クライアント端末２８０や管理端末２００との通信のインタフェースを司る部分である。ディスクコントローラ２５０は、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）２７０やソリッドステートドライブ（ＳＳＤ：Solid State Drive）などの補助記憶装置を制御する部分である。ディスクコントローラ２５０は、メインメモリ２６０にロードされた各種プログラムの入出力要求に基づいて、ハードディスクドライブ２７０のデータを例えばブロック単位で入出力する。
【００２４】
ハードディスクドライブ２７０は、メインメモリ２６０にロードされた各種プログラムが読み書きするデータを格納するための大容量の記憶装置である。
【００２５】
ハードディスクドライブ２７０には、データ管理プログラム３００、ブロックチェーンプログラム４００、ファイルシステムプログラム５００がインストールされている。
【００２６】
データ管理プログラム３００は、データ管理部２２１の機能を実現するためのプログラムであり、プライバシー保護等に関する各種法規制に対応するために、管理端末２００からの要求に応じて、データのアクセス権や保管期限を統一的に管理、統制するためのプログラムである。
【００２７】
ブロックチェーンプログラム４００は、ブロックチェーン処理部２２２の機能を実現するためのプログラムであり、クライアント端末２８０からの要求に応じてトランザクション処理を行い、その証跡をブロックチェーンとして保管するプログラムである。
【００２８】
ファイルシステムプログラム５００は、ファイルシステム２２３の機能を実現するためのプログラムであり、ファイルシステム２２３に既定されたファイルの入出力を行い、そのファイルを管理するためのプログラムである。
【００２９】
また、ハードディスクドライブ２７０には、ブロックチェーンブロック格納ファイル６００、ブロックチェーンメタデータ管理テーブル８００、データ管理ポリシー１０００がファイルとして格納されている。なお、ブロックチェーンブロック格納ファイル６００、ブロックチェーンメタデータ管理テーブル８００、データ管理ポリシー１０００の詳細は、後述する。
【００３０】
次に、図３ないし図５を用いてブロックチェーンノード２２０で動作する各プログラムのモジュール構造について説明する。
【００３１】
データ管理プログラム３００は、図３に示されるように、細粒度アクセス制御情報設定モジュール３１０と、トランザクション抽出モジュール３２０からなる。
【００３２】
細粒度アクセス制御情報設定モジュール３１０は、管理者の指示や、予め定められたデータ管理ポリシー１０００（後述）に従って実行され、アクセス権限の設定や削除の対象とするトランザクションの検索条件を入力として与えられると、トランザクション抽出モジュール３２０を使用して、対象トランザクションＩＤを抽出する。そして、ブロックチェーンメタデータ管理テーブル８００を参照して、対象トランザクションＩＤに対応するトランザクションデータの格納位置を特定し、各データについて細かな単位でアクセス権やリテンション期間を設定する。
【００３３】
トランザクション抽出モジュール３２０は、細粒度アクセス制御情報設定モジュール３１０からの呼び出しを契機として、アクセス権限の設定や削除の対象とするトランザクションの検索条件を入力とし、細かな単位でアクセス権を設定したり、削除したりしたいトランザクションを抽出する。例えば、銀行口座のＩＤを入力として、当該口座に関連する全てのトランザクションＩＤを抽出する。ここで、トランザクションの検索条件としては、各ブロックチェーンブロック７００を全探索してもよいし、抽出処理を高速化するために、銀行口座ＩＤと関連するトランザクションＩＤのリストを索引として保持し、索引のみを検索してもよい。
【００３４】
ブロックチェーンプログラム４００は、図４に示されるように、一つ以上のスマートコントラクト４１０と、トランザクション処理モジュール４２０と、ブロックチェーンメタデータ管理モジュール４３０からなる。
【００３５】
スマートコントラクト４１０は、ブロックチェーンシステムの機能を用いて、サイバー空間でなんらかのコントラクト（契約）を実現するモジュールであり、例えば、仮想通貨や証券といった金融資産の取引を処理するためのプログラムである。ブロックチェーンプログラム４００には、複数種のスマートコントラクト４１０が配置されうる。
【００３６】
トランザクション処理モジュール４２０は、クライアント端末２８０からのトランザクション要求を受信し、当該トランザクション要求内容に基づいて対応するスマートコントラクト４１０を実行する。さらに、トランザクション処理モジュール４２０は、他のブロックチェーンノード２２０のトランザクション処理モジュール４２０に対して承認要求を送信し、他のブロックチェーンノード２２０とトランザクション処理結果が正しいことを合意、確定した上で、クライアント端末２８０にトランザクション処理結果を応答する。
【００３７】
なお、トランザクション処理モジュール４２０は、トランザクション処理結果を確定する際、複数のトランザクション処理結果をブロックチェーンブロック７００として束ねる。そして、トランザクション処理モジュール４２０は、ブロックチェーンブロック７００をブロックチェーンブロック格納ファイル６００のデータ領域６１０（後述）に追記し、ブロックチェーンメタデータ管理テーブル８００（後述）を更新する。
【００３８】
ブロックチェーンメタデータ管理モジュール４３０は、データ管理プログラム３００等からの要求を契機として実行されるモジュールであり、トランザクションＩＤやブロックＩＤを入力として受け取ると、ブロックチェーンメタデータ管理テーブル８００（後述）を参照して、該当するトランザクションやブロックのファイルＩＤ（例えば、ファイルパス等）やオフセットを出力する。
【００３９】
ファイルシステムプログラム５００は、図５に示されるように、Ｒｅａｄモジュール５１０と、Ｗｒｉｔｅモジュール５２０と、拡張属性Ｒｅａｄモジュール５３０と、拡張属性Ｗｒｉｔｅモジュール５４０と、アクセス制御モジュール５５０と、リテンション監視モジュール５６０からなる。
【００４０】
Ｒｅａｄモジュール５１０は、ブロックチェーンプログラム４００等が発行するＲｅａｄ要求を契機としてよって実行されるモジュールであり、ファイルのＩＤやオフセットに基づいてファイルのデータ領域６１０にアクセスしてデータを読み込み、Ｒｅａｄ要求の発行元にデータを応答する。
【００４１】
Ｗｒｉｔｅモジュール５２０は、ブロックチェーンプログラム４００等が発行するＷｒｉｔｅ要求を契機として実行されるモジュールであり、ファイルのＩＤやオフセットに基づいてファイルのデータ領域６１０にアクセスし、データを書き込む。
【００４２】
拡張属性Ｒｅａｄモジュール５３０は、データ管理プログラム３００等が発行する拡張属性Ｒｅａｄ要求を契機として実行されるモジュールであり、ファイルのＩＤに基づいてファイルの拡張属性領域６３０にアクセスしてデータを読み込み、拡張属性Ｒｅａｄ要求の発行元へデータを応答する。
【００４３】
拡張属性Ｗｒｉｔｅモジュール５４０は、データ管理プログラム３００等が発行する拡張属性Ｗｒｉｔｅ要求を契機として実行されるモジュールであり、ファイルのＩＤに基づいてファイルの拡張属性領域６３０にアクセスし、データを書き込む。
【００４４】
アクセス制御モジュール５５０は、Ｒｅａｄモジュール５１０、Ｗｒｉｔｅモジュール５２０、拡張属性Ｒｅａｄモジュール５３０、拡張属性Ｗｒｉｔｅモジュール５４０等からの呼び出しを契機として実行されるモジュールであり、ファイル単位のアクセス権の判定に加えて、必要に応じて細粒度のアクセス権を判定し、ファイル単位のアクセス可否、あるいはファイルの特定領域におけるアクセス可否を応答する。
【００４５】
リテンション監視モジュール５６０は、定期的もしくは管理者等によって設定された特定の時刻に実行されるモジュールであり、細粒度アクセス制御テーブル９００におけるリテンション情報９３０を監視し、リテンション期間が満了となった場合に、当該データを一括して削除する。
【００４６】
次に、図６ないし図１０を用いてブロックチェーンノード２２０で使用される各データ構造について説明する。
【００４７】
ブロックチェーンブロック格納ファイル６００は、ブロックチェーンブロックとその属性情報を格納するファイルであり、図６に示されるように、データ領域６１０と、属性領域６２０と、拡張属性領域６３０とからなる。
【００４８】
データ領域６１０は、ファイルのデータ本体が格納される領域であり、ブロックチェーンブロック格納ファイル６００の場合、ブロックチェーンブロック７００が格納される。なお、ブロックチェーンブロック７００の詳細は、後述する。
【００４９】
属性領域６２０は、ファイルの属性情報を格納する領域であり、例えば、ファイル単位アクセス制御情報６２１や更新日時６２２が格納される。ファイル単位アクセス制御情報６２１とは、具体的にファイルの所有権をもつユーザＩＤやグループＩＤ、パーミッション情報等である。属性領域６２０には、これら以外に作成日時やアクセス日時等が含まれてもよい。
【００５０】
拡張属性領域６３０は、ファイルの利用者が任意の属性情報を格納する領域である。拡張属性領域６３０には、例えば、トランザクションデータ単位のアクセス制御を行う際に使用する細粒度アクセス制御テーブル９００が格納される。
【００５１】
ブロックチェーンブロック７００は、ブロックチェーンを実現するための基本的な単位であり、図７に示されるように、ブロックＩＤ７１０と、現ブロックハッシュ７２０と、前ブロックハッシュ７３０と、トランザクションデータ７４０からなる。
【００５２】
ブロックＩＤ７１０は、ブロックチェーンブロック７００を一意に識別するためのＩＤ（Identifier）である。
【００５３】
現ブロックハッシュ７２０は、当該ブロックチェーンブロック７００に含まれる全てのトランザクションデータ７４０のハッシュ値である。
【００５４】
前ブロックハッシュ７３０は、ブロックチェーンにおける前ブロックのハッシュ値である。このように前ブロックのハッシュ値を格納することにより、ブロックが互いに改竄困難な形で関連づけられるため、その一連のブロックがブロックチェーンと呼ばれている。なお、例えばリテンション監視モジュール５６０によって、ブロックチェーンブロックの一部を削除する場合、ハッシュ値が変わってしまう問題がある。このような場合、リテンション監視モジュール５６０は、カメレオンハッシュ関数等を用いて、ハッシュ値を維持しつつ削除処理を行う。
【００５５】
トランザクションデータ７４０は、トランザクション処理モジュール４２０が実行したトランザクション処理の結果や、どのブロックチェーンノード２２０と合意を形成したかといった情報を含む。
【００５６】
ブロックチェーンメタデータ管理テーブル８００は、ブロックチェーンブロックのデータをブロックチェーンの仕組みによらず、直接アクセスするように設けられる情報であり、図８に示されるように、トランザクションＩＤ８１０と、ブロックＩＤ８２０と、ファイルＩＤ８３０と、オフセット８４０を一つのエントリとしたテーブルである。トランザクションＩＤ８１０は、トランザクションおよびそのデータを一意に識別するためのＩＤである。ブロックＩＤ８２０は、ブロックチェーンブロック７００を一意に識別するためのＩＤである。ファイルＩＤは、ファイルシステム内のファイルを一意に識別するためのＩＤあり、例えば、ファイルパス等である。オフセット８４０は、当該エントリのトランザクションのデータが、ファイル上のどの位置（例えば、何バイト目）にあるかを示す値である。すなわち、ブロックチェーンメタデータ管理テーブル８００は、対象とするトランザクションのデータが、どのファイルのどの位置にあるかを特定するために使用される情報である。ブロックチェーンメタデータ管理テーブル８００へのアクセスインタフェースは、ブロックチェーンメタデータ管理モジュール４３０が提供する。
【００５７】
細粒度アクセス制御テーブル９００は、ブロックチェーンブロック格納ファイル８００の細粒度アクセスを可能とするための情報が格納されたテーブルであり、細粒度アクセス領域９１０と、ＡＣＬ９２０と、リテンション情報９３０を一つのエントリとしたテーブルである。
【００５８】
領域９１０は、細粒度アクセス制御テーブル９００を有するブロックチェーンブロック格納ファイル８００のある特定の領域（例えば、何バイト目から何バイト目）を表す情報である。
【００５９】
ＡＣＬ（Access Control List）９２０は、領域９１０に対して設定されたアクセス制御情報であり、言い換えると、当該領域に対して誰からどのような操作を許可するかを列挙したものである。例えば、図９に示される例では、１０２４バイト目から２０４８バイト目までと、４０９６バイト目から８１９２バイト目までは監査者のみがアクセスでき、２０４８バイト目から４０９６バイト目までは管理者のみがアクセスできるように設定されている。それ以外の領域について、ＡＣＬ９２０は設定されていないが、デフォルトでアクセスを許容してもよいし、拒否してもよい。あるいは、ファイル単位アクセス制御情報６２１を継承してもよい。
【００６０】
リテンション情報９３０は、領域９１０に対して設定されたリテンションに関する情報であり、リテンション期間が終了する日時等が含まれる。図９に示される例では、１０２４バイト目から２０４８バイト目までの領域は、２０２５年１２月３１日でリテンション期間が満了するため、それ以降に削除可能となる。
【００６１】
データ管理ポリシー１０００は、アクセス権限の設定や削除の対象とするトランザクションの検索条件や、設定を実行する契機を記した情報であり、図１０に示されるようなテーブルデータで実現することができる。
【００６２】
データ管理ポリシー１０００は、図１０に示されるように、ポリシーＩＤ１０１０、対象１０２０、ＡＣＬ１０３０、リテンション期間１０４０からなる。
【００６３】
ポリシーＩＤ１０１０は、データ管理ポリシーを一意に識別するＩＤである。対象１０２０は、データ管理ポリシーの適用対象である。ＡＣＬ１０３０は、データ管理ポリシーが適用されるアクセス制御情報である。リテンション期間１０４０は、データ管理ポリシーが適用されるデータの維持期間である。例えば、ポリシーＩＤ１０１０が「ｐ０１」のデータ管理ポリシーにおいては、対象１０２０が「口座情報」であり、ＡＣＬ１０３０として、「監査者」のみがアクセスでき、リテンション期間１０４０として、「５年」が設定されている。
【００６４】
個人データの主体（例えば、預金口座の所持者）からの申し出に応じて削除処理を実行する場合は、管理者が当該個人データのＩＤを入力して細粒度アクセス制御情報設定処理を行う。一方、長期間利用されていない口座を定期的に削除するようなケースでは、未使用期間という検索条件と、検索周期（例えば１日毎）とをデータ管理ポリシー１０００として設定することにより、自動的に細粒度アクセス制御情報設定処理を実行する。
【００６５】
次に、図１１ないし図１３を用いてデータ管理システムの処理について説明する。
【００６６】
先ず、図１１を用いて細粒度アクセス制御情報設定処理を説明する。
細粒度アクセス制御情報設定処理は、細粒度アクセス制御情報設定モジュール３１０により実行される処理であり、管理者の指示を受けた際に実行されたり、予めデータ管理ポリシー１０００に定められたスケジュールで自動的に実行されたりする。細粒度アクセス制御情報設定処理に対する入力は、例えば、対象トランザクションの検索条件、リテンション期間、当該リテンション期間中にアクセス可能な利用者のリスト（ＡＣＬ）などである。
【００６７】
先ず、細粒度アクセス制御情報設定モジュール３１０は、入力として受領した対象トランザクションの検索条件を、トランザクション抽出モジュール３２０へ渡し、トランザクション抽出処理を実行する（Ｓ１０００）。トランザクション抽出モジュール３２０は、検索条件に合致する対象トランザクションを検索し、見つかったトランザクションＩＤのリストを応答する。
【００６８】
次に、細粒度アクセス制御情報設定モジュール３１０は、ブロックチェーンメタデータ管理テーブル８００を参照して、Ｓ１０００で取得したリストに含まれる各トランザクションＩＤに対応するブロックチェーンブロック格納ファイル６００のファイルＩＤとオフセットを取得する（Ｓ１０１０）。
【００６９】
そして、細粒度アクセス制御情報設定モジュール３１０は、ブロックチェーンブロック格納ファイル６００毎に、オフセットをグループ化する（Ｓ１０２０）。このグループ化は、ファイル単位に処理を行うためである。
【００７０】
そして、細粒度アクセス制御情報設定モジュール３１０は、Ｓ１０２０でグループ化された全てのグループについて、以下のＳ１０４０からＳ１０６０までの処理を実行する（Ｓ１０３０）。
【００７１】
先ず、細粒度アクセス制御情報設定モジュール３１０は、ファイルシステムプログラム５００の拡張属性Ｒｅａｄモジュール５３０を介して、当該ブロックチェーンブロック格納ファイル６００の細粒度アクセス制御テーブル９００の情報を取得する（Ｓ１０４０）。
【００７２】
次に、細粒度アクセス制御情報設定モジュール３１０は、Ｓ１０４０で取得した細粒度アクセス制御テーブル９００の情報と、これから設定しようとしている細粒度アクセス制御情報をマージする（Ｓ１０５０）。ここで、マージするとは、例えばある二つのトランザクションデータ７４０の領域９１０に対して同一のＡＣＬ９２０やリテンション情報９３０が設定される場合、それらの二つの領域９１０をマージし、一つのエントリとすることである。マージ処理により、細粒度アクセス制御９００を小さくすることができる。
【００７３】
そして、細粒度アクセス制御情報設定モジュール３１０は、ファイルシステムプログラム５００の拡張属性Ｗｒｉｔｅモジュール５４０を介して、当該ブロックチェーンブロック格納ファイル６００に新しい細粒度アクセス制御テーブル９００を設定する（Ｓ１０６０）。
【００７４】
全てのグループについてＳ１０４０からＳ１０６０までの処理を実行し終えたら（Ｓ１０７０）、細粒度アクセス制御情報設定モジュール３１０は終了する。
【００７５】
次に、図１２を用いてＲｅａｄ処理の詳細を説明する。
Ｒｅａｄ処理は、Ｒｅａｄモジュール５１０が実行する処理である。
【００７６】
Ｒｅａｄ処理は、ファイルシステムプログラム５００に対するＲｅａｄ要求を契機として実行される。Ｒｅａｄ要求は、例えば、ブロックチェーンブロック格納ファイル６００のデータを読み込む際に、ブロックチェーンプログラム４００が、ファイルシステムプログラム５００に対して発行される。あるいは、データ分析プログラムや監査プログラムなど、ブロックチェーンプログラム４００以外のプログラムがブロックチェーンブロック格納ファイル６００を読み込むこともある。なお、Ｒｅａｄ要求には、引数としてファイルＩＤや、読み込むデータの開始位置であるオフセット、読み込むデータのサイズなどが与えられる。
【００７７】
先ず、Ｒｅａｄモジュール５１０は、内部的にアクセス制御モジュール５５０を呼び出し、アクセス制御処理を実行する（Ｓ１１１０）。アクセス制御モジュール５５０には、Ｒｅａｄモジュール５１０に渡されたファイルＩＤ、オフセット、データサイズが入力として与えられる。アクセス制御処理の結果として、アクセス制御モジュール５５０は、アクセス可否を応答する。アクセス制御処理の詳細については、後述する。
【００７８】
結果がアクセス可の場合（Ｓ１１１０：ＹＥＳ）、Ｒｅａｄモジュール５１０は、指定されたオフセットとサイズに基づいて、データを読み込む（Ｓ１１３０）。
【００７９】
最後に、Ｒｅａｄモジュール５１０は、Ｓ１１３０で読み込んだデータを応答して（Ｓ１１４０）、終了する。
【００８０】
一方、結果がアクセス不可の場合（Ｓ１１１０：ＮＯ）、Ｒｅａｄモジュール５１０は、エラーを応答して（Ｓ１１２０）、終了する。
【００８１】
以上の説明では、Ｒｅａｄ処理を例に採ったが、Ｗｒｉｔｅ処理の場合も、データの読み込みが書き込みに変わるほかは同様である。
【００８２】
次に、図１３を用いてアクセス制御処理の詳細を説明する。
アクセス制御処理は、図１２のＳ１１１０に該当する処理であり、アクセス制御モジュール５５０により実行される処理である。
【００８３】
アクセス制御モジュール５５０は、Ｒｅａｄモジュール５１０、Ｗｒｉｔｅモジュール５２０などのファイルシステムプログラム５００の各種モジュールからの呼び出しを契機として実行される。アクセス制御モジュール５５０に対して、ファイルＩＤと必要に応じてオフセット、サイズが入力として与えられる。なお、Ｒｅａｄ処理やＷｒｉｔｅ処理は、ファイルのある特定の領域に対して実行されるが、属性情報や拡張属性情報の処理は、ある特定のファイルに対して実行されるため、オフセットとサイズは伴わない。
【００８４】
先ず、アクセス制御モジュール５５０は、入力として与えられたファイルＩＤに基づいて、ブロックチェーンブロック格納ファイル６００の属性領域６２０の中のファイル単位アクセス制御６２１を取得する（Ｓ１２１０）。
【００８５】
そして、アクセス制御モジュール５５０は、アクセス制御処理の実行コンテキスト情報（例えば、Ｒｅａｄ処理、アクセス制御処理を実行しているユーザ、グループの識別子）と、Ｓ１２１０で取得したファイル単位アクセス制御情報６２１とを照合し、ユーザやグループが当該ファイルへファイル単位のアクセス権を有しているか否かを判定する（Ｓ１２２０）。
【００８６】
ファイル単位のアクセス権を有している場合（Ｓ１２２０：ＹＥＳ）、アクセス制御モジュール５５０は、呼び出し元が属性情報参照、設定などのようにファイル単位の処理か、Ｒｅａｄ処理やＷｒｉｔｅ処理のように領域単位の処理かを判定する（Ｓ１２３０）。この判定は、例えば、アクセス制御モジュール５５０への入力にオフセットとサイズがあるかで判定することができる。
【００８７】
ファイル単位の処理の場合（Ｓ１２３０：ＹＥＳ）、アクセス制御モジュール５５０は、アクセス可を応答して（Ｓ１２４０）、終了する。
【００８８】
一方、ファイル単位の処理でない場合（Ｓ１２３０：ＮＯ）、入力として与えられたファイルＩＤに基づいて、拡張属性Ｒｅａｄモジュール５３０を介して細粒度アクセス制御テーブル９００の情報を取得する（Ｓ１２５０）。
【００８９】
そして、アクセス制御モジュール５５０は、アクセス制御処理の実行コンテキスト情報と、Ｓ１２５０で取得した細粒度アクセス制御テーブル９００とを照合し、ユーザやグループが、要求している領域のアクセス権を有しているか否かを判定する（Ｓ１２６０）。
【００９０】
当該領域のアクセス権を有している場合（Ｓ１２６０：ＹＥＳ）、アクセス制御モジュール５５０は、アクセス可を応答して（Ｓ１２４０）、終了する。
【００９１】
ファイル単位のアクセス権を有していない場合（Ｓ１２２０：ＮＯ）、または、当該領域のアクセス権を有していない場合（Ｓ１２６０：ＮＯ）、アクセス制御モジュール５５０は、アクセス不可を応答して（Ｓ１２７０）、終了する。
【００９２】
以上、本実施形態によれば、ブロックチェーンシステムにおいて、ファイルの単位に加えてトランザクション単位のように細粒度単位でアクセス制御が可能となる。
【００９３】
なお、本実施形態では、Ｒｅａｄ処理を例に説明したが、Ｗｒｉｔｅ処理などファイルシステムにおける他のアクセスインタフェースについても同様のアクセス制御処理が可能である。
【００９４】
また、ファイルシステムを例に説明したが、オブジェクトストレージのようなストレージシステムに適用してもよい。
【００９５】
また、ブロックチェーンプログラムを例に説明したが、細粒度のアクセス制御を必要とする他のミドルウェア（例えば、ＲＤＢＭＳ）に適用してもよい。いくつかのＲＤＢＭＳは、行単位などの細粒度アクセス制御機能を有している。しかし、ＲＤＢＭＳが管理するデータを格納するファイルやオブジェクトに対する直接的なアクセスを制御するためには、本実施形態で説明したようなファイルシステムやオブジェクトストレージと連携した細粒度アクセス制御が有用である。
【００９６】
〔実施形態２〕
以下、本発明に係る実施形態２を、図１４ないし図１８を用いて説明する。
【００９７】
実施形態１は、ブロックチェーンノードが接続されたブロックチェーンシステムを前提として、Ｒｅａｄ処理に関する細粒度アクセス制御処理について説明した。
【００９８】
本実施形態では、実施形態１におけるデータ管理を拡張し、細粒度アクセス制御の適用範囲をバックアップ先のオブジェクトストレージに関するデータまで拡張したものである。以下、実施形態１との相違点を主に説明する。
【００９９】
先ず、図１４を用いて実施形態２に係るデータ管理システムの構成について説明する。
本実施形態におけるデータ管理システムは、実施形態１におけるブロックチェーンノード２２０に加えて、オブジェクトストレージ１３００を備えている。オブジェクトストレージ１３００には、ブロックチェーンノード２２０のデータがバックアップされる。
【０１００】
オブジェクトストレージ１３００は、ブロックチェーンノード２２０などに対して、オブジェクトストレージサービスを提供する情報処理装置である。オブジェクトストレージ１３００は、ブロックチェーンノード２２０と同様に、図１４に示されるように、ＣＰＵ１３３０と、ネットワークインタフェース１３４０と、ディスクコントローラ１３５０と、メインメモリ１３６０からなり、内部的な通信路（例えば、バス）によって接続している構成である。
【０１０１】
ＣＰＵ１３３０は、オブジェクトストレージ１３００の各部を制御し、メインメモリ１３６０にロードされたプログラムを実行する。メインメモリ１３６０は、ロードされたプログラムやワークデータを一時的に保持する記憶装置である。ネットワークインタフェース２４０は、ネットワーク２１０を介して、クライアント端末２８０、管理端末２００、ブロックチェーンノード２２０との通信のインタフェースを司る部分である。ディスクコントローラ１３５０は、ハードディスクドライブ１３７０やソリッドステートドライブなどの補助記憶装置を制御する部分である。ディスクコントローラ１３５０は、メインメモリ１３６０にロードされた各種プログラムの入出力要求に基づいて、ハードディスクドライブ１３７０のデータを例えばブロック単位で入出力する。
【０１０２】
ハードディスクドライブ１３７０には、オブジェクトストレージプログラム１５００がインストールされている。
【０１０３】
オブジェクトストレージプログラム１５００は、ブロックチェーンノード２２０などからの要求に応じて、オブジェクト単位でデータを入出力するプログラムであ
また、ハードディスクドライブ１３７０には、オブジェクト１３８０、オブジェクト管理テーブル１６００が格納されている。ここで、オブジェクトとは、オブジェクトストレージがアクセスするデータの単位として捉えられるものである。
【０１０４】
次に、図１５および図１６を用いてオブジェクトストレージ１３００で動作する各プログラムのモジュール構造について説明する。
【０１０５】
本実施形態におけるデータ管理プログラム１４００は、実施形態１におけるデータ管理プログラムに加えて、バックアップモジュール１４１０を有する。バックアップモジュール１４１０は、管理者からの指示や、予め定められたスケジュールに基づいて、実行されるモジュールであり、ブロックチェーンブロック格納ファイル６００などをオブジェクトストレージ１３００へバックアップ（backup：複製）する。なお、例えば、ブロックチェーンブロック格納ファイル６００をブロックチェーンノード２２０で頻繁に使用しない場合には、データ格納コストが安いオブジェクトストレージ１３００へ当該ファイルを複製ではなく移動してもよい。
【０１０６】
オブジェクトストレージプログラム１５００は、オブジェクトストレージ１３００におけるオブジェクトのアクセスを司るプログラムであり、図１５に示されるように、ＧＥＴモジュール１５１０と、ＰＵＴモジュール１５２０と、ユーザ定義メタデータＲｅａｄモジュール１５３０と、ユーザ定義メタデータＷｒｉｔｅモジュール１５４０と、アクセス制御モジュール１５５０と、リテンション監視モジュール５６０からなる。
【０１０７】
ＧＥＴモジュール１５１０は、ブロックチェーンノード２２０等が発行するＧＥＴ要求を契機として、実行されるモジュールである。ここで、ＧＥＴ要求とは、例えば、ＨＴＴＰ（Hypertext Transfer Protocol）プロトコルに準拠したアクセス要求である。ＧＥＴモジュール１５１０は、オブジェクト１３８０にアクセスしてデータを読み込み、ＧＥＴ要求の発行元へデータを応答する。
【０１０８】
ＰＵＴモジュール１５２０は、ブロックチェーンノード２２０等が発行するＰＵＴ要求を契機として、実行されるモジュールである。ここで、ＰＵＴ要求とは、例えば、ＨＴＴＰプロトコルに準拠したアクセス要求である。ＰＵＴモジュール１５２０は、データを受け取り、オブジェクト１３８０として書き込む。
【０１０９】
ユーザ定義メタデータＲｅａｄモジュール１５３０は、ユーザ定義メタデータＲｅａｄ要求を契機として、実行されるモジュールである。ここで、ユーザ定義メタデータＲｅａｄ要求とは、例えば、ＨＴＴＰプロトコルに準拠しつつ特定のパラメータを付与したＧＥＴ要求の一つである。ユーザ定義メタデータＲｅａｄモジュール１５３０は、入力として与えられたオブジェクトＩＤをキーとして、オブジェクト管理テーブル１６００（後述）のユーザ定義メタデータ１６５０を取得し、それを要求の発行元へ応答する。
【０１１０】
ユーザ定義メタデータＷｒｉｔｅモジュール１５４０は、ユーザ定義メタデータＷｒｉｔｅ要求を契機として、実行されるモジュールである。ここで、ユーザ定義メタデータＷｒｉｔｅ要求とは、例えば、ＨＴＴＰプロトコルに準拠しつつ特定のパラメータを付与したＰＵＴ要求の一つである。ユーザ定義メタデータＷｒｉｔｅモジュール１５４０は、オブジェクト管理テーブル１６００（後述）のユーザ定義メタデータ１６５０に、入力として与えられたデータを書き込む。
【０１１１】
アクセス制御モジュール１５５０は、ＧＥＴモジュール１５１０、ＰＵＴモジュール１５２０、ユーザ定義メタデータＲｅａｄモジュール１５３０、ユーザ定義メタデータＷｒｉｔｅモジュール１５４０等からの呼び出しを契機として、実行されるモジュールである。アクセス制御モジュール１５５０は、オブジェクト単位のアクセス権の判定に加えて、必要に応じて細粒度のアクセス権を判定し、オブジェクト単位のアクセス可否、あるいはオブジェクトの特定領域におけるアクセス可否を応答する。ファイルとオブジェクトで対象やインタフェースは異なるが、実施形態１の図１３に示したアクセス制御処理と本質的には同一である。
【０１１２】
リテンション監視モジュール１５６０は、定期的あるいは管理者等によって設定された特定の時刻に、実行されるモジュールであり、ユーザ定義メタデータ１６５０に格納される細粒度アクセス制御テーブル９００に基づいてリテンション情報９３０を監視する点以外は、実施形態１の図５に示したファイル管理システム５００のリテンション監視モジュール５６０と同一である。
【０１１３】
次に、図１７を用いてオブジェクトストレージで使用されるデータ構造について説明する。
オブジェクト管理テーブル１６００は、図１７に示されるように、オブジェクトＩＤ１６１０と、格納位置情報１６２０と、オブジェクト単位アクセス制御情報１６３０と、更新日時１６４０と、ユーザ定義メタデータ１６５０を、一つのエントリとしたテーブルである。
【０１１４】
オブジェクトＩＤは、オブジェクト１３８０を一意に識別するためのＩＤである。格納位置情報１６２０は、オブジェクト１３８０の物理的な格納位置に関する情報であり、例えば、ディスクドライブの論理ブロック番号である。オブジェクト単位アクセス制御情報１６３０は、例えば、当該オブジェクトへのアクセス権を有するユーザＩＤのリストである。更新日時１６４０は、当該オブジェクトの最終更新日時である。ユーザ定義メタデータ１６５０は、更新日時１６４０のようにシステムがデフォルトで管理するメタデータの他に、ユーザがオブジェクト管理のために任意に設定できるメタデータである。ユーザ定義メタデータ１６５０の形式は、例えば、ＸＭＬ(eXtensible Markup Language)やＪＳＯＮ(JavaScript(登録商標) Object Notation)等により記述される。なお、実施形態１に示したブロックチェーンブロック格納ファイル８００の拡張属性領域９００における細粒度アクセス制御情報テーブル９００に格納されている細粒度アクセス制御情報は、変換されて、ユーザ定義メタデータ１６５０の中に格納される。
【０１１５】
次に、図１８を用いてオブジェクトストレージの処理について説明する。
バックアップ処理は、バックアップモジュール１４１０により、実行される処理であり、管理者からの指示や、予め定められたスケジュール（例えば、毎日午前３時）に基づいて実行される。バックアップ処理への入力は、バックアップ条件であり、例えば、「前日に追加された全てのブロックチェーンブロック格納ファイル」などである。
【０１１６】
先ず、バックアップモジュール１４１０は、入力として与えられたバックアップ条件に基づいて、バックアップ対象となるブロックチェーンブロック格納ファイル６００を探索し、該当するファイルＩＤのリストを出力する（Ｓ１７１０）。
【０１１７】
次に、バックアップモジュール１４１０は、Ｓ１７１０でリストされた全てのブロックチェーンブロック格納ファイル６００について、以下のＳ１７３０からＳ１７５０までの処理を実行する（Ｓ１７２０）。
【０１１８】
先ず、バックアップモジュール１４１０は、当該ファイルＩＤに基づいてブロックチェーンブロック格納ファイル６００のデータ領域６１０をアクセスして読み込み、ＰＵＴモジュール１５２０を介してそのデータをオブジェクトストレージ１３００へＰＵＴする（Ｓ１７３０）。
【０１１９】
次に、バックアップモジュール１４１０は、当該ファイルのファイル単位アクセス制御情報６２１を取得し、オブジェクト単位アクセス制御情報１６３０にマッピングして、Ｓ１７３０でＰＵＴしたオブジェクトに設定する（Ｓ１７４０）。ここで、マッピングとは、ファイルシステムとオブジェクトストレージでユーザＩＤの名前空間が異なる場合に、その対応付けを行うことを言う。ユーザＩＤの対応関係は、例えば、データ管理プログラム１４００が管理する。
【０１２０】
そして、バックアップモジュール１４１０は、当該ファイルの細粒度アクセス制御テーブル９００の情報を取得し、ユーザ定義メタデータ１６５０の形式に変換した上で、ユーザ定義メタデータＷｒｉｔｅモジュール１５３０を介して設定する（Ｓ１７５０）。
【０１２１】
全ての対象ブロックチェーンブロック格納ファイルについてＳ１７３０からＳ１７５０までの処理を実行し終えたら（Ｓ１７６０）、バックアップモジュール１４１０を終了する。
【０１２２】
以上、本実施形態によれば、ブロックチェーンシステムにおいて、細粒度アクセス制御の設定を施したファイルを複製したり、移動したりする場合に、複製先や移動先のオブジェクトストレージにおいて、複製元や移動元と同様の細粒度アクセス制御を提供可能となる。なお、以上の記述では、ファイルシステムとオブジェクトストレージの組合せを例に説明したが、移動や複製は、ファイルシステム間やオブジェクトストレージ間で行ってもよい。
【符号の説明】
【０１２３】
２００…管理端末
２１０…ネットワーク
２２０…ブロックチェーンノード
２８０…クライアント端末
１３００…オブジェクトストレージ
【図１】
2020126409.tif 000003
【図２】
2020126409.tif 000004
【図３】
2020126409.tif 000005
【図４】
2020126409.tif 000006
【図５】
2020126409.tif 000007
【図６】
2020126409.tif 000008
【図７】
2020126409.tif 000009
【図８】
2020126409.tif 000010
【図９】
2020126409.tif 000011
【図１０】
2020126409.tif 000012
【図１１】
2020126409.tif 000013
【図１２】
2020126409.tif 000014
【図１３】
2020126409.tif 000015
【図１４】
2020126409.tif 000016
【図１５】
2020126409.tif 000017
【図１６】
2020126409.tif 000018
【図１７】
2020126409.tif 000019
【図１８】
2020126409.tif 000020