Madhan, thank you for the pointer. That looks promising! We'll try to get Ranger 2 running to evaluate.
Cheers, Lars On Fri, Jan 24, 2020 at 9:03 AM Madhan Neethiraj <mad...@apache.org> wrote: > Lars, > > > > The enhancement in RANGER-2507 > <https://issues.apache.org/jira/browse/RANGER-2507> introduced the notion > of “DenyAllElse”, which denies access to specified resources unless > explicitly allowed by the policy. This should help address your usecase. > Please review. > > > > Madhan > > > > > > *From: *Lars Francke <lars.fran...@gmail.com> > *Reply-To: *"user@ranger.apache.org" <user@ranger.apache.org> > *Date: *Thursday, January 23, 2020 at 11:43 PM > *To: *"user@ranger.apache.org" <user@ranger.apache.org> > *Subject: *Re: Ranger policies best practices > > > > Hi Bosco and thanks for the quick response! > > > > Ranger policy definitions have evolved over time to address more complex > use cases. Can you come with some real world use cases? We can try to come > policies for them. > > > > Relatively simple: > > * If we have a policy for a resource (talking about HDFS) then we want to > ALLOW only based on the Ranger policy and _not_ fall back on HDFS > > * If we do not have a policy for a resource we want the fallback > > > > At high level, here are key points; > > > > - Deny policy anywhere (tag/resource level) trumps. Exception would be > conditional policies in Ranger 2.0 > - Allow policy is needed for providing access to resource. Allow > policies are processed after all DENY policies are processed. > > > > In the flow you gave, you only need “ALLOW” policy. > > * add a ALLOW <group> policy > > * add a DENY public group > > * add a DENY EXCLUDE <group> policy > > > > I believe that's not correct but would be happy to be wrong myself ;-) > > But I think this was due to my earlier mail not being clear on what our > requirements are (see above). > > > > If we only have ALLOW that does not mean DENY for people that have not > been explicitly allowed, it means NOT_SPECIFIED (or similar is what it's > called in the code) and the HDFS ACLs are checked. > > So to prevent HDFS checking we need the DENY "public" group but because > that is checked before ALLOW we _also_ need DENY EXCLUDE. > > > > To sum it up: We want the fallback to HDFS be configurable not just > globally but per policy and until yesterday I always assumed this was > already the case. > > > > One example for DENY will be: > > Your company is hosting interns over the summer and they will be doing > some machine learning projects. The interns will need access to your > dataset, but your company policy doesn’t allow them to view PII data. > However, there is one intern name Julia as an exception and could access > PII data. > > > > - Tag based policy: “DENY” all resources tagged as “PII” for group > “INTERN” > - Exclude user “Julia” > - Now for PII resources you want Julia to access, you give “ALLOW” > access to user “julia” > > > > Note, Exclude from DENY doesn’t mean the user will get the permission. > There should be explicit ALLOW for the excluded user/group to access the > resource. > > > > Cheers, > > Lars > > > > > > > > Bosco > > > > > > *From: *Lars Francke <lars.fran...@gmail.com> > *Reply-To: *<user@ranger.apache.org> > *Date: *Thursday, January 23, 2020 at 4:49 AM > *To: *<user@ranger.apache.org> > *Subject: *Ranger policies best practices > > > > Hi, > > > > I'm wondering what the best practices for policies in Ranger are? > > With Deny policies I'm not sure anymore. > > > > The way I understand it I now need to > > > > * add a ALLOW <group> policy > > * add a DENY public group > > * add a DENY EXCLUDE <group> policy > > > > so that I can allow access for people from the <group>. Those would be > three rules for one ALLOW. > > > > We can disable the HDFS fallback but it's global. > > What I had assumed so far (wrongly) is that as soon as there is a policy > that matches a resource it is authoritative i.e. if this policy doesn't > allow access it'll not fall through and deny. > > > > Is there anything I misunderstood and/or what are the best practices for > policies in Ranger these days? > > > > I know this Wiki page (< > https://cwiki.apache.org/confluence/display/RANGER/How+Deny+Policies+Work+in+Apache+Ranger>) > but that misses just those corner cases. > > > > I assume (from my experience with customers) that quite a few people are > actually using Ranger wrong if my understanding is correct. > > > > Thanks for your help! > > > > Cheers, > > Lars > >