【问题标题】:Impersonate a user at runtime in Kerberos Secured Hadoop Cluster在运行时在 Kerberos 安全 Hadoop 集群中模拟用户
【发布时间】:2013-12-24 04:29:57
【问题描述】:

我有一个 Web 应用程序,它接收来自不同用户的从 linux 命令行运行的其他几个应用程序的请求。对于这些请求中的每一个,我都必须从 hdfs 读取数据以调用只有调用应用程序 linux 用户才能访问的应用程序文件夹。有没有一种方法可以设置配置,使其可以在运行时被覆盖以模拟调用者应用程序用户进行 hadoop kerberos 身份验证。 我已经使用下面的代码创建了一个 UserGroupInformation 以从 kerberos 密钥表登录。这个 UGI 将充当真实用户并将其传递给 UserGroupInformation 类以创建代理用户,如下所示。

UserGroupInformation realUgi = UserGroupInformation.loginUserFromKeytabAndReturnUGI("KerberosUser ", "pathToKeytabFile") ;
UserGroupInformation ugi = UserGroupInformation.createProxyUser("NewProxyUser", realUgi ); 
ugi.doAs(new PrivilegedExceptionAction() { 
public Void run() throws Exception { 
  Configuration jobconf = new Configuration(); 
  jobconf.set("fs.default.name", "hdfs://server:hdfsport"); 
  jobconf.set("hadoop.job.ugi", "NewroxyUser"); 
  jobconf.set("mapred.job.tracker", "server:jobtracker port"); 
  String[] args = new String[] { "data/input", "data/output" }; 
  ToolRunner.run(jobconf, WordCount.class.newInstance(), args); 
  return null; 
} });

在这种情况下,我使用的是 Kerberos 安全 hadoop 实现,我收到下面给出的错误。

ERROR UserGroupInformation:1125 - PriviledgedActionException as:NewProxyUser
via KerberosUser cause:org.apache.hadoop.ipc.RemoteException: User: KerberosUser is not allowed to impersonate NewProxyUser
Caused by: org.apache.hadoop.ipc.RemoteException: User: KerberosUser is not allowed to impersonate NewProxyUser

您能否建议我使用 Kerberos 用户模拟代理用户的任何其他方式。

提前致谢

【问题讨论】:

    标签: hadoop impersonation kerberos


    【解决方案1】:

    我认为您需要设置安全模拟。更多信息请参考以下链接http://hadoop.apache.org/docs/r1.2.1/Secure_Impersonation.html

    【讨论】:

      【解决方案2】:

      要模拟呼叫者,您必须具有特定的模拟权限。我相信默认情况下只有 root 有这个权利。我不知道这是否可以在 Linux 中配置。 (在 Windows 上是SeImpersonatePrivilege)。

      否则用户可以在 Kerberos 域上运行随机的非特权服务,例如http://MYLAPTOP:64990/ 并配置它们以进行 Kerberos 登录,然后能够以该用户身份在网络上执行任何操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-02
        • 2017-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-09
        • 2020-08-09
        相关资源
        最近更新 更多