Program Cannot be Executed without access to the Namespace

Description

A user with EXECUTE permission on a program cannot start the program without privilege on the namespace in which program is deployed.

REST Error:

Master logs:

Release Notes

None

Activity

Show:

Nishith Nand February 7, 2017 at 9:41 PM

I have updated the authorization policy document to reflect this.

Rohit Sinha December 14, 2016 at 2:37 AM
Edited

After some detailed discussion we have decided to revisit this and fix it in 4.1 once we will finalize an authorization privilege model.
As of now and in 4.0 to run a program a user should have the following permission or its equivalent on the parent to leverage the hierarchical model:
1. EXECUTE on program or any of its parent
2. Any (READ/WRITE/EXECUTE/ADMIN) Privilege on the Namespace in which program is deployed
3. READ privilege on the artifact is associated with program

Rohit Sinha December 13, 2016 at 7:41 PM

After fixing the permission requirement for namespace to run a program we also encountered that to run a program the user privilege on the artifacts.

Rohit Sinha December 12, 2016 at 10:48 PM

The above issue is caused because to start a program we do look up for its properties for example schedule queue name. This requires looking up NamespaceMeta of the namespace in which the program reside which is guarded with authorization too. We talked to and discussed that we need to revisit where we do authorization checks across CDAP.

For 4.0 we to have minimal change at this point we have decided to move the auth check in NamespaceAdmin.get() to the Handler.

Rohit Sinha December 12, 2016 at 10:44 PM

I don't think giving READ on the namespace is an acceptable workaround. Giving READ on namespace will allow that user to read all datasets, streams in that namespace.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Affects versions

Fix versions

Priority

Created December 12, 2016 at 9:03 PM
Updated February 7, 2017 at 9:41 PM
Resolved February 7, 2017 at 9:41 PM