Newer releases of Apache HBase (>= 0.92) support optional SASL authentication of clients. See also Matteo Bertozzi’s article on Understanding User Authentication and Authorization in Apache HBase.

介绍如何设置 Apache HBase 和客户端,以便用户轻松访问 HBase 资源。

62.1。简单与安全访问

以下部分显示如何设置简单用户访问权限。简单的用户访问不是一种安全的 HBase 操作方法。此方法用于防止用户犯错误。它可用于在开发系统上模拟访问控制,而无需设置 Kerberos。

此方法不用于防止恶意或黑客攻击。要使 HBase 对这些类型的攻击安全,您必须配置 HBase 以确保安全操作。请参阅安全客户端访问 Apache HBase 部分并完成其中描述的所有步骤。

62.2。先决条件

没有

62.3。用于简单用户访问操作的服务器端配置

Add the following to the hbase-site.xml file on every server machine in the cluster:

<property>
  <name>hbase.security.authentication</name>
  <value>simple</value>
</property>
<property>
  <name>hbase.security.authorization</name>
  <value>true</value>
</property>
<property>
  <name>hbase.coprocessor.master.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
  <name>hbase.coprocessor.region.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
  <name>hbase.coprocessor.regionserver.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property> 

对于 0.94,将以下内容添加到群集中每台服务器计算机上的hbase-site.xml文件中:

<property>
  <name>hbase.rpc.engine</name>
  <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
  <name>hbase.coprocessor.master.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
  <name>hbase.coprocessor.region.classes</name>
  <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property> 

A full shutdown and restart of HBase service is required when deploying these configuration changes.

62.4。用于简单用户访问操作的客户端配置

Add the following to the hbase-site.xml file on every client:

<property>
  <name>hbase.security.authentication</name>
  <value>simple</value>
</property> 

For 0.94, add the following to the hbase-site.xml file on every server machine in the cluster:

<property>
  <name>hbase.rpc.engine</name>
  <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property> 

Be advised that if the hbase.security.authentication in the client- and server-side site files do not match, the client will not be able to communicate with the cluster.

62.4.1。简单用户访问操作的客户端配置 - Thrift Gateway

Thrift 网关用户需要访问权限。例如,要给 Thrift API 用户,thrift_server,管理访问权限,这样的命令就足够了:

grant 'thrift_server', 'RWCA' 

For more information about ACLs, please see the Access Control Labels (ACLs) section

The Thrift gateway will authenticate with HBase using the supplied credential. No authentication will be performed by the Thrift gateway itself. All client access via the Thrift gateway will use the Thrift gateway’s credential and have its privilege.

62.4.2。用于简单用户访问操作的客户端配置 - REST 网关

REST 网关将使用提供的凭据通过 HBase 进行身份验证。 REST 网关本身不会执行任何身份验证。通过 REST 网关进行的所有客户端访问都将使用 REST 网关的凭证并具有其特权。

REST 网关用户需要访问权限。例如,要给 REST API 用户,rest_server,管理访问权限,这样的命令就足够了:

grant 'rest_server', 'RWCA' 

For more information about ACLs, please see the Access Control Labels (ACLs) section

客户端应该可以通过 SPNEGO HTTP 身份验证以传递方式通过 REST 网关对 HBase 群集进行身份验证。这是未来的工作。