限制協(xié)處理器的使用
在多租戶環(huán)境中,限制任意用戶協(xié)處理器可能是一個(gè)很大的問題。HBase提供了連續(xù)的選項(xiàng),以確保只有預(yù)期的協(xié)處理器運(yùn)行:
- hbase.coprocessor.enabled:啟用或禁用所有協(xié)處理器。這將限制HBase的功能,因?yàn)榻盟袇f(xié)處理器將禁用某些安全提供程序。一個(gè)受影響的示例是org.apache.hadoop.hbase.security.access.AccessController。
- hbase.coprocessor.user.enabled:啟用或禁用在表(即用戶協(xié)處理器)上加載協(xié)處理器。
- 在hbase-site.xml中,可以通過以下可調(diào)參數(shù)靜態(tài)加載協(xié)處理器:
- hbase.coprocessor.regionserver.classes:由區(qū)域服務(wù)器加載的以逗號分隔的協(xié)處理器列表;
- hbase.coprocessor.region.classes:逗號分隔的RegionObserver和Endpoint協(xié)處理器列表;
- hbase.coprocessor.user.region.classes:由所有區(qū)域加載的以逗號分隔的協(xié)處理器列表;
- hbase.coprocessor.master.classes:由主服務(wù)器(MasterObserver協(xié)處理器)加載的以逗號分隔的協(xié)處理器列表;
- hbase.coprocessor.wal.classes:要加載的以逗號分隔的WALObserver協(xié)處理器列表;
- hbase.coprocessor.abortonerror:如果協(xié)處理器應(yīng)該出錯(cuò)而不是IOError,是否中止已加載協(xié)處理器的守護(hù)進(jìn)程。如果將此設(shè)置為false,并且訪問控制器協(xié)處理器應(yīng)該有致命錯(cuò)誤,則將繞過協(xié)處理器,因此在安全安裝中應(yīng)建議為true;但是,可以在每個(gè)表的基礎(chǔ)上為用戶協(xié)處理器重寫此操作,以確保它們不會中止其運(yùn)行區(qū)域服務(wù)器,而是在出錯(cuò)時(shí)卸載。
- hbase.coprocessor.region.whitelist.paths:可用于加載org.apache.hadoop.hbase.security.access.CoprocessorWhitelistMasterObserver的逗號分隔列表,通過這個(gè)列表,人們可以使用下列選項(xiàng)來加載協(xié)處理器的白名單路徑。
- 類路徑上的協(xié)處理器隱式列入白名單;
- *通配符所有協(xié)處理器路徑;
- 整個(gè)文件系統(tǒng)(例如,hdfs://my-cluster/);
- 由FilenameUtils.wildcardMatch計(jì)算的通配符路徑;
- 注意:路徑可以指定方案或不指定方案(例如,file:///usr/hbase/lib/coprocessors或所有文件系統(tǒng):/usr/hbase/lib/coprocessors)
更多建議: