- 环境:
- Ambari 2.7.3 - - HDP 3.1.0
- Hadoop 3.1.1
- Ranger 1.1.0
- RangerKMS 1.1.0
[root@managerhd ~]# su - hdfs
## 作为HDFS管理员,创建一个新的空目录
[hdfs@managerhd ~]$ hdfs dfs -mkdir /zone_encr
## 使用加密密钥,使目录成为加密区域,完成后,NameNode会将该文件夹/zone_encr识别为HDFS加密区域
[hdfs@managerhd ~]$ hdfs crypto -createZone -keyName key1 -path /zone_encr
Added encryption zone /zone_encr
## 查看加密区及密钥
[hdfs@managerhd ~]$ hdfs crypto -listZones
/zone_encr key1
[hdfs@managerhd ~]$ hdfs dfs -put test.txt /zone_encr/
HDFS encryption: User:hdfs not allowed to do 'DECRYPT_EEK' on 'key1'
-
问题:
- hdfs 用户在 Rangerkms 中设置拥有此密钥的所有权限,包括解密 DECRYPT_EEK 权限,但是还是报:hdfs 用户没有 DECRYPT_EEK 权限 ??????
-
分析:
-
在 Ranger 中解密操作时,hdfs 用户被默认列入黑名单;
-
这个黑名单可能覆盖了密钥的 DECRYPT_EEK 权限;
-
RangerKMS ⇒ CONFIGS ⇒ ADVANCED ⇒ Advanced dbks-site
hadoop.kms.blacklist.DECRYPT_EEK=hdfs
-
-
解决:
- 修改
hadoop.kms.blacklist.DECRYPT_EEK=hdfs
在 blacklist 黑名单中剔除 hdfs 用户; - 例如修改为:
hadoop.kms.blacklist.DECRYPT_EEK=admin
admin 用户;
- 修改