Hadoop 通过WebHDFS API对HDFS的用户访问控制

Hadoop 通过WebHDFS API对HDFS的用户访问控制,hadoop,hdfs,Hadoop,Hdfs,是否可以在HDFS的文件级别上进行用户访问控制? 目前,每个人都可以在点击链接时访问数据,如http:///webhdfs/v1/xxx.txt?op=OPEN 我可以设置某些组的人,他们只能访问某些文件或目录吗?其目的是,不让其他人访问不属于他们的文件 如果无法在HDFS上设置,是否有任何建议?当安全性关闭时,经过身份验证的用户是user.name查询参数中指定的用户名。如果未设置user.name参数,服务器可以将经过身份验证的用户设置为默认web用户(如果有),或者返回错误响应 启用安全性

是否可以在HDFS的文件级别上进行用户访问控制? 目前,每个人都可以在点击链接时访问数据,如
http:///webhdfs/v1/xxx.txt?op=OPEN

我可以设置某些组的人,他们只能访问某些文件或目录吗?其目的是,不让其他人访问不属于他们的文件


如果无法在HDFS上设置,是否有任何建议?

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

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

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

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

curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?[user.name=<USER>&]op=..."
curl-i“http://:/webhdfs/v1/?[user.name=&]op=…”
启用安全性时使用Kerberos SPNEGO进行身份验证:

curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?delegation=<TOKEN>&op=..."
curl-i--congregate-u:“http://:/webhdfs/v1/?op=…”
启用安全性时使用Hadoop委派令牌进行身份验证:

curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?delegation=<TOKEN>&op=..."
curl-i“http://:/webhdfs/v1/?委派=&op=…”
参考: