CDH数据加密概述
加密是使用数字密钥对各种组件进行编码的过程,因此只有适当的实体才能进行解码,然后查看,修改或添加到数据中。
CDH提供了加密机制来保护持久保存在磁盘或其他存储介质上的数据(以及在网络上移动时的数据)。
保护静态数据
保护静止数据通常意味着对存储在磁盘上的数据进行加密,并允许授权用户和进程在手头的应用程序或任务需要时解密数据。对于静态数据加密,必须分发和管理加密密钥,应定期旋转或更改密钥,并且许多其他因素使该过程复杂化。
CDH提供的加密方式
Cloudera Navigator Key Trustee Server
使用的企业级密钥存储和管理系统,它将加密密钥与数据分离,从而确保即使未经授权的用户访问存储介质,数据也受到保护。它使您的集群能够满足最严格的数据安全规定。此外,Navigator密钥托管服务器可以与硬件安全模块(HSM)集成,为密钥提供最高级别的安全性。
Navigator HSM KMS backed by Thales HSM
Navigator HSM KMS backed by Luna HSM
(上面三个需要认证证书,我不用)
基于文件且受密码保护的 Java KeyStore
使用Java keytool库进行加密
设置HDFS静态数据加密过程
1.启用 Kerberos
1.1.在Cloudera Manager节点安装KDC服务
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
1.2.修改/etc/krb5.conf配置
vim /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
default_realm = EXAMPLE.COM
#default_ccache_name = KEYRING:persistent:%{uid}
[realms]
EXAMPLE.COM = {
kdc = 192.168.10.31
admin_server = 192.168.10.31
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
!!!注意:这里特别说明一下
[realms]
EXAMPLE.COM = {
kdc = 192.168.10.31
admin_server = 192.168.10.31
}
这部分最好使用ip,不要使用hostname,之前使用的是hostname,导致后面有一步认证过不去,注意一下。
1.3.修改/var/kerberos/krb5kdc/kadm5.acl配置
vim /var/kerberos/krb5kdc/kadm5.acl
*/admin@EXAMPLE.COM *
1.4.修改/var/kerberos/krb5kdc/kdc.conf配置
vim /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
EXAMPLE.COM = {
#master_key_type = aes256-cts
max_renewable_life= 7d 0h 0m 0s
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
1.5.创建Kerberos数据库
kdb5_util create –r EXAMPLE.COM -s
输入密码:EXAMPLE.COM
1.6.创建Kerberos的管理账号
kadmin.local
进入后输入
addprinc admin/admin@EXAMPLE.COM
添加管理账号
list_principals
查看账号
1.7.Kerberos服务添加到自启动服务,并启动krb5kdc和kadmin服务
systemctl enable krb5kdc
systemctl enable kadmin
systemctl start krb5kdc
systemctl start kadmin
1.8.测试Kerberos的管理员账号
kinit admin/admin@EXAMPLE.COM
1.9.所有节点安装Kerberos客户端
yum -y install krb5-libs krb5-workstation
1.10.在Cloudera Manager Server服务器上安装额外的包
yum -y install openldap-clients
1.11.将KDC Server上的krb5.conf文件拷贝到其他节点
scp /etc/krb5.conf root@jht-cdh-2:/etc
scp /etc/krb5.conf root@jht-cdh-3:/etc
scp /etc/krb5.conf root@jht-cdh-4:/etc
scp /etc/krb5.conf root@jht-cdh-n:/etc
1.12.在KDC中给Cloudera Manager添加管理员账号
kadmin.local
进入KDC
addprinc cloudera/admin@EXAMPLE.COM
添加管理员账号
list_principals
查看是否添加成功
1.13.在管理界面添加Kerberos
进入主页 --> 管理 --> 安全
启用 Kerberos
全勾选 ---> 继续
对应修改配置 ---> 继续
继续
填入添加的账号密码 ---> 继续
等待安装
继续
开始配置
继续
完成