Kerberos
Ozone 依赖 Kerberos 来保障集群的安全。从历史上看,HDFS 支持在隔离的安全网络中运行,在这种环境下可以不启用集群安全防护就进行部署。
本版本的 Ozone 沿用了这一模式,但很快将转向 默认安全(secure by default)。目前若要在 Ozone 集群中启用安全功能,需要将配置 ozone.security.enabled 设置为 true,并将 hadoop.security.authentication 设置为 kerberos。
| 属性 | 值 |
|---|---|
ozone.security.enabled | true |
hadoop.security.authentication | kerberos |
Storage Container Manager
SCM 需要两个 Kerberos 主体,以及这两个主体各自对应的 keytab 文件。
| 属性 | 说明 |
|---|---|
hdds.scm.kerberos.principal | SCM 服务主体,例如 scm/_HOST@REALM.COM |
hdds.scm.kerberos.keytab.file | SCM 守护进程用于以其服务主体身份登录的 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.principal | OzoneManager 服务主体,例如 om/_HOST@REALM.COM |
ozone.om.kerberos.keytab.file | OM 守护进程用于以其服务主体身份登录的 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.principal | S3 Gateway 主体,例如 s3g/_HOST@REALM |
ozone.s3g.kerberos.keytab.file | S3 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.principal | HttpFS 用于其面向客户端的 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.principal | HttpFS 连接 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.principal | Recon HTTP 端点的服务主体,例如 HTTP/_HOST@REALM。 |
ozone.recon.http.auth.kerberos.keytab | Recon 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.principal | Datanode 服务主体。例如 dn/_HOST@REALM.COM |
dfs.datanode.kerberos.keytab.file | Datanode 守护进程用于以其服务主体身份进行登录的 Keytab 文件。 |
hdds.datanode.http.auth.kerberos.principal | Datanode HTTP 服务器服务主体。 |
hdds.datanode.http.auth.kerberos.keytab | Datanode HTTP 服务器用于以其服务主体身份进行登录的 Keytab 文件。 |
评论
登录后参与评论
KnowForge