Cloudera Manager数据库密码加密方案
版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/4e0b382c8fd5
背景:
由于Cloudera Manager使用的数据库账号密码信息保存在/etc/cloudera-scm-server/db.properties文件中,该文件中的com.cloudera.cmf.db.password为明文,因此考虑对其进行加密处理。
1、利用openssl进行AES/DES3加密解密
对字符串12345进行aes加密,使用密钥123(任意),输出结果以base64编码格式给出:
$> echo 12345 | openssl aes-128-cbc -k 123 -base64
得到加密字符串
U2FsdGVkX19mXXHnzrz7LeYigpdAa37UYo3sqz9GZGsD8jlEGZVemKWZNDNIl3AX
2、对加密字符串进行解密
$> echo U2FsdGVkX18f1etoy8QvkvuVjrVB6xamuBW1g0CpzXxoMmQ5mO2eokhrrp+tmy43
| openssl aes-128-cbc -d -k 123 -base64
返回12345,证明解密成功
3、修改/etc/cloudera-scm-server/db.properties,删除com.cloudera.cmf.db.password=12345
新增com.cloudera.cmf.db.password_script=/etc/cloudera-scm-server/scm-passwd.sh,如下:
4、修改文件内容及数组权限
编辑/etc/cloudera-scm-server/scm-passwd.sh,内容如下
echo U2FsdGVkX18f1etoy8QvkvuVjrVB6xamuBW1g0CpzXxoMmQ5mO2eokhrrp+tmy43 | openssl aes-128-cbc -d -k 123 -base64
修改该文件权限为755,属主为cloudera-scm-server
5、重启cloudera-scm-server服务
$>server cloudera-scm-server restart
6、再次登陆CM,页面访问正常。
误区:
一开始尝试直接修改/etc/cloudera-scm-server/db.properties文件中的com.cloudera.cmf.db.password参数,给其赋值
com.cloudera.cmf.db.password=` echo U2FsdGVkX18f1etoy8QvkvuVjrVB6xamuBW1g0CpzXxoMmQ5mO2eokhrrp+tmy43 | openssl
aes-128-cbc -d -k 123 -base64`
但由于该文件为数据库属性文件,不支持赋值操作,因此该方案行不通。