[Step2] 统一访问域名的 Kerberos 票据生成
# 一、环境说明与票据规划
# 1.1 当前环境角色分布
在现有集群中,各角色规划如下:
| 角色 | 主机 |
|---|---|
| KDC Server | dev1 |
| Ranger Admin | dev2 |
| Ranger Admin | dev3 |
| 统一访问域名 | ranger-ha.hadoop.com |
说明:
- Ranger Admin 以 高可用模式 部署在
dev2 / dev3 - Kerberos KDC 服务部署在
dev1 - 通过 统一访问域名 对外提供 Ranger Admin 服务
# 1.2 为什么需要 HTTP 票据
在 Kerberos 环境中:
- Ranger Admin Web UI
- Ranger Admin REST API
- 经由 Haproxy 的统一访问入口
本质上都属于 HTTP 服务访问,因此需要一个对应的 HTTP Service Principal。
HTTP/ranger-ha.hadoop.com@TTBIGDATA.COM
1
说明
该 principal 并不绑定某一台主机, 而是绑定 对外访问域名,用于 HA 场景下的统一认证。
# 二、生成 HTTP Service Keytab
# 2.1 确认加密算法
在生成 keytab 前,先确认当前 Kerberos 使用的加密方式。

从环境配置可以看到,当前主要使用:
aes256-cts-hmac-sha1-96aes128-cts-hmac-sha1-96
后续生成 keytab 时,需要显式指定该加密算法,避免因算法不匹配导致认证失败。
# 2.2 在 KDC 上生成 HTTP keytab
在 KDC Server(dev1) 上执行以下命令:
kadmin.local -q "ktadd -k /tmp/http_ranger_ha.keytab \
-e aes256-cts-hmac-sha1-96:normal,aes128-cts-hmac-sha1-96:normal \
HTTP/ranger-ha.hadoop.com@TTBIGDATA.COM"
1
2
3
2
3
该命令完成的工作包括:
- 为
HTTP/ranger-ha.hadoop.com生成服务密钥 - 将密钥写入指定的 keytab 文件
- 同时支持 AES256 / AES128 两种加密方式
# 2.3 校验 keytab 内容
生成完成后,可以通过 klist 验证 keytab 是否符合预期:
klist -kte -e /tmp/http_ranger_ha.keytab | egrep -i "HTTP/ranger-ha|aes|vno|kvno"
1

校验重点包括:
| 校验项 | 说明 |
|---|---|
| Principal | HTTP/ranger-ha.hadoop.com@TTBIGDATA.COM |
| Encryption | AES256 / AES128 |
| KVNO | 正常递增 |
提示
只要 principal 与加密算法正确, KVNO 是否为最新并不影响后续 Ranger Admin 使用。
# 三、分发 keytab 并设置权限
# 3.1 分发至 Ranger Admin 主机
由于 Ranger Admin 部署在 dev2 / dev3 两台主机,需要将 keytab 分发到对应节点。
在 dev1(KDC) 上执行:
scp /tmp/http_ranger_ha.keytab dev2:/etc/security/keytabs/rangerhttpha.service.keytab
scp /tmp/http_ranger_ha.keytab dev3:/etc/security/keytabs/rangerhttpha.service.keytab
1
2
2
# 3.2 设置 keytab 权限
在 dev2 / dev3 上分别执行:
chown ranger:hadoop /etc/security/keytabs/rangerhttpha.service.keytab
chmod 400 /etc/security/keytabs/rangerhttpha.service.keytab
1
2
2

权限说明:
| 项目 | 值 |
|---|---|
| Owner | ranger |
| Group | hadoop |
| Mode | 400 |
必须项
keytab 权限过大将带来安全风险, 权限不足则会导致 Ranger Admin 启动失败。
- 01
- 调用 Ranger API 返回 403 问题02-03
- 02
- [Step1] Haproxy 规划与环境安装 Kylin V1002-02
- 03
- [Step3] 调整 Kerberos Client 配置 不改报错02-02