Debian 上 HDFS 的安全设置清单
一 身份与访问控制
启用强认证
将 Hadoop 切换为 Kerberos 认证,生产环境强烈建议始终开启。
配置示例:
core-site.xml
hdfs-site.xml
说明:使用 _HOST 占位符可简化多节点部署;REALM 需与 KDC 一致。
服务与 Web UI 的 Keytab
为每个服务创建 Principal 并分发 keytab,确保进程在无交互下安全登录;Web UI 使用独立的 HTTP 主体。
示例:
kadmin.local -q “addprinc -randkey hdfs/_HOST@YOUR_REALM”
kadmin.local -q “ktadd -k /etc/hadoop/hdfs.keytab hdfs/_HOST@YOUR_REALM”
kadmin.local -q “addprinc -randkey HTTP/_HOST@YOUR_REALM”
kadmin.local -q “ktadd -k /etc/hadoop/http.keytab HTTP/_HOST@YOUR_REALM”
hdfs-site.xml
提示:将 keytab 权限设为 600,属主为对应服务运行用户。
启用权限校验与默认权限
保持 HDFS 权限开关开启,并设置合理的 umask,遵循最小权限原则。
hdfs-site.xml
core-site.xml
说明:0027 常用于“同组可读、其他无权限”的场景,可按团队策略调整。
细粒度授权与组映射
对敏感目录启用 ACL,精细化控制用户/组访问;必要时使用 LDAPGroupsMapping 统一账号体系。
示例:
hdfs dfs -setfacl -m user:alice:r-x /data/sensitive
hdfs dfs -setfacl -m group:analysts:r-- /data/sensitive
组映射(core-site.xml):
提示:ACL 与 umask 共同决定最终权限,变更后可用 -getfacl 校验。
二 传输与静态数据加密
传输层加密(HTTPS)
为 NameNode/DataNode Web 与 RPC 启用 TLS/HTTPS,避免凭据与数据在网络中被窃听。
hdfs-site.xml
实施要点:为 NN/DN 生成 keystore/truststore,并在 hadoop-ssl-server.xml/hadoop-ssl-client.xml 中配置;浏览器访问 9870/50475 应出现有效证书。
静态数据加密(TDE)
对敏感目录启用 Encryption Zones,数据落盘自动加密,密钥由 Hadoop Key Provider 管理。
示例:
hadoop key create mykey -size 256
hdfs crypto -createZone -keyName mykey -path /securezone
hdfs crypto -listZones
说明:创建加密区前需先配置 Key Provider(如 JCEKS 或 Ranger KMS);迁移存量数据时按目录粒度逐步切换至加密区。
三 审计与监控
启用与集中审计
开启 HDFS 审计日志(AccessControlException、权限变更、加密操作等),并接入 集中日志平台(如 rsyslog/ELK),保留周期不少于 90 天。
监控建议:关注指标 SecurityMetrics.AuthFailures、PermissionDenied、EncryptionMetrics.EncryptionOps、ACLMetrics.ACLModifications,对异常增长设置告警。
安全模式与块健康
理解 安全模式 的作用:NameNode 启动时会自动进入,待满足最小副本数与块报告率后自动退出;运维期间避免强制退出,以免数据一致性受损。
四 Debian 系统加固与运维要点
系统与进程安全
密钥与凭据管理
上线前自检清单
五 关键配置速查表
| 目标 | 关键配置 | 示例/说明 |
|---|---|---|
| 强认证 | hadoop.security.authentication | kerberos |
| NameNode 主体 | dfs.namenode.kerberos.principal | nn/_HOST@REALM |
| Web UI 认证 | dfs.web.authentication.kerberos.principal / keytab | HTTP/_HOST@REALM / /etc/hadoop/http.keytab |
| 权限与 umask | dfs.permissions.enabled / fs.permissions.umask-mode | true / 0027 |
| 传输加密 | dfs.http.policy / dfs.datanode.https.port | HTTPS_ONLY / 50475 |
| 静态加密 | hadoop key create / hdfs crypto | mykey / -createZone -keyName mykey -path /securezone |
以上配置项与示例可直接用于 Debian 上的 Hadoop 3.x 环境,按实际 REALM、主机名、端口与目录 调整。