HDFS安全设置主要包括身份认证、权限管理、加密及审计等方面,以下是基于CentOS的配置步骤及关键参数:
sudo yum install krb5-server krb5-workstation krb5-libs
/etc/krb5.conf,指定领域和KDC信息:[realms]
YOUR.REALM.COM = {
kdc = kdc.your.realm.com:88
admin_server = kdc.your.realm.com:749
}
sudo kadmin.local -q "addprinc -randkey hdfs/_HOST@YOUR.REALM.COM"
sudo kadmin.local -q "ktadd -k /etc/krb5kdc/hdfs.keytab hdfs/_HOST@YOUR.REALM.COM"
core-site.xml中添加:<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
在hdfs-site.xml中配置NameNode和DataNode的Kerberos主体及密钥表路径。chmod、chown命令设置文件/目录权限:hdfs dfs -chmod 755 /path/to/dir # 所有者可读写执行,组和其他用户可读执行
hdfs dfs -chown user:group /path/to/file # 修改所有者和组
hdfs-site.xml中设置dfs.namenode.acls.enabled=true。hdfs dfs -setfacl -m user:user1:rwx /path/to/dir # 赋予用户user1读写执行权限
+t)。hdfs dfs -chmod +t /shared_dir
hdfs dfs -chmod g+s /group_dir
hdfs dfsadmin -safemode enter
hdfs dfsadmin -safemode leave
hdfs crypto -createZone -keyName myKey -path /encrypted_path
hdfs crypto -encrypt -path /data_path -keyName myKey
hdfs-site.xml中配置:<property>
<name>hadoop.security.audit.log.path</name>
<value>/var/log/hadoop-hdfs/audit.log</value>
</property>
sudo firewall-cmd --add-port=8020/tcp --permanent
sudo firewall-cmd --reload
klist验证Kerberos票据:klist
hdfs dfs -ls /
说明:以上配置需根据实际环境调整,如Kerberos领域、密钥表路径等参数需与集群部署一致。生产环境中建议结合Kerberos、ACL及加密实现多层安全防护。