JP2020126409A - データ管理システムおよびデータ管理方法 - Google Patents
データ管理システムおよびデータ管理方法 Download PDFInfo
- Publication number
- JP2020126409A JP2020126409A JP2019017935A JP2019017935A JP2020126409A JP 2020126409 A JP2020126409 A JP 2020126409A JP 2019017935 A JP2019017935 A JP 2019017935A JP 2019017935 A JP2019017935 A JP 2019017935A JP 2020126409 A JP2020126409 A JP 2020126409A
- Authority
- JP
- Japan
- Prior art keywords
- data
- fine
- information
- access
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
- G06F21/805—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とする。【解決手段】情報処理装置が扱うデータを、ファイル単位でアクセスするファイルシステムによりアクセスするデータ管理システムであって、アクセスするファイルに関する細粒度アクセス情報を保持する。細粒度アクセス情報は、ファイルの位置と、そのファイルに対するアクセス権、リテンション情報を含み、細粒度アクセス情報に基づいて、ファイルの情報処理装置からのアクセスを制御する。ファイルは、ブロックチェーンブロックを含み、細粒度アクセス情報は、ブロックチェーンブロックを含んだファイルに、拡張属性として保持される。【選択図】 図1
Description
本発明は、データ管理システムおよびデータ管理方法に係り、特に、ブロックチェーンシステムやRDBMS(Relational Database Management System)のようなアプリケシーションにおいて、データの細粒度アクセスをサポートするのに好適なデータ管理システムおよびデータ管理方法に関する。
近年、プライバシー保護のための新しい権利の概念として、いわゆる「忘れられる権利」が主張されるようになり、各国や地域で法整備が進んでいる。忘れられる権利が規定されると、個人データを取り扱う組織は、個人データの主体(例えば、預金口座の所持者)からの申し出に応じて、個人データを削除する義務を伴うことになる。ただし、実際には必ずしも即時削除できるわけではなく、データによっては、他の法律等の関係により、一定のリテンション期間(削除猶予期間)を設けたり、その間特定の者(例えば、法令に定められた 監査者)以外のアクセスを拒否したりする必要がある。
上記のような個人データのアクセス制御や削除は、ブロックチェーンやデータベースが格納されるストレージボリュームやファイル、オブジェクトといった単位よりも細かい単位で実行できる必要がある。例えば、ブロックチェーンでは、ブロックチェーンブロック内のトランザクションデータの単位で個人データが含まれるため、この単位でアクセス制御と削除を実行しなければならない。
また、例えば、監査向けアプリケーションや、データ分析アプリケーションバックアップソフトウェアにより、ブロックチェーンやデータベースは、ブロックチェーンシステムやRDMSを介さずにアクセスされたり、別のストレージへ複製(または移動)されて利用・活用されたりする。このような場合であっても、意図しないアクセスを防ぎ、同様に上記要件を満たす必要がある。すなわち、このような場合には、ブロックチェーンやデータベースにおいて、仕様上アクセスが既定されている単位よりも細かな単位のアクセス(細粒度アクセス:fine grain access)をサポートする必要がある。
細粒度アクセス制御に関係するデータのアクセス制御の技術としては、例えば、特許文献1に開示がある。特許文献1には、大サイズのファイルを仮想的に固定長の複数のサブファイルに分割して管理し、ファイルレベルのバックアップ・マイグレーションを効率化するデータのアクセス制御方法であり、分割されたサブファイル単位で、アクセス制御する技術が記載されている。
上記特許文献1に記載されているファイルシステムにおいては、親ファイルから、親ファイルを分割した複数のサブファイルを生成する。その際のサブファイル化処理において、親ファイルのデータブロックの管理情報を基に、サブファイルの管理情報を生成する。そして、親ファイルのI/Oを、サブファイルへのI/Oに変更することにより、効率的なアクセスファイルへのアクセスができるものとしている。
しかしながら、特許文献1に記載されたデータのアクセス方法では、サブファイル単位でのアクセス制御は可能だが、ブロックチェーンやデータベース固有の内部構造(例えば、どこに個人データがあるか)を考慮したアクセス制御を実現できない。また、特許文献1では、ブロックチェーンやデータベースが別のストレージへ複製(または移動)される場合のアクセス制御について考慮されていない。
本発明の目的は、ファイルシステムやオブジェクトストレージにおいて、ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とするデータ管理システムおよびデータ管理方法を提供することにある。また、その目的は、細粒度アクセス制御の設定を施したファイルやオブジェクトを複製したり、移動したりする場合においても、複製先や移動先のストレージにおいて、複製元や移動元と同様の細粒度アクセス制御が可能となるデータ管理システムおよびデータ管理方法を提供することにある。
本発明のデータ管理システムの構成は、好ましくは、プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理システムであって、データは、複数のサブデータを有し、細粒度アクセス情報は、サブデータのデータ内での位置と、サブデータに対するアクセス権の規定を含み、プロセッサは、細粒度アクセス情報に基づいて、データ内のサブデータへのアクセスを制御するようにしたものである。
本発明によれば、ファイルシステムやオブジェクトストレージにおいて、ブロックチェーンやデータベースなどのアプリケーションソフトウェアの仕様上既定されるアクセス単位よりも、細粒度のアクセス制御を可能とするデータ管理システムおよびデータ管理方法を提供することができる。また、細粒度アクセス制御の設定を施したファイルやオブジェクトを複製したり、移動したりする場合においても、複製先や移動先のストレージにおいて、複製元や移動元と同様の細粒度アクセス制御が可能となるデータ管理システムおよびデータ管理方法を提供することができる。
以下、本発明に係る各実施形態を、図1ないし図18を用いて説明する。
〔実施形態1〕
以下、本発明に係る実施形態1を、図1ないし図13を用いて説明する。
本実施形態では、ブロックチェーンノードが接続されたブロックチェーンシステムを前提としたデータ管理システムについて説明する。
以下、本発明に係る実施形態1を、図1ないし図13を用いて説明する。
本実施形態では、ブロックチェーンノードが接続されたブロックチェーンシステムを前提としたデータ管理システムについて説明する。
先ず、図1および図2を用いて実施形態1に係るデータ管理システムの構成について説明する。
データ管理システムは、図1に示されるように、複数のブロックチェーンノード220、管理端末200、クライアント端末280からなる。ブロックチェーンノード220、管理端末200、クライアント端末280は、ネットワーク210により相互に接続されている。一般に、ブロックチェーンシステムでは、各々のブロックチェーンノード220が相互に通信し、協調的に動作することによりクライアントにサービスを提供する。
データ管理システムは、図1に示されるように、複数のブロックチェーンノード220、管理端末200、クライアント端末280からなる。ブロックチェーンノード220、管理端末200、クライアント端末280は、ネットワーク210により相互に接続されている。一般に、ブロックチェーンシステムでは、各々のブロックチェーンノード220が相互に通信し、協調的に動作することによりクライアントにサービスを提供する。
ブロックチェーンノード220は、機能構成として、データ管理部221、ブロックチェーン処理部222、ファイルシステム223、記憶部224からなる。データ管理部221は、プライバシー保護等に関する各種法規制に対応するために、管理端末200からの要求に応じて、データのアクセス権や保管期限を統一的に管理、統制する機能を有する。ブロックチェーン処理部222は、クライアント端末280からの要求に応じてトランザクション処理を行い、その証跡をブロックチェーンとして保管する機能を有する。ファイルシステム223は、データ管理部221やブロックチェーン処理部222からの要求に応じて、各種ファイルの読み書きや管理を行う機能を有する。例えば、ブロックチェーン処理部222は、ファイルシステム223の機能に従って、図1に示されるように、ブロックチェーンブロック700(後述する)を、ブロックチェーン格納ファイル600(データ、後述する)の中に格納する。
記憶部224は、ブロックチェーンノード220に必要なデータ、プログラムを記憶する機能を有する。
ここで、本実施形態のデータ管理システムの処理の概要を示すと以下のようになる。
本実施形態におけるブロックチェーンシステムでは、利用者からの削除請求に従って、例えば、個人データの管理者が、データ管理部221に対して、当該利用者に関連するトランザクションデータ(サブデータ)の削除を要求する。データ管理プログラム300は、該当するトランザクションを抽出し、削除対象の領域を特定する。データ管理部221は、各種法規制を鑑みて予め設定されたデータ管理ポリシー(詳細は、後述する)に従い、適切なアクセス権とリテンション期間(維持期間)をトランザクション単位で設定する。設定内容は、ブロックチェーンブロック格納ファイル600の細粒度アクセス制御テーブル900に、細粒度アクセス制御情報として格納される。図1の細粒度アクセス制御テーブル900に示すように、監査者のみがアクセスできる領域が設定されている場合、管理者であっても、ブロックチェーンプログラムを介したアクセスはもちろん、ファイルシステムを介した当該領域へのアクセスも禁止される。そして、設定されたリテンション期間を満了した場合、ファイルシステム223が当該領域のデータを削除する。
本実施形態におけるブロックチェーンシステムでは、利用者からの削除請求に従って、例えば、個人データの管理者が、データ管理部221に対して、当該利用者に関連するトランザクションデータ(サブデータ)の削除を要求する。データ管理プログラム300は、該当するトランザクションを抽出し、削除対象の領域を特定する。データ管理部221は、各種法規制を鑑みて予め設定されたデータ管理ポリシー(詳細は、後述する)に従い、適切なアクセス権とリテンション期間(維持期間)をトランザクション単位で設定する。設定内容は、ブロックチェーンブロック格納ファイル600の細粒度アクセス制御テーブル900に、細粒度アクセス制御情報として格納される。図1の細粒度アクセス制御テーブル900に示すように、監査者のみがアクセスできる領域が設定されている場合、管理者であっても、ブロックチェーンプログラムを介したアクセスはもちろん、ファイルシステムを介した当該領域へのアクセスも禁止される。そして、設定されたリテンション期間を満了した場合、ファイルシステム223が当該領域のデータを削除する。
次に、図2を用いてデータ管理システムを構成する各コンポーネントのハードウェア・ソフトウェア構成について説明する。
クライアント端末280は、一つ以上のブロックチェーンノード220が提供するトランザクション処理サービスを利用するために使用する情報処理装置である。クライアント端末280では、トランザクション処理サービスを利用するためのクライアントプログラムが動作する。
クライアント端末280は、一つ以上のブロックチェーンノード220が提供するトランザクション処理サービスを利用するために使用する情報処理装置である。クライアント端末280では、トランザクション処理サービスを利用するためのクライアントプログラムが動作する。
管理端末200は、ブロックチェーンシステムを管理するために使用する情報処理装置である。管理者は、データ管理プログラム300を介して、ブロックチェーンデータのアクセス権やリテンション期間を管理したり、ブロックチェーンプログラム400を介してブロックチェーンノードの管理を行ったりする。データ管理プログラム300とブロックチェーンプログラム400の詳細については後述する。
ネットワーク210は、クライアント端末280と、管理端末200と、ブロックチェーンノード220とを相互に接続するネットワークである。ネットワーク210は、例えば、構内網(LAN:Local Area Network)であってもよいし、インターネットのような広域網(WAN:Wide Area Network)であってもよい。
ブロックチェーンノード220は、クライアント端末280に対してトランザクション処理サービスを提供する情報処理装置である。ブロックチェーンノード220は、CPU230と、ネットワークインタフェース240と、ディスクコントローラ250と、メインメモリ260からなり、内部的な通信路(例えば、バス)によって接続している構成である。
CPU230は、ブロックチェーンノード220の各部を制御し、メインメモリ260にロードされたプログラムを実行する。メインメモリ260は、ロードされたプログラムやワークデータを一時的に保持する記憶装置である。ネットワークインタフェース240は、ネットワーク210を介して、クライアント端末280や管理端末200との通信のインタフェースを司る部分である。ディスクコントローラ250は、ハードディスクドライブ(HDD:Hard Disk Drive)270やソリッドステートドライブ(SSD:Solid State Drive)などの補助記憶装置を制御する部分である。ディスクコントローラ250は、メインメモリ260にロードされた各種プログラムの入出力要求に基づいて、ハードディスクドライブ270のデータを例えばブロック単位で入出力する。
ハードディスクドライブ270は、メインメモリ260にロードされた各種プログラムが読み書きするデータを格納するための大容量の記憶装置である。
ハードディスクドライブ270には、データ管理プログラム300、ブロックチェーンプログラム400、ファイルシステムプログラム500がインストールされている。
データ管理プログラム300は、データ管理部221の機能を実現するためのプログラムであり、プライバシー保護等に関する各種法規制に対応するために、管理端末200からの要求に応じて、データのアクセス権や保管期限を統一的に管理、統制するためのプログラムである。
ブロックチェーンプログラム400は、ブロックチェーン処理部222の機能を実現するためのプログラムであり、クライアント端末280からの要求に応じてトランザクション処理を行い、その証跡をブロックチェーンとして保管するプログラムである。
ファイルシステムプログラム500は、ファイルシステム223の機能を実現するためのプログラムであり、ファイルシステム223に既定されたファイルの入出力を行い、そのファイルを管理するためのプログラムである。
また、ハードディスクドライブ270には、ブロックチェーンブロック格納ファイル600、ブロックチェーンメタデータ管理テーブル800、データ管理ポリシー1000がファイルとして格納されている。なお、ブロックチェーンブロック格納ファイル600、ブロックチェーンメタデータ管理テーブル800、データ管理ポリシー1000の詳細は、後述する。
次に、図3ないし図5を用いてブロックチェーンノード220で動作する各プログラムのモジュール構造について説明する。
データ管理プログラム300は、図3に示されるように、細粒度アクセス制御情報設定モジュール310と、トランザクション抽出モジュール320からなる。
細粒度アクセス制御情報設定モジュール310は、管理者の指示や、予め定められたデータ管理ポリシー1000(後述)に従って実行され、アクセス権限の設定や削除の対象とするトランザクションの検索条件を入力として与えられると、トランザクション抽出モジュール320を使用して、対象トランザクションIDを抽出する。そして、ブロックチェーンメタデータ管理テーブル800を参照して、対象トランザクションIDに対応するトランザクションデータの格納位置を特定し、各データについて細かな単位でアクセス権やリテンション期間を設定する。
トランザクション抽出モジュール320は、細粒度アクセス制御情報設定モジュール310からの呼び出しを契機として、アクセス権限の設定や削除の対象とするトランザクションの検索条件を入力とし、細かな単位でアクセス権を設定したり、削除したりしたいトランザクションを抽出する。例えば、銀行口座のIDを入力として、当該口座に関連する全てのトランザクションIDを抽出する。ここで、トランザクションの検索条件としては、各ブロックチェーンブロック700を全探索してもよいし、抽出処理を高速化するために、銀行口座IDと関連するトランザクションIDのリストを索引として保持し、索引のみを検索してもよい。
ブロックチェーンプログラム400は、図4に示されるように、一つ以上のスマートコントラクト410と、トランザクション処理モジュール420と、ブロックチェーンメタデータ管理モジュール430からなる。
スマートコントラクト410は、ブロックチェーンシステムの機能を用いて、サイバー空間でなんらかのコントラクト(契約)を実現するモジュールであり、例えば、仮想通貨や証券といった金融資産の取引を処理するためのプログラムである。ブロックチェーンプログラム400には、複数種のスマートコントラクト410が配置されうる。
トランザクション処理モジュール420は、クライアント端末280からのトランザクション要求を受信し、当該トランザクション要求内容に基づいて対応するスマートコントラクト410を実行する。さらに、トランザクション処理モジュール420は、他のブロックチェーンノード220のトランザクション処理モジュール420に対して承認要求を送信し、他のブロックチェーンノード220とトランザクション処理結果が正しいことを合意、確定した上で、クライアント端末280にトランザクション処理結果を応答する。
なお、トランザクション処理モジュール420は、トランザクション処理結果を確定する際、複数のトランザクション処理結果をブロックチェーンブロック700として束ねる。そして、トランザクション処理モジュール420は、ブロックチェーンブロック700をブロックチェーンブロック格納ファイル600のデータ領域610(後述)に追記し、ブロックチェーンメタデータ管理テーブル800(後述)を更新する。
ブロックチェーンメタデータ管理モジュール430は、データ管理プログラム300等からの要求を契機として実行されるモジュールであり、トランザクションIDやブロックIDを入力として受け取ると、ブロックチェーンメタデータ管理テーブル800(後述)を参照して、該当するトランザクションやブロックのファイルID(例えば、ファイルパス等)やオフセットを出力する。
ファイルシステムプログラム500は、図5に示されるように、Readモジュール510と、Writeモジュール520と、拡張属性Readモジュール530と、拡張属性Writeモジュール540と、アクセス制御モジュール550と、リテンション監視モジュール560からなる。
Readモジュール510は、ブロックチェーンプログラム400等が発行するRead要求を契機としてよって実行されるモジュールであり、ファイルのIDやオフセットに基づいてファイルのデータ領域610にアクセスしてデータを読み込み、Read要求の発行元にデータを応答する。
Writeモジュール520は、ブロックチェーンプログラム400等が発行するWrite要求を契機として実行されるモジュールであり、ファイルのIDやオフセットに基づいてファイルのデータ領域610にアクセスし、データを書き込む。
拡張属性Readモジュール530は、データ管理プログラム300等が発行する拡張属性Read要求を契機として実行されるモジュールであり、ファイルのIDに基づいてファイルの拡張属性領域630にアクセスしてデータを読み込み、拡張属性Read要求の発行元へデータを応答する。
拡張属性Writeモジュール540は、データ管理プログラム300等が発行する拡張属性Write要求を契機として実行されるモジュールであり、ファイルのIDに基づいてファイルの拡張属性領域630にアクセスし、データを書き込む。
アクセス制御モジュール550は、Readモジュール510、Writeモジュール520、拡張属性Readモジュール530、拡張属性Writeモジュール540等からの呼び出しを契機として実行されるモジュールであり、ファイル単位のアクセス権の判定に加えて、必要に応じて細粒度のアクセス権を判定し、ファイル単位のアクセス可否、あるいはファイルの特定領域におけるアクセス可否を応答する。
リテンション監視モジュール560は、定期的もしくは管理者等によって設定された特定の時刻に実行されるモジュールであり、細粒度アクセス制御テーブル900におけるリテンション情報930を監視し、リテンション期間が満了となった場合に、当該データを一括して削除する。
次に、図6ないし図10を用いてブロックチェーンノード220で使用される各データ構造について説明する。
ブロックチェーンブロック格納ファイル600は、ブロックチェーンブロックとその属性情報を格納するファイルであり、図6に示されるように、データ領域610と、属性領域620と、拡張属性領域630とからなる。
データ領域610は、ファイルのデータ本体が格納される領域であり、ブロックチェーンブロック格納ファイル600の場合、ブロックチェーンブロック700が格納される。なお、ブロックチェーンブロック700の詳細は、後述する。
属性領域620は、ファイルの属性情報を格納する領域であり、例えば、ファイル単位アクセス制御情報621や更新日時622が格納される。ファイル単位アクセス制御情報621とは、具体的にファイルの所有権をもつユーザIDやグループID、パーミッション情報等である。属性領域620には、これら以外に作成日時やアクセス日時等が含まれてもよい。
拡張属性領域630は、ファイルの利用者が任意の属性情報を格納する領域である。拡張属性領域630には、例えば、トランザクションデータ単位のアクセス制御を行う際に使用する細粒度アクセス制御テーブル900が格納される。
ブロックチェーンブロック700は、ブロックチェーンを実現するための基本的な単位であり、図7に示されるように、ブロックID710と、現ブロックハッシュ720と、前ブロックハッシュ730と、トランザクションデータ740からなる。
ブロックID710は、ブロックチェーンブロック700を一意に識別するためのID(Identifier)である。
現ブロックハッシュ720は、当該ブロックチェーンブロック700に含まれる全てのトランザクションデータ740のハッシュ値である。
前ブロックハッシュ730は、ブロックチェーンにおける前ブロックのハッシュ値である。このように前ブロックのハッシュ値を格納することにより、ブロックが互いに改竄困難な形で関連づけられるため、その一連のブロックがブロックチェーンと呼ばれている。なお、例えばリテンション監視モジュール560によって、ブロックチェーンブロックの一部を削除する場合、ハッシュ値が変わってしまう問題がある。このような場合、リテンション監視モジュール560は、カメレオンハッシュ関数等を用いて、ハッシュ値を維持しつつ削除処理を行う。
トランザクションデータ740は、トランザクション処理モジュール420が実行したトランザクション処理の結果や、どのブロックチェーンノード220と合意を形成したかといった情報を含む。
ブロックチェーンメタデータ管理テーブル800は、ブロックチェーンブロックのデータをブロックチェーンの仕組みによらず、直接アクセスするように設けられる情報であり、図8に示されるように、トランザクションID810と、ブロックID820と、ファイルID830と、オフセット840を一つのエントリとしたテーブルである。トランザクションID810は、トランザクションおよびそのデータを一意に識別するためのIDである。ブロックID820は、ブロックチェーンブロック700を一意に識別するためのIDである。ファイルIDは、ファイルシステム内のファイルを一意に識別するためのIDあり、例えば、ファイルパス等である。オフセット840は、当該エントリのトランザクションのデータが、ファイル上のどの位置(例えば、何バイト目)にあるかを示す値である。すなわち、ブロックチェーンメタデータ管理テーブル800は、対象とするトランザクションのデータが、どのファイルのどの位置にあるかを特定するために使用される情報である。ブロックチェーンメタデータ管理テーブル800へのアクセスインタフェースは、ブロックチェーンメタデータ管理モジュール430が提供する。
細粒度アクセス制御テーブル900は、ブロックチェーンブロック格納ファイル800の細粒度アクセスを可能とするための情報が格納されたテーブルであり、細粒度アクセス領域910と、ACL920と、リテンション情報930を一つのエントリとしたテーブルである。
領域910は、細粒度アクセス制御テーブル900を有するブロックチェーンブロック格納ファイル800のある特定の領域(例えば、何バイト目から何バイト目)を表す情報である。
ACL(Access Control List)920は、領域910に対して設定されたアクセス制御情報であり、言い換えると、当該領域に対して誰からどのような操作を許可するかを列挙したものである。例えば、図9に示される例では、1024バイト目から2048バイト目までと、4096バイト目から8192バイト目までは監査者のみがアクセスでき、2048バイト目から4096バイト目までは管理者のみがアクセスできるように設定されている。それ以外の領域について、ACL920は設定されていないが、デフォルトでアクセスを許容してもよいし、拒否してもよい。あるいは、ファイル単位アクセス制御情報621を継承してもよい。
リテンション情報930は、領域910に対して設定されたリテンションに関する情報であり、リテンション期間が終了する日時等が含まれる。図9に示される例では、1024バイト目から2048バイト目までの領域は、2025年12月31日でリテンション期間が満了するため、それ以降に削除可能となる。
データ管理ポリシー1000は、アクセス権限の設定や削除の対象とするトランザクションの検索条件や、設定を実行する契機を記した情報であり、図10に示されるようなテーブルデータで実現することができる。
データ管理ポリシー1000は、図10に示されるように、ポリシーID1010、対象1020、ACL1030、リテンション期間1040からなる。
ポリシーID1010は、データ管理ポリシーを一意に識別するIDである。対象1020は、データ管理ポリシーの適用対象である。ACL1030は、データ管理ポリシーが適用されるアクセス制御情報である。リテンション期間1040は、データ管理ポリシーが適用されるデータの維持期間である。例えば、ポリシーID1010が「p01」のデータ管理ポリシーにおいては、対象1020が「口座情報」であり、ACL1030として、「監査者」のみがアクセスでき、リテンション期間1040として、「5年」が設定されている。
個人データの主体(例えば、預金口座の所持者)からの申し出に応じて削除処理を実行する場合は、管理者が当該個人データのIDを入力して細粒度アクセス制御情報設定処理を行う。一方、長期間利用されていない口座を定期的に削除するようなケースでは、未使用期間という検索条件と、検索周期(例えば1日毎)とをデータ管理ポリシー1000として設定することにより、自動的に細粒度アクセス制御情報設定処理を実行する。
次に、図11ないし図13を用いてデータ管理システムの処理について説明する。
先ず、図11を用いて細粒度アクセス制御情報設定処理を説明する。
細粒度アクセス制御情報設定処理は、細粒度アクセス制御情報設定モジュール310により実行される処理であり、管理者の指示を受けた際に実行されたり、予めデータ管理ポリシー1000に定められたスケジュールで自動的に実行されたりする。細粒度アクセス制御情報設定処理に対する入力は、例えば、対象トランザクションの検索条件、リテンション期間、当該リテンション期間中にアクセス可能な利用者のリスト(ACL)などである。
細粒度アクセス制御情報設定処理は、細粒度アクセス制御情報設定モジュール310により実行される処理であり、管理者の指示を受けた際に実行されたり、予めデータ管理ポリシー1000に定められたスケジュールで自動的に実行されたりする。細粒度アクセス制御情報設定処理に対する入力は、例えば、対象トランザクションの検索条件、リテンション期間、当該リテンション期間中にアクセス可能な利用者のリスト(ACL)などである。
先ず、細粒度アクセス制御情報設定モジュール310は、入力として受領した対象トランザクションの検索条件を、トランザクション抽出モジュール320へ渡し、トランザクション抽出処理を実行する(S1000)。トランザクション抽出モジュール320は、検索条件に合致する対象トランザクションを検索し、見つかったトランザクションIDのリストを応答する。
次に、細粒度アクセス制御情報設定モジュール310は、ブロックチェーンメタデータ管理テーブル800を参照して、S1000で取得したリストに含まれる各トランザクションIDに対応するブロックチェーンブロック格納ファイル600のファイルIDとオフセットを取得する(S1010)。
そして、細粒度アクセス制御情報設定モジュール310は、ブロックチェーンブロック格納ファイル600毎に、オフセットをグループ化する(S1020)。このグループ化は、ファイル単位に処理を行うためである。
そして、細粒度アクセス制御情報設定モジュール310は、S1020でグループ化された全てのグループについて、以下のS1040からS1060までの処理を実行する(S1030)。
先ず、細粒度アクセス制御情報設定モジュール310は、ファイルシステムプログラム500の拡張属性Readモジュール530を介して、当該ブロックチェーンブロック格納ファイル600の細粒度アクセス制御テーブル900の情報を取得する(S1040)。
次に、細粒度アクセス制御情報設定モジュール310は、S1040で取得した細粒度アクセス制御テーブル900の情報と、これから設定しようとしている細粒度アクセス制御情報をマージする(S1050)。ここで、マージするとは、例えばある二つのトランザクションデータ740の領域910に対して同一のACL920やリテンション情報930が設定される場合、それらの二つの領域910をマージし、一つのエントリとすることである。マージ処理により、細粒度アクセス制御900を小さくすることができる。
そして、細粒度アクセス制御情報設定モジュール310は、ファイルシステムプログラム500の拡張属性Writeモジュール540を介して、当該ブロックチェーンブロック格納ファイル600に新しい細粒度アクセス制御テーブル900を設定する(S1060)。
全てのグループについてS1040からS1060までの処理を実行し終えたら(S1070)、細粒度アクセス制御情報設定モジュール310は終了する。
次に、図12を用いてRead処理の詳細を説明する。
Read処理は、Readモジュール510が実行する処理である。
Read処理は、Readモジュール510が実行する処理である。
Read処理は、ファイルシステムプログラム500に対するRead要求を契機として実行される。Read要求は、例えば、ブロックチェーンブロック格納ファイル600のデータを読み込む際に、ブロックチェーンプログラム400が、ファイルシステムプログラム500に対して発行される。あるいは、データ分析プログラムや監査プログラムなど、ブロックチェーンプログラム400以外のプログラムがブロックチェーンブロック格納ファイル600を読み込むこともある。なお、Read要求には、引数としてファイルIDや、読み込むデータの開始位置であるオフセット、読み込むデータのサイズなどが与えられる。
先ず、Readモジュール510は、内部的にアクセス制御モジュール550を呼び出し、アクセス制御処理を実行する(S1110)。アクセス制御モジュール550には、Readモジュール510に渡されたファイルID、オフセット、データサイズが入力として与えられる。アクセス制御処理の結果として、アクセス制御モジュール550は、アクセス可否を応答する。アクセス制御処理の詳細については、後述する。
結果がアクセス可の場合(S1110:YES)、Readモジュール510は、指定されたオフセットとサイズに基づいて、データを読み込む(S1130)。
最後に、Readモジュール510は、S1130で読み込んだデータを応答して(S1140)、終了する。
一方、結果がアクセス不可の場合(S1110:NO)、Readモジュール510は、エラーを応答して(S1120)、終了する。
以上の説明では、Read処理を例に採ったが、Write処理の場合も、データの読み込みが書き込みに変わるほかは同様である。
次に、図13を用いてアクセス制御処理の詳細を説明する。
アクセス制御処理は、図12のS1110に該当する処理であり、アクセス制御モジュール550により実行される処理である。
アクセス制御処理は、図12のS1110に該当する処理であり、アクセス制御モジュール550により実行される処理である。
アクセス制御モジュール550は、Readモジュール510、Writeモジュール520などのファイルシステムプログラム500の各種モジュールからの呼び出しを契機として実行される。アクセス制御モジュール550に対して、ファイルIDと必要に応じてオフセット、サイズが入力として与えられる。なお、Read処理やWrite処理は、ファイルのある特定の領域に対して実行されるが、属性情報や拡張属性情報の処理は、ある特定のファイルに対して実行されるため、オフセットとサイズは伴わない。
先ず、アクセス制御モジュール550は、入力として与えられたファイルIDに基づいて、ブロックチェーンブロック格納ファイル600の属性領域620の中のファイル単位アクセス制御621を取得する(S1210)。
そして、アクセス制御モジュール550は、アクセス制御処理の実行コンテキスト情報(例えば、Read処理、アクセス制御処理を実行しているユーザ、グループの識別子)と、S1210で取得したファイル単位アクセス制御情報621とを照合し、ユーザやグループが当該ファイルへファイル単位のアクセス権を有しているか否かを判定する(S1220)。
ファイル単位のアクセス権を有している場合(S1220:YES)、アクセス制御モジュール550は、呼び出し元が属性情報参照、設定などのようにファイル単位の処理か、Read処理やWrite処理のように領域単位の処理かを判定する(S1230)。この判定は、例えば、アクセス制御モジュール550への入力にオフセットとサイズがあるかで判定することができる。
ファイル単位の処理の場合(S1230:YES)、アクセス制御モジュール550は、アクセス可を応答して(S1240)、終了する。
一方、ファイル単位の処理でない場合(S1230:NO)、入力として与えられたファイルIDに基づいて、拡張属性Readモジュール530を介して細粒度アクセス制御テーブル900の情報を取得する(S1250)。
そして、アクセス制御モジュール550は、アクセス制御処理の実行コンテキスト情報と、S1250で取得した細粒度アクセス制御テーブル900とを照合し、ユーザやグループが、要求している領域のアクセス権を有しているか否かを判定する(S1260)。
当該領域のアクセス権を有している場合(S1260:YES)、アクセス制御モジュール550は、アクセス可を応答して(S1240)、終了する。
ファイル単位のアクセス権を有していない場合(S1220:NO)、または、当該領域のアクセス権を有していない場合(S1260:NO)、アクセス制御モジュール550は、アクセス不可を応答して(S1270)、終了する。
以上、本実施形態によれば、ブロックチェーンシステムにおいて、ファイルの単位に加えてトランザクション単位のように細粒度単位でアクセス制御が可能となる。
なお、本実施形態では、Read処理を例に説明したが、Write処理などファイルシステムにおける他のアクセスインタフェースについても同様のアクセス制御処理が可能である。
また、ファイルシステムを例に説明したが、オブジェクトストレージのようなストレージシステムに適用してもよい。
また、ブロックチェーンプログラムを例に説明したが、細粒度のアクセス制御を必要とする他のミドルウェア(例えば、RDBMS)に適用してもよい。いくつかのRDBMSは、行単位などの細粒度アクセス制御機能を有している。しかし、RDBMSが管理するデータを格納するファイルやオブジェクトに対する直接的なアクセスを制御するためには、本実施形態で説明したようなファイルシステムやオブジェクトストレージと連携した細粒度アクセス制御が有用である。
〔実施形態2〕
以下、本発明に係る実施形態2を、図14ないし図18を用いて説明する。
以下、本発明に係る実施形態2を、図14ないし図18を用いて説明する。
実施形態1は、ブロックチェーンノードが接続されたブロックチェーンシステムを前提として、Read処理に関する細粒度アクセス制御処理について説明した。
本実施形態では、実施形態1におけるデータ管理を拡張し、細粒度アクセス制御の適用範囲をバックアップ先のオブジェクトストレージに関するデータまで拡張したものである。以下、実施形態1との相違点を主に説明する。
先ず、図14を用いて実施形態2に係るデータ管理システムの構成について説明する。
本実施形態におけるデータ管理システムは、実施形態1におけるブロックチェーンノード220に加えて、オブジェクトストレージ1300を備えている。オブジェクトストレージ1300には、ブロックチェーンノード220のデータがバックアップされる。
本実施形態におけるデータ管理システムは、実施形態1におけるブロックチェーンノード220に加えて、オブジェクトストレージ1300を備えている。オブジェクトストレージ1300には、ブロックチェーンノード220のデータがバックアップされる。
オブジェクトストレージ1300は、ブロックチェーンノード220などに対して、オブジェクトストレージサービスを提供する情報処理装置である。オブジェクトストレージ1300は、ブロックチェーンノード220と同様に、図14に示されるように、CPU1330と、ネットワークインタフェース1340と、ディスクコントローラ1350と、メインメモリ1360からなり、内部的な通信路(例えば、バス)によって接続している構成である。
CPU1330は、オブジェクトストレージ1300の各部を制御し、メインメモリ1360にロードされたプログラムを実行する。メインメモリ1360は、ロードされたプログラムやワークデータを一時的に保持する記憶装置である。ネットワークインタフェース240は、ネットワーク210を介して、クライアント端末280、管理端末200、ブロックチェーンノード220との通信のインタフェースを司る部分である。ディスクコントローラ1350は、ハードディスクドライブ1370やソリッドステートドライブなどの補助記憶装置を制御する部分である。ディスクコントローラ1350は、メインメモリ1360にロードされた各種プログラムの入出力要求に基づいて、ハードディスクドライブ1370のデータを例えばブロック単位で入出力する。
ハードディスクドライブ1370には、オブジェクトストレージプログラム1500がインストールされている。
オブジェクトストレージプログラム1500は、ブロックチェーンノード220などからの要求に応じて、オブジェクト単位でデータを入出力するプログラムであ
また、ハードディスクドライブ1370には、オブジェクト1380、オブジェクト管理テーブル1600が格納されている。ここで、オブジェクトとは、オブジェクトストレージがアクセスするデータの単位として捉えられるものである。
また、ハードディスクドライブ1370には、オブジェクト1380、オブジェクト管理テーブル1600が格納されている。ここで、オブジェクトとは、オブジェクトストレージがアクセスするデータの単位として捉えられるものである。
次に、図15および図16を用いてオブジェクトストレージ1300で動作する各プログラムのモジュール構造について説明する。
本実施形態におけるデータ管理プログラム1400は、実施形態1におけるデータ管理プログラムに加えて、バックアップモジュール1410を有する。バックアップモジュール1410は、管理者からの指示や、予め定められたスケジュールに基づいて、実行されるモジュールであり、ブロックチェーンブロック格納ファイル600などをオブジェクトストレージ1300へバックアップ(backup:複製)する。なお、例えば、ブロックチェーンブロック格納ファイル600をブロックチェーンノード220で頻繁に使用しない場合には、データ格納コストが安いオブジェクトストレージ1300へ当該ファイルを複製ではなく移動してもよい。
オブジェクトストレージプログラム1500は、オブジェクトストレージ1300におけるオブジェクトのアクセスを司るプログラムであり、図15に示されるように、GETモジュール1510と、PUTモジュール1520と、ユーザ定義メタデータReadモジュール1530と、ユーザ定義メタデータWriteモジュール1540と、アクセス制御モジュール1550と、リテンション監視モジュール560からなる。
GETモジュール1510は、ブロックチェーンノード220等が発行するGET要求を契機として、実行されるモジュールである。ここで、GET要求とは、例えば、HTTP(Hypertext Transfer Protocol)プロトコルに準拠したアクセス要求である。GETモジュール1510は、オブジェクト1380にアクセスしてデータを読み込み、GET要求の発行元へデータを応答する。
PUTモジュール1520は、ブロックチェーンノード220等が発行するPUT要求を契機として、実行されるモジュールである。ここで、PUT要求とは、例えば、HTTPプロトコルに準拠したアクセス要求である。PUTモジュール1520は、データを受け取り、オブジェクト1380として書き込む。
ユーザ定義メタデータReadモジュール1530は、ユーザ定義メタデータRead要求を契機として、実行されるモジュールである。ここで、ユーザ定義メタデータRead要求とは、例えば、HTTPプロトコルに準拠しつつ特定のパラメータを付与したGET要求の一つである。ユーザ定義メタデータReadモジュール1530は、入力として与えられたオブジェクトIDをキーとして、オブジェクト管理テーブル1600(後述)のユーザ定義メタデータ1650を取得し、それを要求の発行元へ応答する。
ユーザ定義メタデータWriteモジュール1540は、ユーザ定義メタデータWrite要求を契機として、実行されるモジュールである。ここで、ユーザ定義メタデータWrite要求とは、例えば、HTTPプロトコルに準拠しつつ特定のパラメータを付与したPUT要求の一つである。ユーザ定義メタデータWriteモジュール1540は、オブジェクト管理テーブル1600(後述)のユーザ定義メタデータ1650に、入力として与えられたデータを書き込む。
アクセス制御モジュール1550は、GETモジュール1510、PUTモジュール1520、ユーザ定義メタデータReadモジュール1530、ユーザ定義メタデータWriteモジュール1540等からの呼び出しを契機として、実行されるモジュールである。アクセス制御モジュール1550は、オブジェクト単位のアクセス権の判定に加えて、必要に応じて細粒度のアクセス権を判定し、オブジェクト単位のアクセス可否、あるいはオブジェクトの特定領域におけるアクセス可否を応答する。ファイルとオブジェクトで対象やインタフェースは異なるが、実施形態1の図13に示したアクセス制御処理と本質的には同一である。
リテンション監視モジュール1560は、定期的あるいは管理者等によって設定された特定の時刻に、実行されるモジュールであり、ユーザ定義メタデータ1650に格納される細粒度アクセス制御テーブル900に基づいてリテンション情報930を監視する点以外は、実施形態1の図5に示したファイル管理システム500のリテンション監視モジュール560と同一である。
次に、図17を用いてオブジェクトストレージで使用されるデータ構造について説明する。
オブジェクト管理テーブル1600は、図17に示されるように、オブジェクトID1610と、格納位置情報1620と、オブジェクト単位アクセス制御情報1630と、更新日時1640と、ユーザ定義メタデータ1650を、一つのエントリとしたテーブルである。
オブジェクト管理テーブル1600は、図17に示されるように、オブジェクトID1610と、格納位置情報1620と、オブジェクト単位アクセス制御情報1630と、更新日時1640と、ユーザ定義メタデータ1650を、一つのエントリとしたテーブルである。
オブジェクトIDは、オブジェクト1380を一意に識別するためのIDである。格納位置情報1620は、オブジェクト1380の物理的な格納位置に関する情報であり、例えば、ディスクドライブの論理ブロック番号である。オブジェクト単位アクセス制御情報1630は、例えば、当該オブジェクトへのアクセス権を有するユーザIDのリストである。更新日時1640は、当該オブジェクトの最終更新日時である。ユーザ定義メタデータ1650は、更新日時1640のようにシステムがデフォルトで管理するメタデータの他に、ユーザがオブジェクト管理のために任意に設定できるメタデータである。ユーザ定義メタデータ1650の形式は、例えば、XML(eXtensible Markup Language)やJSON(JavaScript(登録商標) Object Notation)等により記述される。なお、実施形態1に示したブロックチェーンブロック格納ファイル800の拡張属性領域900における細粒度アクセス制御情報テーブル900に格納されている細粒度アクセス制御情報は、変換されて、ユーザ定義メタデータ1650の中に格納される。
次に、図18を用いてオブジェクトストレージの処理について説明する。
バックアップ処理は、バックアップモジュール1410により、実行される処理であり、管理者からの指示や、予め定められたスケジュール(例えば、毎日午前3時)に基づいて実行される。バックアップ処理への入力は、バックアップ条件であり、例えば、「前日に追加された全てのブロックチェーンブロック格納ファイル」などである。
バックアップ処理は、バックアップモジュール1410により、実行される処理であり、管理者からの指示や、予め定められたスケジュール(例えば、毎日午前3時)に基づいて実行される。バックアップ処理への入力は、バックアップ条件であり、例えば、「前日に追加された全てのブロックチェーンブロック格納ファイル」などである。
先ず、バックアップモジュール1410は、入力として与えられたバックアップ条件に基づいて、バックアップ対象となるブロックチェーンブロック格納ファイル600を探索し、該当するファイルIDのリストを出力する(S1710)。
次に、バックアップモジュール1410は、S1710でリストされた全てのブロックチェーンブロック格納ファイル600について、以下のS1730からS1750までの処理を実行する(S1720)。
先ず、バックアップモジュール1410は、当該ファイルIDに基づいてブロックチェーンブロック格納ファイル600のデータ領域610をアクセスして読み込み、PUTモジュール1520を介してそのデータをオブジェクトストレージ1300へPUTする(S1730)。
次に、バックアップモジュール1410は、当該ファイルのファイル単位アクセス制御情報621を取得し、オブジェクト単位アクセス制御情報1630にマッピングして、S1730でPUTしたオブジェクトに設定する(S1740)。ここで、マッピングとは、ファイルシステムとオブジェクトストレージでユーザIDの名前空間が異なる場合に、その対応付けを行うことを言う。ユーザIDの対応関係は、例えば、データ管理プログラム1400が管理する。
そして、バックアップモジュール1410は、当該ファイルの細粒度アクセス制御テーブル900の情報を取得し、ユーザ定義メタデータ1650の形式に変換した上で、ユーザ定義メタデータWriteモジュール1530を介して設定する(S1750)。
全ての対象ブロックチェーンブロック格納ファイルについてS1730からS1750までの処理を実行し終えたら(S1760)、バックアップモジュール1410を終了する。
以上、本実施形態によれば、ブロックチェーンシステムにおいて、細粒度アクセス制御の設定を施したファイルを複製したり、移動したりする場合に、複製先や移動先のオブジェクトストレージにおいて、複製元や移動元と同様の細粒度アクセス制御を提供可能となる。なお、以上の記述では、ファイルシステムとオブジェクトストレージの組合せを例に説明したが、移動や複製は、ファイルシステム間やオブジェクトストレージ間で行ってもよい。
200…管理端末
210…ネットワーク
220…ブロックチェーンノード
280…クライアント端末
1300…オブジェクトストレージ
210…ネットワーク
220…ブロックチェーンノード
280…クライアント端末
1300…オブジェクトストレージ
Claims (14)
- プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理システムであって、
前記データは、複数のサブデータを有し、
細粒度アクセス情報は、サブデータの前記データ内での位置と、前記サブデータに対するアクセス権の規定を含み、
前記プロセッサは、前記細粒度アクセス情報に基づいて、前記データ内のサブデータへのアクセスを制御することを特徴とするデータ管理システム。 - 前記細粒度アクセス情報は、前記データごとに作成されて、前記データ内に格納され、 前記プロセッサは、アクセス対象となるデータに格納された細粒度アクセス情報に基づいて、前記サブデータへのアクセスを制御することを特徴とする請求項1に記載のデータ管理システム。
- 前記データに対してアクセス制御情報が設定されており、
前記アクセス制御情報に基づき前記データに対してアクセス可能な場合に、前記データ内の細粒度アクセス制御情報にアクセスして前記サブデータへのアクセス可否を判断することを特徴とする請求項2に記載のデータ管理システム。 - 前記細粒度アクセス情報は、さらに、前記サブデータを維持するリテンション情報を含み、
前記リテンション情報に基づいて前記サブデータへのアクセスを制御することを特徴とする請求項1に記載のデータ管理システム。 - 前記データは、ブロックチェーンブロック格納ファイルであり、前記サブデータは、ブロックチェーンブロック内のトランザクションデータであり、
前記アクセス制御情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、属性情報として保持され、
前記細粒度アクセス情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、拡張属性として保持されることを特徴とする請求項3に記載のデータ管理システム。 - 前記プロセッサは、
前記細粒度アクセス情報を設定する際に、
複数のデータをグループ分けし、
同じグループに属する複数のデータに対して、一括して前記細粒度アクセス情報を設定することを特徴とする請求項2に記載のデータ管理システム。 - 前記データをバックアップする際に、
バックアップするデータに関する前記細粒度アクセス情報を、バックアップデータの一部として保持することを特徴とする請求項1に記載のデータ管理システム。 - プロセッサを有し、情報処理装置が扱うデータへのアクセスを制御するデータ管理方法であって、
前記データは、複数のサブデータを有し、
細粒度アクセス情報は、サブデータの前記データ内での位置と、前記サブデータに対するアクセス権の規定を含み、
前記プロセッサは、前記細粒度アクセス情報に基づいて、前記データ内のサブデータへのアクセスを制御するステップを有することを特徴とするデータ管理方法。 - 前記細粒度アクセス情報は、前記データごとに作成されて、前記データ内に格納され、 前記プロセッサは、アクセス対象となるデータに格納された細粒度アクセス情報に基づいて、前記サブデータへのアクセスを制御することを特徴とする請求項8に記載のデータ管理方法。
- 前記データに対してアクセス制御情報が設定されており、
前記アクセス制御情報に基づき前記データに対してアクセス可能な場合に、前記データ内の細粒度アクセス制御情報にアクセスして前記サブデータへのアクセス可否を判断することを特徴とする請求項9に記載のデータ管理方法。 - 前記細粒度アクセス情報は、さらに、前記サブデータを維持するリテンション情報を含み、
前記リテンション情報に基づいて前記サブデータへのアクセスを制御することを特徴とする請求項8に記載のデータ管理方法。 - 前記データは、ブロックチェーンブロック格納ファイルであり、前記サブデータは、ブロックチェーンブロック内のトランザクションデータであり、
前記アクセス制御情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、属性情報として保持され、
前記細粒度アクセス情報は、前記ブロックチェーンブロックを含んだ前記ブロックチェーンブロック格納ファイルに、拡張属性として保持されることを特徴とする請求項10に記載のデータ管理方法。 - 前記プロセッサは、
前記細粒度アクセス情報を設定する際に、
複数のデータをグループ分けし、
同じグループに属する複数のデータに対して、一括して前記細粒度アクセス情報を設定するステップを有することを特徴とする請求項9に記載のデータ管理方法。 - 前記データをバックアップする際に、
バックアップするデータに関する前記細粒度アクセス情報を、バックアップデータの一部として保持することを特徴とする請求項8に記載のデータ管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019017935A JP2020126409A (ja) | 2019-02-04 | 2019-02-04 | データ管理システムおよびデータ管理方法 |
EP19217064.5A EP3690695A1 (en) | 2019-02-04 | 2019-12-17 | Data management system and data management method |
US16/733,423 US20200250333A1 (en) | 2019-02-04 | 2020-01-03 | Data management system and data management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019017935A JP2020126409A (ja) | 2019-02-04 | 2019-02-04 | データ管理システムおよびデータ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020126409A true JP2020126409A (ja) | 2020-08-20 |
Family
ID=68944268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019017935A Pending JP2020126409A (ja) | 2019-02-04 | 2019-02-04 | データ管理システムおよびデータ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200250333A1 (ja) |
EP (1) | EP3690695A1 (ja) |
JP (1) | JP2020126409A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282570A (zh) * | 2021-05-25 | 2021-08-20 | 杭州复杂美科技有限公司 | 区块链节点配置方法、计算机设备和存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3905092A1 (en) * | 2019-02-15 | 2021-11-03 | MasterCard International Incorporated | A computer-implemented method for removing access to data |
JP2020154687A (ja) * | 2019-03-20 | 2020-09-24 | 株式会社リコー | 管理システム、サーバシステム、遠隔機器管理システム、機密情報削除方法およびプログラム |
US20210089403A1 (en) * | 2019-09-20 | 2021-03-25 | Samsung Electronics Co., Ltd. | Metadata table management scheme for database consistency |
EP3837652B1 (en) * | 2020-04-15 | 2022-09-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Distributed blockchain data storage under account model |
SG11202103246SA (en) | 2020-04-20 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Distributed blockchain data storage under account model |
US11829368B2 (en) * | 2020-07-09 | 2023-11-28 | Fidelity Information Services, Llc | Systems and methods for management of data analytics platforms using metadata |
CN114117507B (zh) * | 2020-08-28 | 2024-01-30 | 中国电信股份有限公司 | 对象存储***及其访问控制方法和设备、存储介质 |
US11921866B2 (en) * | 2021-03-26 | 2024-03-05 | Consumer Direct, Inc. | System and method for protection of personal identifiable information |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175851A (en) * | 1989-05-15 | 1992-12-29 | International Business Machines Corporation | System and method for controlling client machine access to a portion of a file with a variable length |
JP3059467B2 (ja) * | 1990-07-17 | 2000-07-04 | シャープ株式会社 | ファイル管理装置 |
CN100498792C (zh) * | 2007-06-08 | 2009-06-10 | 北京神舟航天软件技术有限公司 | 数据库表行级数据的自主访问控制方法 |
US8001357B2 (en) * | 2008-04-30 | 2011-08-16 | Microsoft Corporation | Providing a single drive letter user experience and regional based access control with respect to a storage device |
CN102918511A (zh) * | 2010-05-27 | 2013-02-06 | 富士通株式会社 | 中继装置、中继***、中继方法、程序以及记录了程序的计算机可读取的记录介质 |
US20130138705A1 (en) | 2011-11-28 | 2013-05-30 | Hitachi, Ltd. | Storage system controller, storage system, and access control method |
WO2016118177A1 (en) * | 2015-01-19 | 2016-07-28 | Hewlett Packard Enterprise Development Lp | Access control to a portion of a file system object |
EP3398091B1 (en) * | 2016-02-19 | 2022-05-11 | Huawei Technologies Co., Ltd. | System and method for unified access control on federated database |
US9785369B1 (en) * | 2016-05-23 | 2017-10-10 | Accenture Global Solutions Limited | Multiple-link blockchain |
WO2017218983A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Distributed, centrally authored block chain network |
EP3559882A1 (en) * | 2017-03-22 | 2019-10-30 | NEC Laboratories Europe GmbH | Method for operating a blockchain |
US20180330342A1 (en) * | 2017-05-11 | 2018-11-15 | Gyan Prakash | Digital asset account management |
US11163904B2 (en) * | 2018-09-04 | 2021-11-02 | International Business Machines Corporation | Fine-grained access control to datasets |
US11392714B1 (en) * | 2018-09-25 | 2022-07-19 | Amazon Technologies, Inc. | Hierarchically encrypted data management system |
US11308230B2 (en) * | 2019-01-28 | 2022-04-19 | Red Hat, Inc. | Direct access to host memory for guests |
-
2019
- 2019-02-04 JP JP2019017935A patent/JP2020126409A/ja active Pending
- 2019-12-17 EP EP19217064.5A patent/EP3690695A1/en not_active Withdrawn
-
2020
- 2020-01-03 US US16/733,423 patent/US20200250333A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282570A (zh) * | 2021-05-25 | 2021-08-20 | 杭州复杂美科技有限公司 | 区块链节点配置方法、计算机设备和存储介质 |
CN113282570B (zh) * | 2021-05-25 | 2022-06-28 | 杭州复杂美科技有限公司 | 区块链节点配置方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3690695A1 (en) | 2020-08-05 |
US20200250333A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020126409A (ja) | データ管理システムおよびデータ管理方法 | |
US9984006B2 (en) | Data storage systems and methods | |
EP3539021B1 (en) | Formation and manipulation of test data in a database system | |
US7899793B2 (en) | Management of quality of services in storage systems | |
CN112889054B (zh) | 多租户数据库管理***中数据库加密的***和方法 | |
US8190835B1 (en) | Global de-duplication in shared architectures | |
US11360856B2 (en) | Manifest index for block-level snapshots | |
US20230259640A1 (en) | Data storage systems and methods of an enforceable non-fungible token having linked custodial chain of property transfers prior to minting using a token-based encryption determination process | |
US10621071B2 (en) | Formation and manipulation of test data in a database system | |
US11029851B2 (en) | Sub-block modifications for block-level snapshots | |
US11016671B2 (en) | Snapshot block storage path structure wherein identification of blocks that are identical between two snapshots are determined without performing block by block comparison between the two snapshots | |
US11822806B2 (en) | Using a secondary storage system to implement a hierarchical storage management plan | |
US20200201745A1 (en) | Formation and manipulation of test data in a database system | |
US20230034426A1 (en) | Method, system, and computer program product for implementing a standby database with real-time secure subsetting | |
US11403185B2 (en) | Network-accessible block-level snapshots | |
US11522914B1 (en) | Peer-based policy definitions | |
CN113094754A (zh) | 大数据平台数据修改***及修改、响应、缓存、校验方法 | |
CN113094753A (zh) | 基于区块链的大数据平台hive数据修改方法以及*** | |
KR102561492B1 (ko) | 개인적 데이터를 담은 매체의 안전한 저장과 저장된 개인적 데이터의 삭제를 위한 기기 및 방법 | |
Wang et al. | VI-Store: Towards Optimizing Blockchain-Oriented Verifiable Ledger Database | |
Malcher et al. | Data Pump | |
Kushe et al. | Evaluation of Techniques for Improving Performance and Security in Relational Databases | |
GAUSSDB | DATABASE PRINCIPLES AND TECHNOLOGIES–BASED ON |