Sounds good. Also I would like to work on this so the JIRA can be assigned to me.
On Mon, May 22, 2017 at 3:06 PM, Pramod Immaneni <pra...@datatorrent.com> wrote: > I see the advantage in having a top level setting that says use > "impersonating user" vs "impersonated user" resources. This can internally > switch the resources, there could be resources other than application path > in future and they would also be covered. I would still leave the default > to be the impersonating user as not all setups fall into this category and > in many cases, user's directories are not created or managed in hdfs and > also it would be backward compatible. > > I think everyone seems to agree on the functionality but there is a > difference of opinion on the implementation. I will call out a vote on the > different implementation options and we can move forward. > > Thanks > > > On Fri, May 19, 2017 at 11:58 AM, Sanjay Pujare <san...@datatorrent.com> > wrote: > > > I agree. But how do we use APPLICATION_PATH for this purpose since we > need > > a Yes/No flag to specify new vs old behavior? > > > > So we have to use a new setting for this (something like > > USE_RUNTIME_USER_APPLICATION_PATH ?) > > > > On Fri, May 19, 2017 at 7:57 AM, Pramod Immaneni <pra...@datatorrent.com > > > > wrote: > > > > > I wouldn't necessarily consider the current behavior a bug and the > > default > > > is fine the way it is today, especially because the user launching the > > app > > > is not the user. APPLICATION_PATH can be used as the setting. > > > > > > On Fri, May 19, 2017 at 7:43 AM, Vlad Rozov <v.ro...@datatorrent.com> > > > wrote: > > > > > > > Do I understand correctly that the question is regarding > > > > DAGContext.APPLICATION_PATH attribute value in case it is not > defined? > > In > > > > this case, I would treat the current behavior as a bug and +1 the > > > proposal > > > > to set it to the impersonated user B DFS home directory. As > > > > APPLICATION_PATH can be explicitly set I do not see a need to provide > > > > another settings to preserve the current behavior. > > > > > > > > Thank you, > > > > > > > > Vlad > > > > > > > > > > > > On 5/18/17 15:46, Pramod Immaneni wrote: > > > > > > > >> Sorry typo in sentence "as we are not asking for permissions for a > > lower > > > >> privilege", please read as "as we are now asking for permissions > for a > > > >> lower privilege". > > > >> > > > >> On Thu, May 18, 2017 at 3:44 PM, Pramod Immaneni < > > > pra...@datatorrent.com> > > > >> wrote: > > > >> > > > >> Apex cli supports impersonation in secure mode. With impersonation, > > the > > > >>> user running the cli or the user authenticating with hadoop > > (henceforth > > > >>> referred to as login user) can be different from the effective user > > > with > > > >>> which the actions are performed under hadoop. An example for this > is > > an > > > >>> application can be launched by user A to run in hadoop as user B. > > This > > > is > > > >>> kind of like the sudo functionality in unix. You can find more > > details > > > >>> about the functionalilty here https://apex.apache.org/docs/a > > > >>> pex/security/ in > > > >>> the Impersonation section. > > > >>> > > > >>> What happens today with launching an application with > impersonation, > > > >>> using > > > >>> the above launch example, is that even though the application runs > as > > > >>> user > > > >>> B it still uses user A's hdfs path for the application path. The > > > >>> application path is where the artifacts necessary to run the > > > application > > > >>> are stored and where the runtime files like checkpoints are stored. > > > This > > > >>> means that user B needs to have read and write access to user A's > > > >>> application path folders. > > > >>> > > > >>> This may not be allowed in certain environments as it may be a > policy > > > >>> violation for the following reason. Because user A is able to > > > impersonate > > > >>> as user B to launch the application, A is considered to be a higher > > > >>> privileged user than B and is given necessary privileges in hadoop > to > > > do > > > >>> so. But after launch B needs to access folders belonging to A which > > > could > > > >>> constitute a violation as we are not asking for permissions for a > > lower > > > >>> privilege user to access resources of a higher privilege user. > > > >>> > > > >>> I would like to propose adding a configuration setting, which when > > set > > > >>> will use the application path in the impersonated user's home > > directory > > > >>> (user B) as opposed to impersonating user's home directory (user > A). > > If > > > >>> this setting is not specified then the behavior can default to what > > it > > > is > > > >>> today for backwards compatibility. > > > >>> > > > >>> Comments, suggestions, concerns? > > > >>> > > > >>> Thanks > > > >>> > > > >>> > > > > > > > > > >