TW202242634A - 用於針對儲存在資料儲存器中之資料的存取進行控制之資料儲存系統及方法 - Google Patents
用於針對儲存在資料儲存器中之資料的存取進行控制之資料儲存系統及方法 Download PDFInfo
- Publication number
- TW202242634A TW202242634A TW111106836A TW111106836A TW202242634A TW 202242634 A TW202242634 A TW 202242634A TW 111106836 A TW111106836 A TW 111106836A TW 111106836 A TW111106836 A TW 111106836A TW 202242634 A TW202242634 A TW 202242634A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- access
- data storage
- client
- storage system
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims description 20
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 8
- 238000005192 partition Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
方面涉及一種資料儲存系統,其包含有一資料儲存器用於儲存包含有複數個資料元素的資料,其中每一個資料元素與一資料儲存表相關聯;一資料儲存器存取介面,其被組配成從一資料存取客戶接收對一資料元素的一存取請求,其中該請求包含該資料元素之該儲存位置的一識別碼;以及一存取控制器,其被組配成根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表;判定該資料存取客戶是否具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限;以及如果該資料存取客戶具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶對該資料元素進行存取。
Description
發明領域
本發明的各個方面涉及用於針對儲存在資料儲存器中之資料的存取進行控制之資料儲存系統及方法。
發明背景
一電子叫車服務讓客戶可以使用他們的智慧型手機叫計程車,但客戶是否滿意,很大程度上取決於該等電子叫車服務司機的素質,即他們是否採取明智的路線、不試圖欺騙客戶以及是否友善。為了控制該等司機的該素質,一電子叫車伺服器可以維護儲存有一司機之資訊的資料儲存器,諸如該司機是否被列入該電子叫車服務的白名單或黑名單中。類似地,可能需要把乘客列入白名單或黑名單,例如,如果他們不付款或行為不端的話。一般而言,資料儲存器可被維持成儲存實體(例如,司機或乘客)狀態。一電子叫車服務供應商也可以把其他的資料儲存在一資料儲存器中,諸如地圖資料、支付資訊等等。通常,對資料儲存器之存取進行保護係所欲的,使得並不是每位使用者都可以存取在該資料儲存器中的每一個資料元素,即存在有一基於角色的存取控制(RBAC)。
因此,用於資料儲存器之基於角色的存取控制之有效且靈活的方法係所欲的。
發明概要
各種實施例涉及一種資料儲存系統,該資料儲存系統包含有一種用於儲存包含有複數個資料元素之資料的資料儲存器,其中每一個資料元素與一資料儲存表相關聯;一資料儲存器存取介面,該資料儲存器存取介面被組配成從一資料存取客戶接收對一資料元素進行存取的一請求,其中該請求包含該資料元素之該儲存位置的一識別碼;以及一存取控制器,該存取控制器被組配成根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表,判定該資料存取客戶是否具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,並且如果該資料存取客戶具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶存取該資料元素。
根據一個實施例,該儲存位置的該識別碼係一統一資源識別碼。
根據一個實施例,該存取控制器被組配成藉由從該儲存位置之該識別碼的反向查找映射來確定該資料儲存表。
根據一個實施例,該儲存位置的該識別碼係一統一資源識別碼,並且該存取控制器被組配成藉由遍歷一搜尋樹的手段來執行該反向查找映射,其中該搜尋樹包含用於該統一資源識別碼之每一個字元的一節點並且包含一葉節點,該葉節點包含有該資料儲存表的一指示。
根據一個實施例,該存取控制器被組配成如果該資料存取客戶不具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則拒絕存該取資料元素的一請求。
根據一個實施例,該資料儲存系統包含一資料存取介面,其中允許及拒絕對該資料元素的存取包含把指出該資料存取客戶是否有權存取該資料元素的資訊傳輸到該資料存取介面。
根據一個實施例,該資訊指出該資料存取客戶對該資料元素的存取權限。
根據一個實施例,該資料存取介面被組配成如果該存取控制器已經同意該資料存取客戶存取該資料元素,則開啟對該資料元素的一存取串流。
根據一個實施例,同意該資料存取客戶對該資料元素進行存取包含把一暫時存取令牌傳輸到該資料存取介面,其中該資料存取介面被組配成為一資料存取客戶開啟存取,因其已接收到來自該存取控制器的一暫時存取令牌。
根據一個實施例,該請求包含對一存取令牌的一請求,並且同意該資料存取客戶對該資料元素進行存取包含把一暫時存取令牌傳輸到該資料存取客戶,其中該暫時存取令牌包括該資料存取客戶的一識別。
根據一個實施例,該資料存取介面被組配成為一資料存取客戶開啟存取,因其已接收到來自該資料存取客戶的一暫時存取令牌。
根據一個實施例,其包含有一登錄系統,該登錄系統被組配成使用被包括在該暫時存取令牌中該資料存取客戶的該識別來登錄該存取。
根據一個實施例,針對該資料元素的該存取係一寫入存取或其中針對該資料元素的該存取係一讀取存取。
根據一個實施例,針對該資料元素的該存取係針對包括有該資料元素之複數個資料元素的一存取。
根據一個實施例,該資料儲存器係一資料湖泊。
根據一個實施例,該資料儲存器係一雲端資料儲存器。
根據一個實施例,該資料存取客戶係由根據一群集運算架構來操作之一資料處理實體來被實現的。
根據一個實施例,提供有一種用於針對儲存在一資料儲存器中之資料的存取進行控制的方法,其包含有從一資料存取客戶接收對一資料元素的存取請求,其中該請求包含該資料元素在一資料儲存器中該儲存位置的一識別碼,其中該資料儲存器用於儲存包含有複數個資料元素的資料,其中每一個資料元素與一資料儲存表相關聯,根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表,判定該資料存取客戶是否具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,並且如果該資料存取客戶具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶存取該資料元素。
根據一個實施例,提供了一種包含有程式指令的電腦程式元件,當該等程式指令由一或多個處理器執行時,致使該等一或多個處理器執行該上述針對儲存在一資料儲存器中之資料的存取進行控制的方法。
根據一個實施例,提供了一種包含有程式指令的電腦可讀取媒體,當該等程式指令由一或多個處理器執行時,致使該等一或多個處理器執行該上述針對儲存在一資料儲存器中之資料的存取進行控制的方法。
應當注意的是,在該資料儲存系統的上下文中所描述的實施例對針對儲存在資料儲存器中之資料的存取進行控制的該方法類似地有效。
較佳實施例之詳細說明
以下的詳細描述參考了該等附圖,該等附圖通過說明的方式圖示出可在其中實踐本發明的具體細節及實施例。這些實施例以足夠詳細的方式被描述以使本領域的習知技藝者能夠實踐本發明。在不脫離本發明範圍的情況下,其他實施例可被利用並且可以進行結構及邏輯上的改變。該等各種實施例不一定係相互排斥的,因為一些實施例可以與一或多個其他的實施例相結合以形成新的實施例。
在該等裝置或方法中之一個的上下文中所描述的實施例對於其他的裝置或方法會類似地有效。類似地,在一裝置的上下文中所描述的實施例會類似地適用於一車輛或一方法,反之亦然。
在一實施例的該上下文中所描述的特徵可相應地適用在其他實施例中相同或相似的特徵。在一實施例的該上下文中所描述的特徵可相應地適用於其他的實施例,即使在這些其他實施例中並沒有被明確地描述。此外,針對在一實施例上下文中一特徵所描述之添加及/或組合及/或替代可相應地適用於在其他實施例中相同或相似的特徵。
在不同實施例的該上下文中,關於一特徵或元件所使用之該等冠詞「一」、「一個」及「該」包括對該等特徵或元件之一或多個的參考。
如在本文中所使用的,該用詞「及/或」包括該等相關聯所列項目之一或多個的任意及所有的組合。
在下文中,實施例將被詳細地說明。
通常被使用在一智慧型手機上的一電子叫車應用程式允許其使用者透過他或她的智慧型手機叫來一計程車(或一私人司機)以進行一旅程。
圖1展示出包括有一智慧型手機100及一伺服器(電腦)106的一種通訊佈置。
該智慧型手機100具有一螢幕,其顯示一電子叫車應用程式的該圖形使用者介面(GUI),該智慧型手機的使用者先前已安裝該電子叫車應用程式在他的智慧型手機上並已打開(即開始)以進行電子叫車(計程車或私人司機)。
該GUI 101包括該使用者附近的一地圖102(該應用程式可基於一位置服務,例如基於GPS的位置服務來確定該地圖)。此外,該GUI 101包括一出發點框103(其可被設置為從位置服務所獲得該使用者當前的位置)及一目的地框104,使用者可觸碰其以輸入一目的地(例如開啟目的地的一可能列表)。也可能有一功能表(圖中未顯示),其允許該使用者可選擇不同的選項,例如如何支付(現金、信用卡、該電子叫車服務的信用餘額)。當該使用者選擇了一目的地並做出任何必要的選項選擇時,他或她可以觸碰一「尋找汽車」按鈕105以開始搜尋一合適的汽車。
為此,該電子叫車應用程式經由一無線電連接與該電子叫車服務的該伺服器106進行通訊。該伺服器106 包括一資料儲存器,其具有有關於已註冊車輛111當前位置的資訊、有關於何時它們被預期有空的資訊、有關於交通堵塞的資訊等等。由此看來,該伺服器106的一處理器110選擇最適合的車輛(如果有的話,即如果該請求可被滿足)並提供何時該司機可到達那裡接該使用者的時刻、該乘坐的價格以及需要花多久時間可到達該目的地的一估計。該伺服器把此傳回該智慧型手機100並且該智慧型手機100把該資訊顯示在該GUI 101上。然後該使用者可藉由觸碰相應的按鈕來接受(即預定)。如果該使用者接受,該伺服器106通知該被選擇的車輛111(或,等同地,它的司機),即該伺服器106已分配用於實現該運輸請求的該車輛。
應被注意的是,雖然該伺服器106被描述為一單一伺服器,它的功能,例如用於為整個城市提供一電子叫車服務,將通常在實際應用中由多個伺服器電腦的一種佈置來被提供(例如實現一雲端服務)。因此,在下文中描述由該伺服器106所提供的該功能可被理解為係由多台伺服器或多台伺服器電腦的一種佈置來被提供的。
對於一電子叫車服務的該運營商來說,可能被分配給旅程之該等車輛111的該等司機有高素質係非常重要的,因為如果顧客的司機不友善、走不好的路線(例如花費太長的時間)或甚至試圖欺騙他們,顧客將不滿意並且可能會停止使用該電子叫車服務。為了能夠確保司機的素質,該伺服器106可以把有關於司機的資訊儲存在一資料儲存器108中,諸如該司機是否被列入到電子叫車服務的白名單或黑名單中。其他的伺服器或分析司機行為之該電子叫車供應商的其他團隊然後可以存取該資料儲存器108以檢索或寫入該資料元素。
在該資料儲存器中之資料係有關於司機的資訊僅係一實例,而該資料儲存器可以儲存由該電子叫車系統的伺服器(諸如伺服器106)或該電子叫車系統之其他位資料存取客戶所使用之許多其他類型的資料。例如,它還可能保存乘客資訊(例如,乘客的白名單/黑名單指示)、支付資訊(即顧客在該電子叫車服務中所執行之支付的列表)、地圖資料、司機供應資訊、分析資訊(例如針對一天特定時間點或季節之需求的分析)等等。
該資料儲存器108例如可以是由一雲端儲存供應商所提供之一基於雲端之系統107的一部分。對資料的存取進行控制係所欲的,使得不是每一個資料存取客戶(即,作為該資料儲存器之客戶的實體,針對讀取或寫入存取或兩者)都可以存取在該資料儲存器中的每一個資料元素。例如,提供需求分析的一客戶電腦不應具有對支付資訊的寫入權限。換句話說,最好有一個基於角色的存取控制(RBAC)。
RBAC架構的一個實例係Apache Ranger。然而,它僅支援對表格進行SQL驗證,不支援直接存取一儲存位置。諸如Azure Active Directory及AWS IAM(亞馬遜網路服務身份及存取管理)等其他的實例需要大量的策略來維護使用者級別的存取權限,並且不使用資料的動態列過濾及屏蔽,因為具有一IAM設定檔的一使用者具有資料的存取權限,並且可以使用任何AWS/Azure API(應用程式規劃介面)來直接地存取它們。
圖2展示出支援RBAC的一資料儲存系統200。
為了控制一資料儲存器201,由(例如一資料湖泊)客戶202對該資料儲存器201的請求由一存取控制系統203來處理。該等客戶202例如係被組織在一群集運算架構,諸如Apache Spark,中的資料處理實體,例如用於大規模資料處理之一分析引擎環境的一部分。該存取控制系統203(至少部分地由一存取控制器,即一存取控制伺服器來實現)在檔案級別上執行客戶(或使用者)級別的認證及授權。如以上所述,該資料儲存器201例如係一基於雲端的儲存器。
如將在下文被更為詳細描述的,根據各種實施例,該存取控制系統203允許達成對雲端IAM系統較少的依賴以及可認證及授權所有形式的資料存取(對於該資料湖泊)。例如,它可以被實現為支援Apache Hadoop檔案系統兼容的運算架構,諸如Apache Spark,並支援各種可能形式的資料存取途徑(例如SQL或基於檔案的存取)。它可被組配成能夠處理藉由使用檔案API繞過SQL限制的流氓使用者。它可被實現來支援多雲端,並且可被實現在一現有的資料儲存系統中,而對現有資料管道幾乎沒有改變。此外,它可被組配成允許對該資料湖泊201的存取進行觀察。
根據各種實施例,一(資料存取)客戶202藉由一檔案或目錄URI(統一資源識別碼)來存取該資料儲存器201。根據各種實施例,一反向索引機制被使用,其允許識別出與一給定檔案/目錄URI相關聯的該(等)表。使用該索引,該存取控制系統203在運行時(即,在該資料儲存系統200的操作期間)動態地產生暫時認證令牌(例如,雲端令牌),並且該等客戶202使用這些令牌來存取該資料儲存器(即,用於向該資料儲存器201,例如雲端,展示他們具有存取權限)。例如,這種方法可被實現來用於該Apache Spark架構,但也可被實現來用於其他的架構,特別是任何使用Hadoop檔案系統標準的運算架構。
根據各種實施例,該存取控制系統203確保沒有客戶(或使用者)202可直接存取該資料儲存裝置201並且對該資料儲存裝置201的該等資料存取操作係在該客戶級別被登錄,從而提高了安全性。
根據各種實施例,該存取控制系統203使用記憶體內查找及暫時令牌的一種組合來實行(對該資料儲存器201的)資料存取控制。在更詳細地描述示例性實施例之前,針對一客戶202嘗試存取該資料儲存器201的幾個實例(在一Apache Spark架構中)被給出。
例如,一使用者(操作一客戶202)知道某個表的該儲存資訊並試圖存取在該表中的某個分區(例如預訂代碼),例如藉由一python命令spark.read.parquet並指出該分區的該路徑作為該命令的引數。假設使該使用者並沒有對該表的存取權限。該存取控制系統203在該反向索引的幫助下,能夠識別出該相關聯的表並智慧地阻止該使用者的存取。
同樣適用於使用者的是使用一基於SQL的存取,即從該表中對該分區進行一SQL選擇查詢。
如果該使用者存取對其該使用者具有一讀取存取權限之一表的一或多個資料元素(例如一分區),則該存取控制系統203允許該請求(用於該讀取存取)並且向該使用者提供一相應的結果。
該存取控制機制可以使用一主從架構來被實現。例如,為了在一現有的運算系統中根據一Hadoop抽象檔案系統兼容的運算架構(例如:Apache Spark)來實現它,需要在該架構的該類別路徑中添加一個客戶端程式庫。一存取控制伺服器與該Apache Hive服務的該後端儲存器互動並產生一反向查找映射以識別出在一請求中所給定之一儲存位置的該關聯表。每當一客戶202嘗試使用SQL或檔案API從像是一Apache Spark系統的運算系統存取一表或儲存位置時,該定製檔案系統介面會開啟輸入或輸出檔案串流(用於存取該資料儲存器201),但是,在開啟該檔案串流之前,該定製檔案系統介面與該存取控制伺服器互動(轉發該客戶試圖存取的該檔案URI),並且該存取控制伺服器用該關聯的hive表名資訊、其根位置及該客戶對於該位置的權限(即該客戶是否可以寫入或讀取)來回應該檔案系統介面。
例如,如果一客戶202對被儲存在位置 s3://grab-xxxxxxxxxxx-analytics/datalake/transformed/grappay-airtime/biller-info/處的GRABPAY_AIRTIME.BILLER_INFO表具有讀取(READ)權限,則該請求可以例如是
s3://grab-xxxxxxxxxxx-analytics/datalake/transformed/grabpay-airtime/biller-info/year=2020/month=11/day-01/............parquet-0000-1 ... parquet
而該回應為
{
"isPartOfDataLake": true,
"schema": "GRABPAY_AIRTIME",
"tableName": "BILLER_INFO",
"location": "s3://grab-xxxxxxxxxxx-analytics/datalake/transformed/grabpay-airtime/biller-info",
"permission": "READ",
"error": ""
}
如果該客戶202具有該所需的許可,則該訂製檔案系統介面允許開啟一相應的串流(讀取或寫入),其使用在該運算架構的類別路徑中已經可用之該底層實際檔案系統驅動程式(例如來自Hadoop)。在該底層檔案系統驅動程式需要一雲端儲存器存取令牌來存取該資料儲存器201的情況下,該客戶202請求該存取控制伺服器提供一暫時雲端憑證並把其傳遞給該底層檔案系統驅動程式。根據一個實施例,這些暫時令牌中的每一個都具有嵌入其中的一客戶名稱,從而能夠在該儲存服務級別處進行使用者級別存取登錄(因此允許如果未來需要之存取事件的相關性)。
以下,表1給出了一檔案系統介面的一實現示例。
表1
class GrabFileSystem extends FileSystem { |
override def initialize(name: URI, conf: Configuration): Unit = { |
//基本初始化步驟 |
//檢查權限步驟 |
1) 使用該反向查找索引識別出與該UR相關聯的表 |
2) 檢查該客戶是否對該表具有一最低的READ權限 |
3) 如果是,則獲取一暫時令牌以完成資料存取;如果否,則透過拒絕存取錯誤來禁止存取 |
4) 把該暫時令牌注入到基礎檔案系統實現並把該uri傳遞給基礎檔案系統驅動程式並完成該操作 |
} |
override def open(f: Path, bufferSize: Int): FSDataInputStream = { |
//類似於初始化函數地檢查客戶存取權限 |
} |
override def create(f: Path, |
permission: FsPermission, |
overwrite: Boolean, |
bufferSize: Int, |
replication: Short, |
blockSize: Long, |
progress: Progressable): FSDataOutputStream = { |
//類似於initialize()但檢查寫入存取權限 |
} |
//此函數將基於該執行環境例如:S3AFileSystem傳回一底層檔案系統驅動程式物件(來自快取或新的一個) |
def actualFSImpl(): FileSystem = { |
//基於運行時及操作URI獲取底層基礎驅動程式實現方式 |
} |
//其他檔案系統操作也使用類似的邏輯進行身份驗證 |
override def close(): Unit = { //處理關閉} |
} |
為了提高性能,必要的資訊可被快取在該存取控制伺服器及該各別客戶上,以最大限度地減少對各種服務的該等API調用。根據一個實施例,為了提高性能,要確保所有表(例如,hive表)都被儲存在它們自身的根位置內。根據一個實施例,該存取控制系統203基於分別地連接hive元儲存器(metastore)後端的DBS表、TBLS表及SDS表之查詢的該結果來創建一搜尋樹。這也可藉由包括有該PARTITIONS表來被進一步增強,在這種情況下,該存取控制可以在分區級別上而不是在表級別上被完成。
例如,該查詢可能是一SQL查詢,像是
select DBS.NAME as `schema`, TBLS.TBL_NAME as `table`, SDS.LOCATION as loc FROM DBS INNER JOIN TBLS ON TBLS.TBL_NAME and DBS.DB_ID = TBLS.DB_ID INNER JOIN SDS ON TBLS.SD_ID = SDS.SD_ID and SDS.LOCATION is not null
該搜尋樹的節點可被定義為
Class Node {
children: Map[Char, Node] = new Map
isHIveTable: Boolean
schema: Char[]
tableName: Char[]
}
該SQL查詢的該結果允許創建提供在URI於資料湖泊表資訊之間該映射的該搜尋樹。
根據一個實施例,該搜尋樹係藉由擴展一Trie資料結構所實現的一前綴搜尋樹。在該URI中的各種字元構成該樹的該等節點,而該葉節點(也稱為終端節點)具有與在該資料湖泊中關聯表相關的附加資訊。當一搜尋發生時,該樹會從該輸入URI被逐個節點地、逐個字元地被遍歷,當到達終端節點時,這會提供該相關聯表資訊。如果該終端節點沒有任何相關聯的資訊,則表示該URI到目前為止並不在該資料湖泊中的一註冊表中。在這種情況下,可以使用來自該內部IAM之一基於檔案/檔案前綴的ACL(存取控制列表),而不是使用來自該內部IAM的表ACL權限。
圖3根據一實施例展示出一資料儲存系統300。
該資料儲存系統包含對應於資料儲存器201的一資料儲存器301及對應於該等資料存取客戶202中之一個的一客戶302。該存取控制系統(對應於存取控制系統203)係由各個層及實體的組件所形成。
具體地說,該資料儲存系統300包含一存取控制客戶303及一存取控制伺服器304。
該存取控制客戶303例如是一群集運算層組件305的一部分(例如,根據Apache Spark操作的一客戶電腦)並且該存取控制伺服器304例如是一API層306的一部分。例如,該資料存取客戶302是在想要存取該資料儲存器之一客戶電腦上運行的一運算程式(例如,由一應用程式源319(例如,藉由Apache Livy)被放置在一Apache Spark群集上的一應用程式)。該存取控制客戶303係該資料存取系統的該客戶部分並與該存取控制伺服器304進行通訊。
該存取控制客戶303從如以上所述之一檔案系統介面307(例如Hadoop介面)接收一存取請求。該存取控制客戶303的一檔案系統包裝器在把該請求轉發到該實際底層檔案系統實現308之前,在操作級別驗證該資料存取請求(接收自一客戶302)。如果該請求被允許,則該存取控制客戶303的一認證層309會提供一存取令牌給該檔案系統308,否則會輸出一錯誤。如果被提供有一存取令牌,則該客戶的檔案系統308提取該(等)請求的資料元素。應被注意的是,群集運算層組件305可被連接到多個資料儲存器301(例如,不同供應商的雲端儲存器)並且將存取儲存該(等)所請求資料元素的那一個。該認證層309包含諸如訊息解密及一HTTP(s)客戶之類的功能。
該存取控制客戶303從該存取控制伺服器304(例如在一成功的三向交握上)獲得一存取令牌(例如暫時雲端憑證)。為此,該存取控制伺服器304包含一雲端憑證產生器310。該存取控制伺服器304執行查找、解析資源並傳回對資源的許可。為了決定是否允許該存取請求,該存取控制伺服器304可例如存取一資料存取資料庫311、來自一資料庫副本313之創建表元資料的一元資料再新功能312、一(例如Redis)快取314及一內部IAM規則引擎。在這些組件的幫助下,該存取控制伺服器304可以確定與該請求欲請求存取之該(等)資料元素相關聯的該資料儲存表以及該資料存取客戶302是否有權存取該表。
該存取控制伺服器304的該授權邏輯係可插入式的並且在圖3的該實例中被連接到該內部IAM系統320,但它也可以與像是Apache Ranger的開源解決方案整合在一起,也可以填補在這些服務中的空隙。
該資料儲存器(例如一Azure Blob儲存器或Amazon S3資料儲存器)301配備有用於登錄資料存取事件(用於歷史及審計)的一日誌315(例如一Blob日誌(Blob Log)或一S3 CloudWatch日誌(CloudWatch Log))、用於運行配備有對該資料儲存器301之資料存取事件的事件觸發代碼(諸如Azure Function或AWS Lambda)的一運算服務316、以及一安全性服務(例如 Azure AD 或 AWS STS)317其中當該運算服務316檢測到一濫用行為時警告該安全性服務317。該安全性服務317可以與該雲端憑證產生器進行通訊。
該存取控制伺服器304還可以維護一日誌(例如根據使用ELK( Elasticsearch、Logstash、Kibana))。
根據一個實施例,為了執行一客戶302的該認證,該存取控制系統可以使用各種方法,諸如一基於密碼的認證、一SCIM(用於跨域身份識別管理系統)API認證或一命名空間及服務令牌認證。
該暫時存取(例如雲端)令牌(對於每位客戶302都不同)的使用導致要對該等日誌添加一特殊欄位,其允許把該各別的存取事件與一外部服務相關聯。例如,可以在暫時雲端儲存器存取憑證產生期間設置一相關ID(並與該令牌相關聯)。該相關ID例如係來自該內部IAM系統320的一客戶ID。這意味著例如可以登錄對該資料儲存器301之每一個REST(代表性狀態轉移)API調用並且這些事件中的每一個都可被追溯到該原始使用者或客戶。這些服務日誌包含客戶資訊,無論該客戶係如何地及在何處觸發對該儲存服務的一 REST API 調用。
該資料存取系統203確保資料儲存器存取被認證、授權及監控。資料儲存器存取可能會被大眾化,因為對表及資源的請求存取可能由一IAM入口來管理。
總之,根據各種實施例,一資料儲存系統被提供,如在圖4中所示。
圖4展示出一資料儲存系統400。
該資料儲存系統400包含用於儲存資料的一資料儲存器401,該資料包含有複數個資料元素,其中每一個資料元素與一資料儲存表相關聯。
該資料儲存系統400更包含一資料儲存器存取介面402,其被組配成從一資料存取客戶403接收對一資料元素的一存取請求,其中該請求包含該資料元素之該儲存位置的一識別碼。
該資料儲存系統400更包含一存取控制器404,其被組配成根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表,判定該資料存取客戶是否具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,如果該資料存取客戶對允許對該資料元素進行該存取之該經確定資料儲存表具有存取權限,則同意該資料存取客戶存取該資料元素。
根據各種實施例,換句話說,當一資料儲存系統接收到對某個儲存位置的一請求時,一控制實體確定在該儲存位置處之該資料元素所屬的該表,檢查該客戶針對該經確定表的該存取權限並取決於該結果授予對存取該儲存位置的該權限。
需要留意的是,一資料儲存表可能係一較大表的一子表(例如一分區)。該資料儲存器存取介面402可由例如包含(例如運行)該資料儲存器存取客戶之一客戶電腦的該檔案系統來形成。
根據一個實施例,提供了一種如在圖5中所示的方法。
圖5展示出一流程圖,其圖示出一種用於針對儲存在一資料儲存器中之資料的存取進行控制之方法。
在501中,從一資料存取客戶接收對一資料元素進行存取的一請求。該請求包含該資料元素在一資料儲存器中該儲存位置的一識別碼,該資料儲存器用於儲存包含有複數個資料元素的資料,其中每一個資料元素與一資料儲存表相關聯。
在502中,根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表。
在503中,判定該資料存取客戶是否具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限。
在504中,如果該資料存取客戶具有對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶存取該資料元素。
在本文中所描述的該等方法可被執行以及在本文中所描述之該等各種處理或運算單元及裝置可由一或多個電路來實現。在一實施例中,一「電路」可被理解為任何種類的邏輯實現實體,其可以是硬體、軟體、韌體、或它們的任意組合。因此,在一實施例中,一「電路」可以是一固線式邏輯電路或一可規劃的邏輯電路,諸如一可規劃處理器,例如一微處理器。一「電路」還可以是被實現成或由一處理器來執行的軟體,例如任何種類的電腦程式,例如使用一虛擬機器碼的一電腦程式。根據一替代的實施例,在本文中所描述之該等各個功能之任何其他類型的實現方式也可被理解為一種「電路」。
雖然已經參考了特定的實施例具體地展示及描述了本發明,但本領域的習知技藝者應當理解的是,在不脫離如由所附請求項所限定之本發明精神及範圍的情況下,可以在其中進行形式及細節上的各種改變。因此,本發明的範圍係由所附請求項來指出並因此旨在包括落入該等請求項等價物之含義及範圍內所有的變化。
100:智慧型手機
101:GUI
103:出發點框
104:目的地框
106:伺服器
107:資料庫
108:已註冊的車輛
109:記憶體
110:處理器
111:車輛
200:資料儲存系統
201:資料儲存器
202:客戶
203:存取控制系統
300:資料儲存系統
301:資料儲存器
302:資料存取客戶
303:存取控制客戶
304:存取控制伺服器
305:群集運算層組件
306:API層
307:檔案系統介面
308:檔案系統
309:認證層
310:憑證產生器
311:資料存取資料庫
312:元資料再新功能
313:資料庫副本
314:快取
315,318:日誌
316:運行事件觸發代碼的運算服務
317:安全性服務
319:應用程式源
320:IAM系統
400:系統
401:資料儲存器
402:資料儲存器存取介面
403:資料存取客戶
404:存取控制器
500:方法
501〜504:方塊
參考詳細說明時結合該等非限制性實例及該等附圖來做考慮,將可更佳地理解本發明,其中:
-圖1展示出包括有一智慧型手機及一伺服器之一種用於電子叫車服務的通訊佈置。
-圖2展示出一種支援RBAC(基於角色的存取控制)的資料儲存系統。
-圖3根據一實施例展示出一種資料儲存系統。
-圖4展示出一種資料儲存系統。
-圖5一流程圖,其圖示出一種針對儲存在一資料儲存器中之資料的存取進行控制的方法。
400:系統
401:資料儲存器
402:資料儲存器存取介面
403:資料存取客戶
404:存取控制器
Claims (20)
- 一種資料儲存系統,其包含有: 一資料儲存器,用於儲存包含有複數個資料元素的資料,其中每一個資料元素係與一資料儲存表相關聯; 一資料儲存器存取介面,其被組配以從一資料存取客戶接收對一資料元素進行存取的一請求,其中該請求包含該資料元素之該儲存位置的一識別碼;以及 一存取控制器,其被組配用以: 根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表; 判定該資料存取客戶是否具有針對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限;以及 如果該資料存取客戶具有針對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶對該資料元素進行存取。
- 如請求項1之資料儲存系統,其中該儲存位置的該識別碼係一統一資源識別碼。
- 如請求項1或2之資料儲存系統,其中該存取控制器被組配以藉由來自該儲存位置的該識別碼的反向查找映射來確定該資料儲存表。
- 如請求項3之資料儲存系統,其中該儲存位置的該識別碼係一統一資源識別碼並且該存取控制器被組配以藉由遍歷一搜尋樹的方式來執行該反向查找映射,其中該搜尋樹包含用於該統一資源識別碼之每一個字元的一節點並且包含一葉節點,該葉節點包含有該資料儲存表的一指示。
- 如請求項1至4中任一項之資料儲存系統,其中該存取控制器被組配以:如果該資料存取客戶不具有針對允許對該資料元素進行一存取之該經確定資料儲存表的存取權限,則拒絕對該資料元素之該存取的該請求。
- 如請求項1至5中任一項之資料儲存系統,其包含有一資料存取介面,其中同意及拒絕對該資料元素進行存取包含把指出該資料存取客戶是否有存取該資料元素的資訊傳輸到該資料存取介面。
- 如請求項6之資料儲存系統,其中該資訊指出對該資料存取客戶之該資料元素的存取權限。
- 如請求項1至7中任一項之資料儲存系統,其中該資料存取介面被組配以:如果該存取控制器已經同意該資料存取客戶對該資料元素進行存取,則開啟對該資料元素的一存取串流。
- 如請求項6至8中任一項之資料儲存系統,其中同意該資料存取客戶對該資料元素進行存取包含把一暫時存取令牌傳輸到該資料存取介面,其中該資料存取介面被組配以為一資料存取客戶開啟存取,為此它已經接收來自該存取控制器的一暫時存取令牌。
- 如請求項6至8中任一項之資料儲存系統,其中該請求包含對一存取令牌的一請求,並且同意該資料存取客戶對該資料元素進行存取包含把一暫時存取令牌傳輸到該資料存取客戶,其中該暫時存取令牌包括該資料存取客戶的一識別。
- 如請求項10之資料儲存系統,其中該資料存取介面被組配以為一資料存取客戶開啟存取,為此它已經接收來自該資料存取客戶的一暫時存取令牌。
- 如請求項9至11中任一項之資料儲存系統,其包含有一登錄系統,該登錄系統被組配以用被包括在該暫時存取令牌中之該資料存取客戶的該識別來登錄該存取。
- 如請求項1至12中任一項之資料儲存系統,其中對該資料元素的該存取係一寫入存取或其中對該資料元素的該存取係一讀取存取。
- 如請求項1至13中任一項之資料儲存系統,其中對該資料元素的該存取係對包括有該資料元素之複數個資料元素的一存取。
- 如請求項1至14中任一項之資料儲存系統,其中該資料儲存器係一資料湖泊。
- 如請求項1至15中任一項之資料儲存系統,其中該資料儲存器係一雲端資料儲存器。
- 如請求項1至16中任一項之資料儲存系統,其中該資料存取客戶係由根據一群集運算架構來操作之一資料處理實體所實現。
- 一種用於針對儲存在一資料儲存器中之資料的存取進行控制的方法,其包含有: 從一資料存取客戶接收對一資料元素之一存取的一請求,其中該請求包含該資料元素在一資料儲存器中之該儲存位置的一識別碼,該資料儲存器用於儲存包含有複數個資料元素的資料,其中每一個資料元素係與一資料儲存表相關聯; 根據該儲存位置的該識別碼確定與該資料元素相關聯的一資料儲存表; 判定該資料存取客戶是否具有針對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限;以及 如果該資料存取客戶具有針對允許對該資料元素進行該存取之該經確定資料儲存表的存取權限,則同意該資料存取客戶對該資料元素進行存取。
- 一種包含有程式指令的電腦程式元件,當該等程式指令由一或多個處理器執行時,致使該等一或多個處理器執行如請求項18之方法。
- 一種包含有程式指令的電腦可讀取媒體,當該等程式指令由一或多個處理器執行時,致使該等一或多個處理器執行如請求項18之方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10202104267W | 2021-04-27 | ||
SG10202104267W | 2021-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202242634A true TW202242634A (zh) | 2022-11-01 |
Family
ID=83848880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111106836A TW202242634A (zh) | 2021-04-27 | 2022-02-24 | 用於針對儲存在資料儲存器中之資料的存取進行控制之資料儲存系統及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240118815A1 (zh) |
CN (1) | CN116724307A (zh) |
TW (1) | TW202242634A (zh) |
WO (1) | WO2022231514A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447829B1 (en) * | 2006-02-10 | 2013-05-21 | Amazon Technologies, Inc. | System and method for controlling access to web services resources |
US20180150650A1 (en) * | 2015-01-30 | 2018-05-31 | The Diary Corporation | System and method for controlling permissions for selected recipients by owners of data |
US10341410B2 (en) * | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
CN108664805B (zh) * | 2017-03-29 | 2021-11-23 | Tcl科技集团股份有限公司 | 一种应用程序安全校验方法及系统 |
CN113994173A (zh) * | 2019-04-29 | 2022-01-28 | 格步计程车控股私人有限公司 | 用于向用户推荐运输相关服务的一个或多个兴趣点的通信服务器装置、方法和通信系统 |
-
2022
- 2022-02-24 TW TW111106836A patent/TW202242634A/zh unknown
- 2022-03-30 US US18/263,179 patent/US20240118815A1/en active Pending
- 2022-03-30 WO PCT/SG2022/050179 patent/WO2022231514A1/en active Application Filing
- 2022-03-30 CN CN202280011065.9A patent/CN116724307A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240118815A1 (en) | 2024-04-11 |
CN116724307A (zh) | 2023-09-08 |
WO2022231514A1 (en) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11683300B2 (en) | Tenant-aware distributed application authentication | |
US10055561B2 (en) | Identity risk score generation and implementation | |
JP6033990B2 (ja) | 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス | |
US20200153870A1 (en) | Dynamic authorization in a multi-tenancy environment via tenant policy profiles | |
US9209973B2 (en) | Delegate authorization in cloud-based storage system | |
US9118653B2 (en) | System and method of secure sharing of resources which require consent of multiple resource owners using group URI's | |
US10382202B1 (en) | Method and apparatus for federated identity and authentication services | |
US8924674B2 (en) | Permissions of objects in hosted storage | |
US8032930B2 (en) | Segregating anonymous access to dynamic content on a web server, with cached logons | |
US9100398B2 (en) | Enhancing directory service authentication and authorization using contextual information | |
US20150222614A1 (en) | Authentication server auditing of clients using cache provisioning | |
US20120131646A1 (en) | Role-based access control limited by application and hostname | |
US9871778B1 (en) | Secure authentication to provide mobile access to shared network resources | |
US11888856B2 (en) | Secure resource authorization for external identities using remote principal objects | |
US11552956B2 (en) | Secure resource authorization for external identities using remote principal objects | |
US11146552B1 (en) | Decentralized application authentication | |
US11750397B2 (en) | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization | |
TW202242634A (zh) | 用於針對儲存在資料儲存器中之資料的存取進行控制之資料儲存系統及方法 | |
JP2021508097A (ja) | データ処理用のシステム、装置、及び方法 | |
NL2027514B1 (en) | Cache service for providing access to secrets in containerized cloud-computing environment | |
WO2023160632A1 (zh) | 针对飞地实例的云服务访问权限设置方法和云管理平台 | |
KR101913012B1 (ko) | 웹 ui 기반 안전한 ons 관리 시스템 및 그 방법 |