参考链接:
https://blog.youkuaiyun.com/lsshlsw/article/details/103930388
https://blog.youkuaiyun.com/wank1259162/article/details/122438175
1.背景
需要一个高可用的 KMS 服务用于数据静态加密(HDFS 透明加密 / ORC格式列加密),hadoop 原生基于 java keystore 的 KMS 方案在生产环境并不可靠,列了几种可能的方案:
使用内部自建的 KMS ,实现 hadoop provider
使用 CDH 收费的 Navigator Key Trustee Server
使用 Apache Ranger KMS
综合考虑最后选择了方案三,Hadoop KMS是Apache社区开发的,将密钥存入文件(Java keystore)中,而Ranger KMS则是把密钥存入后台数据库中,通过Ranger Admin webui/Api 可以集中化管理KMS服务(密钥管理,访问策略,审计日志)。
2. 部署
mysql 增加用户及数据库
create database rangerkms;
alter database rangerkms character set latin1;
create user 'rangerkms'@'%' identified by '123456';
GRANT ALL PRIVILEGES ON rangerkms.* TO 'rangerkms'@'%' IDENTIFIED BY '123456';
flush privileges;
解压,修改配置文件
tar -vxf ranger-1.2.0-kms.tar.gz
cd ranger-1.2.0-kms
vim install.properties
SQL_CONNECTOR_JAR=/path/to/mysql-connector-java-5.1.34.jar
db_root_user=...