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