鑒權(quán),分別由鑒和權(quán)組成
- 鑒: 表示身份認證,認證相關(guān)用戶是否存在以及相關(guān)的用戶名和密碼是否一致
- 權(quán): 完成身份的鑒后,還需要判斷用戶是否有相關(guān)操作的權(quán)限。
因此對于某一個用戶來說,通常情況下,需要完成鑒和權(quán)才能夠滿足一個完整的業(yè)務(wù)場景,因此通常將鑒權(quán)放在一起考量。本文探討hbase的鑒權(quán)常用的鑒權(quán)方式以及kerberos鑒權(quán)方式的相關(guān)方法。
1. HBase鑒權(quán)方式整理
HBase的權(quán)限管理包括兩個部分,分別是Authentication 和 Authorization。
Authentication:針對某host是否有權(quán)成為集群的regionserver或者client端,典型的實現(xiàn)是:kerberos
Authorization: 是針對client端對集群數(shù)據(jù)的讀寫等權(quán)限,能夠控制到庫、表、列鏃等級別的鑒權(quán)控制。
2. Kerboers鑒權(quán)架構(gòu)整理
2.1 kerberos的實現(xiàn)架構(gòu)
參考 HDFS鑒權(quán)設(shè)計以及Kerberos鑒權(quán)方法 中的kerbero鑒權(quán)部分
2.2 相關(guān)核心參數(shù)整理
hbase-site.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed ...
-->
<configuration>
<!-- 默認情況下是simple,表示不使用認證 -->
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
<!-- 開啟Kerberos的安全授權(quán),通常接入Kerberos以后授權(quán)必須一起打開 -->
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<!-- Master、regionserver、thrift使用的principal賬號 -->
<property>
<name>hbase.master.kerberos.principal</name>
<value>hbase/_HOST@IDATA.RUIJIE.COM</value>
</property>
<property>
<name>hbase.regionserver.kerberos.principal</name>
<value>hbase/_HOST@IDATA.RUIJIE.COM</value>
</property>
<property>
<name>hbase.thrift.kerberos.principal</name>
<value>hbase/_HOST@IDATA.RUIJIE.COM</value>
</property>
<!-- Master、regionserver、thrift不同組件使用的keytable文件 -->
<property>
<name>hbase.master.keytab.file</name>
<value>hbase.keytab</value>
</property>
<property>
<name>hbase.regionserver.keytab.file</name>
<value>hbase.keytab</value>
</property>
<property>
<name>hbase.thrift.keytab.file</name>
<value>/etc/hbase/conf/hbase.keytab</value>
</property>
<!-- 配置相關(guān)的coprocessor -->
<property>
<name>hbase.coprocessor.master.classes</name>
<value>
org.apache.hadoop.hbase.security.access.AccessControllerorg.apache.hadoop.hbase.security.visibility.VisibilityController
</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>
org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.visibility.VisibilityController,org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint
</value>
</property>
</configuration>
3. 客戶端的鑒權(quán)設(shè)計
參考mysql的庫表鑒權(quán)設(shè)計模式,能夠創(chuàng)建用戶、組和鑒權(quán)控制表、字段的讀寫權(quán)限。
3.1 安全管控權(quán)限
HBase提供五個權(quán)限標(biāo)識符:(RWXCA)
R - represents read privilege.
W - represents write privilege.
X - represents execute privilege.
C - represents create privilege.
A - represents admin privilege.
3.2 安全管控級別
相關(guān)的管控權(quán)限的作用范圍,涉及如下級別:
- Superuser:擁有所有權(quán)限的超級管理員用戶,通過hbase.superuser參數(shù)配置;
- Global:全局權(quán)限可以作用在集群所有的表上;
- Namespace :命名空間級;
- Table:表級;
- ColumnFamily:列簇級權(quán)限;
- Cell:單元級;
3.3 相關(guān)操作
和關(guān)系數(shù)據(jù)庫(如mysql)一樣,Hbase權(quán)限的授予和回收都使用grant和revoke,但格式有所不同。
3.3.1 用戶授權(quán)
# 給用戶授權(quán)emp表的操作權(quán)限
hbase(main):012:0> grant 'Administrator','RWCA','emp'
0 row(s) in 0.1740 seconds
# 查看用戶的權(quán)限
hbase(main):014:0> user_permission 'emp'
User Namespace,Table,Family,Qualifier:Permission
Administrator default,emp,,: [Permission: actions=READ,WRITE,CREATE,ADMIN]
root default,emp,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
2 row(s) in 0.0640 seconds
3.3.2 回收權(quán)限
相關(guān)語法
revoke <user> [<table> [<column family> [<column; qualifier>]]
操作示例
hbase(main):014:0> revoke 'Administrator','emp'
0 row(s) in 0.1860 seconds
4. 疑問和思考
暫無文章來源地址http://www.zghlxwxcb.cn/news/detail-822815.html文章來源:http://www.zghlxwxcb.cn/news/detail-822815.html
6. 參考文章
暫無
到了這里,關(guān)于HBase鑒權(quán)設(shè)計以及Kerberos鑒權(quán)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!