安全

Kerberos

师成师成· 更新于 2026-09-28· 阅读 12 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Ozone 依赖 Kerberos 来保障集群的安全。从历史上看,HDFS 支持在隔离的安全网络中运行,在这种环境下可以不启用集群安全防护就进行部署。

本版本的 Ozone 沿用了这一模式,但很快将转向 默认安全(secure by default)。目前若要在 Ozone 集群中启用安全功能,需要将配置 ozone.security.enabled 设置为 true,并将 hadoop.security.authentication 设置为 kerberos。

属性值
ozone.security.enabledtrue
hadoop.security.authenticationkerberos

Storage Container Manager

SCM 需要两个 Kerberos 主体,以及这两个主体各自对应的 keytab 文件。

属性说明
hdds.scm.kerberos.principalSCM 服务主体,例如 scm/_HOST@REALM.COM
hdds.scm.kerberos.keytab.fileSCM 守护进程用于以其服务主体身份登录的 keytab 文件
hdds.scm.http.auth.kerberos.principal如果为 SCM HTTP 服务器启用了 SPNEGO,则为该服务器的服务主体
hdds.scm.http.auth.kerberos.keytab如果为 SCM HTTP 服务器启用了 SPNEGO,则为该服务器用于以其服务主体身份登录的 keytab 文件

note

有关为 HTTP Web 控制台启用基于 Kerberos 的 SPNEGO 认证的一般配置,请参阅使用 Kerberos SPNEGO 配置 HTTP 认证。

Ozone Manager

与 SCM 类似,OM 也需要两个 Kerberos 主体,以及这两个主体各自对应的 keytab 文件。

属性说明
ozone.om.kerberos.principalOzoneManager 服务主体,例如 om/_HOST@REALM.COM
ozone.om.kerberos.keytab.fileOM 守护进程用于以其服务主体身份登录的 keytab 文件。
ozone.om.http.auth.kerberos.principal如果为 OM HTTP 服务器启用了 SPNEGO,则为 Ozone Manager HTTP 服务器的服务主体。
ozone.om.http.auth.kerberos.keytab如果为 OM HTTP 服务器启用了 SPNEGO,则为 OM HTTP 服务器用于以其服务主体身份登录的 keytab 文件。

S3 Gateway

S3 Gateway 需要一个服务主体,下表列出了在 ozone-site.xml 中所需的配置值。

属性说明
ozone.s3g.kerberos.principalS3 Gateway 主体,例如 s3g/_HOST@REALM
ozone.s3g.kerberos.keytab.fileS3 Gateway 使用的 keytab 文件,例如 /etc/security/keytabs/s3g.keytab
ozone.s3g.http.auth.kerberos.principal如果为 S3 Gateway HTTP 服务器启用了 SPNEGO,则为 S3 Gateway 主体,例如 HTTP/_HOST@EXAMPLE.COM
ozone.s3g.http.auth.kerberos.keytab如果为 S3 Gateway HTTP 服务器启用了 SPNEGO,则为 S3 Gateway 使用的 keytab 文件。

HttpFS Gateway

HttpFS 网关提供与 HDFS 兼容的 REST API(webhdfs)。它需要 Kerberos 来支持其面向客户端的 HTTP 端点,以及其到 Ozone Manager 的内部连接(Ozone Manager 在此充当 HDFS NameNode 代理)。

属性说明
hadoop.http.authentication.type定义 HttpFS 针对其 HTTP 客户端所使用的认证机制。有效值为 simple 或 kerberos。设置为 kerberos 即启用 SPNEGO。
hadoop.http.authentication.kerberos.principalHttpFS 用于其面向客户端的 HTTP 端点的 HTTP Kerberos 主体。此项必须以 HTTP/ 开头(例如 HTTP/${httpfs.hostname}@${kerberos.realm})。
hadoop.http.authentication.kerberos.keytab面向客户端的 HTTP 主体所对应的 Kerberos keytab 文件,例如 ${user.home}/httpfs.keytab。
httpfs.hadoop.authentication.type定义 HttpFS 连接 HDFS NameNode(Ozone Manager)时所使用的认证机制。有效值为 simple(默认)或 kerberos。
httpfs.hadoop.authentication.kerberos.principalHttpFS 连接 HDFS NameNode(Ozone Manager)时所使用的 Kerberos 主体,例如 ${user.name}/${httpfs.hostname}@${kerberos.realm}。
httpfs.hadoop.authentication.kerberos.keytab用于连接 HDFS NameNode(Ozone Manager)的主体所对应的 Kerberos keytab 文件,例如 ${user.home}/httpfs.keytab。

注意

当 HttpFS 部署在负载均衡器之后并使用 Kerberos(SPNEGO)时,HTTP 主体必须与客户端所使用的负载均衡器主机名匹配,而不仅仅是后端 HttpFS 主机的主机名。参见负载均衡器之后的 HttpFS(Kerberos)。

Recon 服务

Recon 提供监控与管理能力,可通过 Kerberos 认证对其 Web UI 和 REST 端点进行安全保护。

属性说明
ozone.recon.http.auth.type设置 Recon 的 HTTP 认证类型。设置为 kerberos 即启用 SPNEGO。
ozone.recon.http.auth.kerberos.principalRecon HTTP 端点的服务主体,例如 HTTP/_HOST@REALM。
ozone.recon.http.auth.kerberos.keytabRecon HTTP 主体对应的 keytab 文件,例如 /path/to/HTTP.keytab。

Recon 仅限管理员访问的 API 由 ozone.administrators 或 ozone.recon.administrators 列表控制。更多详情请参阅配置 Ozone 管理员。

保护 Datanode 的安全

在 Hadoop 中,传统上是通过在 Datanode 上创建 Keytab 文件来保护其安全的。而在 Ozone 中,我们转而使用 Datanode 证书。也就是说,在安全的 Ozone 集群中,Datanode 上不需要 Kerberos。

不过,为了方便现有用户,我们仍然支持基于 Kerberos 的传统认证方式。相关的 HDFS 配置项需在 hdfs-site.xml 中设置,如下所示:

配置项描述
dfs.datanode.kerberos.principalDatanode 服务主体。例如 dn/_HOST@REALM.COM
dfs.datanode.kerberos.keytab.fileDatanode 守护进程用于以其服务主体身份进行登录的 Keytab 文件。
hdds.datanode.http.auth.kerberos.principalDatanode HTTP 服务器服务主体。
hdds.datanode.http.auth.kerberos.keytabDatanode HTTP 服务器用于以其服务主体身份进行登录的 Keytab 文件。

评论

登录后参与评论

正在加载评论…