通过WebHDFS API对HDFS进行用户访问控制

时间:2018-11-19 07:59:07

标签: hadoop hdfs

是否可以在HDFS的文件级别上进行用户访问控制? 当前,每个人都可以通过单击诸如http://<domain>/webhdfs/v1/xxx.txt?op=OPEN之类的链接来访问数据。

我可以设置某些人群,他们只能访问某些文件或目录吗?目的是不允许他人访问不属于他们的文件。

如果无法在HDFS上进行设置,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

关闭安全性后,已认证的用户是在user.name查询参数中指定的用户名。如果未设置user.name参数,则服务器可以将经过身份验证的用户设置为默认的Web用户(如果有),或者返回错误响应。

启用安全性后,将通过Hadoop委托令牌或Kerberos SPNEGO执行身份验证。如果在委托查询参数中设置了令牌,则经过身份验证的用户就是令牌中编码的用户。如果未设置委托参数,则将通过Kerberos SPNEGO对用户进行身份验证。

下面是使用curl命令工具的示例。

关闭安全性时的身份验证:

curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?[user.name=<USER>&]op=..."

启用安全性后,使用Kerberos SPNEGO进行身份验证:

curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."

启用安全性后,使用Hadoop授权令牌进行身份验证:

curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?delegation=<TOKEN>&op=..."

参考:https://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Authentication