Voting has completed and JIRA has been created https://issues.apache.org/jira/browse/APEXCORE-733
Thanks On Mon, May 22, 2017 at 3:12 PM, Sanjay Pujare <san...@datatorrent.com> wrote: > 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 > > > > >>> > > > > >>> > > > > > > > > > > > > > > >