1. hbase

hbase acl

折腾吧,它几乎没有人在用,none sense,只有acl授权,没有用户认证。

原理?

原理很简单,hbase namespace中存放了acl表,in memory 类型,存了具体的acl规则。收到请求时,获取请求对应的用户名,检查acl中该用户名相关的资源权限。

粒度?

hbase的model有多个维度,这边acl是用到前面4维。name space, table, column family, column。对这几个资源定义了一些operation,如read write create等。

如何管理?

可以使用shell 或 java api管理acl。

最后一个问题,用户名怎么取?

用户名是遵从一定的顺序,从kerberos到hadoop user name,再到运行进程的用户名,优先取最先找到的这个。hbase不开启acl时,默认也会取到shell用户名。例如我用allen这个用户起了java服务访问hbase, client用的名称就是allen。

如何调整?

和hadoop user name一样,shell中export HADOOP_USER_NAME或者System.getProperties().setProperty(“HADOOP_USER_NAME”, xxx)。所以本质上,不做用户认证,acl是能够绕过的,只是一层简单的安全管控,没太多应用场景,除非自定义。

Comments to: hbase acl

Your email address will not be published. Required fields are marked *