安全化 Datanode

Hadoop 中 datanode 的安全机制是通过给每个节点创建 Keytab 文件实现的。Ozone 的 datanode 安全机制不依赖 Kerberos,而是改用 datanode 证书。

但是我们也支持传统的基于 Kerberos 的认证来方便现有用户,用户只需要在 hdfs-site.xml 里配置下面参数即可:

参数名 描述
dfs.datanode.kerberos.principal datanode 的服务主体名
比如:dn/_HOST@REALM.COM
dfs.datanode.keytab.file datanode 进程所使用的 keytab 文件
hdds.datanode.http.auth.kerberos.principal datanode http 服务器的服务主体名
hdds.datanode.http.auth.kerberos.keytab datanode http 服务器的服务主体登录所使用的 keytab 文件

如何安全化 datanode

在 Ozone 中,当 datanode 启动并发现 SCM 的地址之后,datanode 首先创建私钥并向 SCM 发送证书请求。

通过 Kerberos 颁发证书当前模型

SCM 有一个内置的 CA 用来批准证书请求,如果 datanode 已经有一个 Kerberos keytab,SCM 会信任它并自动颁发一个证书。

手动颁发开发中

如果 datanode 是新加入的并且没有 keytab,那么证书请求需要等待管理员的批(手动批准功能尚未完全支持)。换句话说,信任关系链由集群管理员建立。

自动颁发 开发中

如果你通过 Kubernetes 这样的容器编排软件运行 Ozone,Kubernetes 需要为 datanode 创建一次性 token,用于在启动阶段证明 datanode 容器的身份。(这个特性也正在开发中。)

证书颁发后,datanode 的安全就得到了保障,并且 OM 可以颁发块 token。如果 datanode 没有证书或者 SCM 的根证书,datanode 会自动进行注册,下载 SCM 的根证书,并获取自己的证书。

Next >>