W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
可見性標簽控件可用于僅允許與給定標簽關(guān)聯(lián)的用戶或主體讀取或訪問具有該標簽的單元格。例如,您可以標記一個單元格top-secret,并且只將該標簽的訪問權(quán)授予該managers組??梢娦詷撕炇鞘褂脴撕瀸崿F(xiàn)的,標簽是HFile v3的一個功能,并允許您以每個單元為基礎存儲元數(shù)據(jù)。標簽是一個字符串,可以使用邏輯運算符(&,|或?。撕灲M合為表達式,并使用圓括號進行分組。HBase不能對表達式進行任何形式的驗證,除了基本的良好格式??梢娦詷撕灡旧頉]有意義,可以用來表示敏感度級別、特權(quán)級別或任何其他任意的語義含義。
如果用戶的標簽與單元格的標簽或表達式不匹配,則拒絕用戶訪問該單元格。
在HBase 0.98.6及更高版本中,可見性標簽和表達式支持UTF-8編碼。當使用org.apache.hadoop.hbase.security.visibility.VisibilityClient類提供的addLabels(conf, labels)方法創(chuàng)建標簽并通過掃描或獲取在授權(quán)中傳遞標簽時,標簽可以包含UTF-8字符,以及可見標簽中通常使用的邏輯運算符以及常規(guī)Java符號,而不需要任何轉(zhuǎn)義方法。但是,當通過Mutation傳遞CellVisibility表達式時,如果使用UTF-8字符或邏輯運算符,則必須將該表達式與該CellVisibility.quote()方法一起放入。請參閱TestExpressionParser和源文件hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestScan.java。
用戶在Put操作期間向單元添加可見性表達式。在默認配置中,用戶不需要訪問標簽就可以用它來標記單元格。此行為由配置選項hbase.security.visibility.mutations.checkauths控制。如果您設置此選項為true,則用戶正在修改的標簽必須與用戶關(guān)聯(lián),否則修改將失敗。在獲取或掃描期間確定用戶是否有權(quán)讀取標記的單元格,并且不允許用戶讀取的結(jié)果被過濾掉。這會導致相同的I/O處罰,如同返回結(jié)果一樣,但會減少網(wǎng)絡負載。
可見性標簽也可以在刪除操作中指定。有關(guān)可見性標簽和刪除的詳細信息,請參閱HBASE-10885。
當RegionServer首次收到請求時,將在RPC上下文中生成用戶的有效標簽集。用戶與標簽關(guān)聯(lián)的方式是可插入的。默認插件通過添加到獲取或掃描的授權(quán)中指定的標簽,并檢查針對主叫用戶的已認證標簽列表的標簽。當客戶端傳遞用戶未通過身份驗證的標簽時,默認插件會刪除它們。您可以通過Get#setAuthorizations(Authorizations(String,…?))和Scan#setAuthorizations(Authorizations(String,…?));方法傳遞用戶經(jīng)過身份驗證的標簽的子集。
可以按照與用戶相同的方式向組授予可見性標簽。組前綴為符號@。當檢查用戶的可見性標簽時,服務器將包括用戶所屬的組的可見性標簽以及用戶自己的標簽。當使用API VisibilityClient#getAuths或Shell命令get_auths為用戶檢索可見性標簽時,我們將返回專門為該用戶添加的標簽,而不是組級標簽。
可見性標簽訪問檢查由VisibilityController協(xié)處理器執(zhí)行。您可以使用VisibilityLabelService接口來提供自定義實現(xiàn)或控制可見性標簽與單元格一起存儲的方式。請參閱源文件hbase-server/src/test/java/org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithCustomVisLabService.java。
可見性標簽可以與ACL一起使用,需要注意以下幾點:
可見性表達式的示例
表達式 | 解釋 |
---|---|
fulltime |
允許訪問與fulltime標簽關(guān)聯(lián)的用戶。 |
!public |
允許訪問不與public標簽關(guān)聯(lián)的用戶。 |
( secret | topsecret ) & !probationary |
允許訪問與secret標簽或topsecret標簽相關(guān)聯(lián)的用戶,而不與probationary 標簽關(guān)聯(lián)。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: