Можем ли мы установить значение свойства hbase.rpc.protection равным нулю в кластере Cloudera Hadoop? Если да, то как?
Я использую кластер Cloudera Hadoop, в котором включена защита Kerberos. Но в файле свойств я упомянул hbase.encryption как ничего. Поэтому мне нужно изменить значение свойства hbase.rpc.protection как нет в hbase-site.xml. Я попытался установить значение этого свойства в none, но это не удалось, потому что в Cloudera он показывает только параметры аутентификации, конфиденциальности и целостности. Так есть ли у кого-нибудь решение для этого? Заранее спасибо.
1 ответ
Вы можете выбрать только 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(",");
....
Конфигурирование зашифрованной передачи данных HBase с помощью Cloudera Manager заявляет следующее:
Найдите свойство HBase Transport Security и выберите один из следующих вариантов:
- аутентификация: включает простую аутентификацию с использованием Kerberos.
целостность: проверяет целостность полученных данных, чтобы убедиться, что они не были повреждены при передаче. Выбор целостности также включает аутентификацию.
конфиденциальность: обеспечивает конфиденциальность путем шифрования передаваемых данных с использованием шифрования TLS/SSL. Выбор конфиденциальности также обеспечивает аутентификацию и целостность. Установите для этого свойства конфиденциальность, чтобы включить безопасный транспорт RPC.
Итак, выбрав authentication
или же integrity
Вы не шифруете трафик RPC.