本文主要分析安全认证参数,包括rpc和数据传输安全相关的参数。
写在前面
请先阅读HDFSRPC协议详解、HDFSRPC安全认证Kerberos篇、HDFSRPC安全认证Token篇、HDFSRPC安全认证Token篇2,对整体的框架有一定的了解。
参数列表
参数 | 默认值 | 描述 |
---|---|---|
hadoop.security.authentication | simple | simple or kerberos。是否使用安全认证。 |
dfs.namenode.kerberos.principal | 无 | nn/_HOST@REALM.TLD。namenode kerberos票据。_HOST会根据服务所在主机自动获取主机名。 |
dfs.namenode.keytab.file | 无 | namenode免密登录的keytab。 |
dfs.datanode.kerberos.principal | 无 | dn/_HOST@REALM.TLD。datanode kerberos票据。_HOST会根据服务所在主机自动获取主机名。 |
dfs.datanode.keytab.file | 无 | datanode免密登录的keytab。 |
hadoop.rpc.protection | authentication | authentication、integrity、privacy。rpc sasl qop级别,分别对应auth,auth-int和auth-conf。 |
dfs.data.transfer.protection | 无 | 值为authentication, integrity和privacy。读写块数据时数据安全等级,分别对应auth,auth-int和auth-conf。 |
dfs.encrypt.data.transfer | false | 是否开启datanode数据传输加密 |
hadoop.security.authentication
默认值simple。值有simple、kerberos两种。
dfs.[namenode|datanode].kerberos.principal
namenode、datanode免密登录的Kerberos账号。_HOST建议不更改,会自动获取本机ip。
dfs.[namenode|datanode].keytab.file
namenode、datanode免密登录的keytab。
Sasl Qop
SASL QoP 可配置的具体值如下(适用于 hadoop.rpc.protection/dfs.data.transfer.protection):
- authentication : authentication only;
- integrity : integrity check in addition to authentication;
- privacy : data encryption in addition to integrity.
从字面其实很难理解选项,其实从一个连接角度来理解比较简单。
- 验证连接。验证完毕以后后续所有数据不验证。
- 验证连接。验证完毕以后后续所有数据都会通过sasl框架加解密。
- 整个连接的数据都会通过算法加解密。
hadoop.rpc.protection
rpc sasl qop安全等级,默认为authentication。可以设置成authentication、integrity、privacy。由于namenode rpc没有整体的加解密,所以本质上integrity和privacy是一样的。配置integrity或privacy,验证通过以后,所有的rpc数据都会加解密。如果考虑性能的话,建议配置成authentication即可。
dfs.data.transfer.protection
可以设置成authentication、integrity、privacy。默认值无,默认是不验证的。值得注意的是如果开启验证,连接本质会去验证blockToken。BlockToken是拿块信息时候一起返回的。考虑性能可不设置。
dfs.encrypt.data.transfer
是否开启传输加密,默认为false。该参数优先级高于 dfs.data.transfer.protection。这个参数比较复杂,暂时不展开。
喜欢就点赞、收藏一下~