1. A computer-implemented method of accessing shared computing resources, the method comprising: receiving a request to access a computing resource in a computing resource hierarchy stored in a memory or storage of a computing device; generating, by operations carried out by one or more processors, an effective access control list for the computing resource, wherein generating the effective access control list comprises: collecting available access control policies for one or more parent computing resources of the computing resource in the computing resource hierarchy, and analyzing the permissions specified in the collected access control policies to generate the effective access control list, wherein the analyzing comprises propagating the permissions specified in the available access control policies for the one or more parent computing resources and storing the propagated permissions in the effective access control list; determining, based at least in part on the generated effective access control list for the computing resource, whether to grant the requested access to the computing resource; receiving a subsequent request to access the computing resource; identifying the generated effective access control list associated with the computing resource; and determining, based at least in part on the generated effective access control list, whether to grant the subsequent requested access to the computing resource, wherein the determining comprises analyzing the propagated permissions for the one or more parent computing resources in the generated effective access control list.