我正在使用启用了 kerberos 安全性的 Cloudera Hadoop 集群。但是在属性文件中,我提到hbase.encryption为没有。所以我需要将属性hbase.rpc.protection的值更改为hbase-site.xml 中的 none。我尝试将此属性值设置为无,但它失败了,因为在 Cloudera 中它只显示身份验证、隐私和完整性选项。 那么有人对此有解决方案吗?提前谢谢。
您只能选择authentication
、integrity
或privacy
进行 hbase.rpc.protection。 当设置为 none 时,它默认为authentication
。 这可以在hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java中看到:
/**
* @param rpcProtection Value of 'hbase.rpc.protection' configuration.
* @return Map with values for SASL properties.
*/
static Map<String, String> initSaslProperties(String rpcProtection) {
String saslQop;
if (rpcProtection.isEmpty()) {
saslQop = QualityOfProtection.AUTHENTICATION.getSaslQop();
} else {
String[] qops = rpcProtection.split(",");
....
使用 Cloudera Manager 配置加密的 HBase 数据传输状态如下:
搜索"HBase 传输安全性"属性,然后选择下列选项之一:
- 身份验证:使用 Kerberos 启用简单身份验证。 完整性
:检查收到的数据的完整性,以确保其在传输过程中未损坏。选择完整性还会启用身份验证。
隐私:通过使用 TLS/SSL 加密对传输中的数据进行加密来确保隐私。选择隐私还可以启用身份验证和完整性。 将此属性设置为隐私以启用安全的 RPC 传输。
因此,通过选择authentication
或integrity
,您不会加密 RPC 流量。