Simplify configuration of security components
---------------------------------------------
Key: HBASE-4817
URL: https://issues.apache.org/jira/browse/HBASE-4817
Project: HBase
Issue Type: Improvement
Components: security
Reporter: Gary Helmling
The HBase security features were built to be optionally loadable, when desired,
and it shows through in the complexity of configuring security for operation.
In addition to the baseline configuration required for process keytab files and
server principals, the following properties need to be set to enable security:
{code}
<property>
<name>hbase.security.authentication</name>
<value>kerberos</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,org.apache.hadoop.hbase.security.token.TokenProvider</value>
</property>
<property>
<name>hbase.rpc.engine</name>
<value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
<name>hbase.zookeeper.property.authProvider.1</name>
<value>org.apache.zookeeper.server.auth.SASLAuthenticationProvider</value>
</property>
{code}
We should be able to simplify this and automatically setup the underlying code
components (required coprocessors, SecureRpcEngine) when some high level
security flags are set.
For authentication and authorization, I'd like narrow it down to two simple
configuration properties. When set, these would trigger automatic
configuration of the required coprocessors/RpcEngine:
* {{hbase.security.authentication}} - when set to {{kerberos}}, this would
automatically:
** set {{hbase.rpc.engine=org.apache.hadoop.hbase.ipc.SecureRpcEngine}}
** add {{org.apache.hadoop.hbase.security.token.TokenProvider}} to the
configuration for {{hbase.coprocessor.region.classes}}
** possibly also set
{{hbase.zookeeper.property.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider}}
for zookeeper?
* {{hbase.security.authorization}} - when set to {{true}}, this would
automatically:
** add {{org.apache.hadoop.hbase.security.access.AccessController}} to the
configuration for both {{hbase.coprocessor.master.classes}} and
{{hbase.coprocessor.region.classes}}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira