Patent Publication Number: US-2023161716-A1

Title: Privilege level assignments to groups

Description:
BACKGROUND 
     Cloud providers may provide users access to a variety of resources, which may be shared among many users. In order to provide secure access, guarantee privacy, and adhere to legal and compliance regulations, cloud providers may implement access models that may allow for organizational administrators to apply restrictions on resource access. For instance, cloud providers may employ a Rule Based Access Control (RBAC) as an access model for the users over the resources. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which: 
         FIG.  1    shows a block diagram of a network environment, in which an apparatus may manage privilege levels assigned to a group of members, in accordance with an embodiment of the present disclosure; 
         FIG.  2    depicts a block diagram of the apparatus depicted in  FIG.  1   , in accordance with an embodiment of the present disclosure; 
         FIGS.  3 A- 3 D , collectively, depict a flow diagram of a method for determining whether an assigned permission level of a group of members is to be modified and to assigning a different permission level to the group based on the determination, in accordance with an embodiment of the present disclosure; and 
         FIG.  4    depicts a block diagram of a computer-readable medium that may have stored thereon for assigning a privilege level to a group of members for a resource, hi accordance with an embodiment of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     For simplicity and illustrative purposes, the principles of the present disclosure are described by referring mainly to embodiments and examples thereof. In the following description, numerous specific details are set forth in order to provide an understanding of the embodiments and examples. It will be apparent, however, to one of ordinary skill in the art, that the embodiments and examples may be practiced without limitation to these specific details. In some instances, well known methods and/or structures have not been described in detail so as not to unnecessarily obscure the description of the embodiments and examples. Furthermore, the embodiments and examples may be used together in various combinations. 
     Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element, As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on. 
     As discussed above, cloud providers may provide users access to a variety of resources and may implement an access model that may restrict access by the users to the resources. As organizations become more complex with ever increasing numbers of users and resources, the ability to apply the access model and track access configurations may become more complex. In some instances, this may lead to some of the users being granted greater access privileges to the resources than they may practically use. A result of the users being granted overly permissive access privileges may be that the access to the resources may be less secure than when the users are granted least levels of access privileges. 
     Disclosed herein are systems, apparatuses, methods, and computer-readable media in which a processor may manage assignment of privilege levels to groups of members for resources. That is, instead of assigning privilege levels to members individually for the resources, the processor may assign privilege levels to groups of members for the resources. In addition, the processor may assign the privilege level to a group of members such that the members may have a least privilege level to a resource. The least privilege level may be defined as a minimal level of access privilege that the members may use to perform their intended functions with respect to the resource. 
     As discussed herein, the processor may determine a respective least privilege level for a resource for each of a plurality of members in a group and may determine, based on the determined respective least privilege levels, a privilege level to be assigned to the group for the resource. The processor may also assign the determined privilege level to the group for the resource and may apply the assigned privilege level to the members of the group for the resource. In some examples, the processor may further assign and apply different privilege levels to some of the members, may partition the group into sub-groups that are assigned different privilege levels with respect to each other, and/or may modify the assigned privilege level. 
     A technological issue with conventional management of user access to resources may be that the tracking of individual user privilege levels may be overly complex, which may result in greater processor usage and decreased security over data in the resources. Through implementation of various features of the present disclosure, a processor may assign a privilege level to a group of members instead of to the members individually for a resource. In addition, the processor may assign the privilege level to be a least privilege level that, for instance, the majority of the members in the group may use to access the resource in normally performing their duties. As a result, a technological improvement of the features of the present disclosure may be that the complexity in managing member privileges over the resources may be reduced, which may result in a reduced processor utilization and thus, energy and processing power consumption. Additionally, the features of the present disclosure may result in improved security over the resources as the groups (and thus, the members of the groups) may be assigned least privilege levels to the resources. 
     Reference is first made to  FIGS.  1  and  2   . FIG,  1  shows a block diagram of a network environment  100 , in which an apparatus  102  may manage privilege levels assigned to a group  120  of members  122 A- 122 N, in accordance with an embodiment of the present disclosure.  FIG.  2    depicts a block diagram of the apparatus  102  depicted in  FIG.  1   , in accordance with an embodiment of the present disclosure. It should be understood that the network environment  100  and the apparatus  102  of the network environment  100  may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of the network environment  100  and/or the apparatus  102 . 
     As shown in  FIG.  1   , the network environment  100  may include the apparatus  102 , a plurality of members  122 A- 122 N, resources  130 A,  130 B, and a network  140 . According to examples, the apparatus  102  may be a server or other type of computing device, e.g., a network gateway, an access point, or the like, that may provide administrative services to the members  122 A- 122 N, in which the variable “N” may represent a value greater than 1. In some examples, each of the members  122 A- 122 N may be a separate computing device, such as a personal computer, a laptop computer, a tablet computer, a smartphone, a handheld scanning device, or the like. In other examples, each of the members  122 A- 122 N may be a different user, user account, service, application, or the like. For instance, the first member  122 A may represent a first user account that is logged into a first computing device, the second member  1228  may represent a first service executing a second computing device, etc. As such, for instance, a user may log into different computing devices using a user account at different times and may thus be a member  122 A on different computing devices at different times. Likewise, different services may be executing on different computing devices and may access the resources  130 A and  130 E during the execution of the services. 
     As also shown, the members  122 A- 122 N may be part of a group  120 . Generally speaking, the group  120  may be defined as a collection of principals or members, e.g., users, user accounts, terminals, computing devices, services, applications, or the like, that may share a common feature and/or function. By way of example, a group may include members (e.g., user accounts of employees) of a business organization that work in a common department, for instance, the employees in a finance department, an IT department, a facilities management department, a sales department, a marketing department, or the like. As another example, a group may include members of an educational institution, for instance, the faculty in the math department, the faculty in the English department, or the like. In any regard, an administrator of an organization or other personnel may define the criteria for inclusion in the group  120  and may determine which members  122 A- 122 N are to be included in the group  120 . As a further example, a group may include services that are to perform similar types of operations for a department in an organization or institution. 
     Although each of the members  122 A- 122 N has been depicted as being included in the group  120 , it should be understood that at least one of the members  122 A- 122 N may be outside of the group  120 . Additionally, although a single group  120  has been depicted in  FIG.  1   , it should be understood that any number of groups may be included in the network environment  100  depicted in  FIG.  1   . Likewise, although two resources  130 A and  130 B are depicted, it should be understood that the network environment  100  may include any number of resources, 
     As further shown in  FIG.  1   , the apparatus  102  may communicate with each of the members  122 A- 122 N via a network  140 , which may be any suitable type of network through which the members  122 A- 122 N, e.g., the computing devices on which the members  122 A- 122 N are logged in, are executing, etc., and the apparatus  102  may communicate with each other, such as the Internet, a wide area network, a local area network, and/or the like. In addition, the members  122 A- 122 N may communicate with the resources  130 A and  1308  via the network  140 . The resources  130 A and  1308  may each be a server, a service, a virtual machine, a data store, a data store, and/or the like. 
     As discussed herein, the group  120  may be assigned a privilege level, which may also be referenced as a permission level, a role, or the like, to a first resource  130 A and a privilege level to the second resource  1308 . The privilege levels assigned to the group  120  may be the same or may differ for each of the first resource  130 A and the second resource  1308 . As also discussed herein, the apparatus  102 , and more particularly, the processor  104 , may assign and/or modify an assigned privilege level to the group  120  for the first resource  130 A and the privilege level for the second resource  130 B. The privilege level may be assigned based on a type of access that the members  122 A- 122 N of the group  120  are to have over the first resource  130 A and/or the second resource  1308 , e.g., the files, documents, data, and/or the like, stored on the first resource  130 A. For instance, a first group, e.g., a finance group, may be assigned a higher privilege level to the first resource  130 A than a second group, e.g., a sales group, because the members in the first group may normally manipulate the data provided by the first resource  130 A whereas the members in the second group may normally read the data provided by the first resource  130 A. 
     The types of access may include, for instance, a contributor type, a writer type, a reader type, a limited reader type, a limited writer type, and/or the like. A group  120  that has been assigned the contributor type of access may enable the members  122 A- 122 N of the group  120  to have a highest level of access to the data associated with a resource  130 A. Thus, for instance, a group  120  that has been assigned with the contributor type of access may enable the members  122 A- 122 N of the group  120  to read, write, copy, delete, modify, etc., the data. A group  120  that has been assigned with the writer type of access may enable the members  122 A- 122 N of the group  120  to read and write the data. A group  120  that has been assigned with the reader type of access may enable the members  122 A- 122 N to read the data without being able to write, e.g., modify, the data. 
     As shown in  FIG.  1   , the apparatus  102  may include a data store  108  on which assigned privilege levels  110  of a plurality of groups, including the group  120 , may be stored. The data store  108  may be a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like. The privilege levels may be assigned to the groups such that, for instance, when new members are added to an organization and/or when members change groups, the members may be assigned the same privilege level as other members of the group, which may simplify assignment of privilege levels to the members, The assigned privilege levels may also be enforced such that, for instance, access by the members of the groups to the resources may be restricted to their assigned privilege levels. For instance, the apparatus  102  may employ role-based access control over the members  122 A- 122 N. 
     According to examples, and as discussed herein, the apparatus  102  may manage the privilege level assigned to a group  120  for a resource  130 A such that, for instance, the group  120  may be assigned an appropriate privilege level for the resource  130 A. That is, for instance, the apparatus  102  may manage the privilege level assigned to the group  120  for the resource  130 A such that the group  120  may be assigned a least privilege level, e.g., a minimal privilege level, that may enable the members  122 A- 122 N of the group  120  to normally perform their intended duties. The apparatus  102  may also apply the assigned least privilege level to the group  120  such that the members  122 A- 122 N of the group  120  may be prevented from having access (e.g., read access, write access, etc.) to the data associated with the resource  130 A that exceeds the assigned least privilege level. By assigning and applying the least privilege level to the group  120 , access to the data associated with the resource  130 A may be better restricted, which may enhance security of the resources  130 A. 
     As shown in  FIGS.  1  and  2   , the apparatus  102  may include a processor  104  that may control operations of the apparatus  102 . The apparatus  102  may also include a memory  106  on which data that the processor  104  may access and/or may execute may be stored. The processor  104  may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device. The memory  106 , which may also be termed a computer readable medium, may be, for example, a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like. The memory  106  may be a non-transitory computer readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. In any regard, the memory  106  may have stored thereon machine-readable instructions that the processor  104  may execute. 
     Although the apparatus  102  is depicted as having a single processor  104 . it should be understood that the apparatus  102  may include additional processors and/or cores without departing from a scope of the apparatus  102 . In this regard, references to a single processor  104  as well as to a single memory  106  may be understood to additionally or alternatively pertain to multiple processors  104  and multiple memories  106 . In addition, or alternatively, the processor  104  and the memory  106  may be integrated into a single component, e.g., an integrated circuit on which both the processor  104  and the memory  106  may be provided. In addition, or alternatively, the operations described herein as being performed by the processor  104  may be distributed across multiple apparatuses  102  and/or multiple processors  104 . 
     As shown in  FIG.  2   , the memory  106  may have stored thereon machine-readable instructions  200 - 206  that the processor  104  may execute. Although the instructions  200 - 206  are described herein as being stored on the memory  106  and may thus include a set of machine-readable instructions, the apparatus  102  may include hardware logic blocks that may perform functions similar to the instructions  200 - 206 . For instance, the processor  104  may include hardware components that may execute the instructions  200 - 206 . In other examples, the apparatus  102  may include a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions  200 - 206 . In any of these examples, the processor  104  may implement the hardware logic blocks and/or execute the instructions  200 - 206 . As discussed herein, the apparatus  102  may also include additional instructions and/or hardware logic blocks such that the processor  104  may execute operations in addition to or in place of those discussed above with respect to  FIG.  2   . 
     The processor  104  may execute the instructions  200  to determine, for each of the members  122 A- 122 N of the group  120 , a respective least privilege level for a resource  130 A, That is, for instance, the processor  104  may determine, for each of the member  122 A- 122 N, a least or lowest privilege level that the member may need to perform their normal duties or functions. By way of example, the processor  104  may determine that a first member  122 A may normally read data associated with, e.g., stored by, under the control of, or the like, the resource  130 A and that a second member  122 B may normally write data associated with the resource  130 A. Thus, for instance, the processor  104  may determine that the least privilege level that the first member  122 A may need for the resource  130 A is a read type of privilege level and that the least privilege level that the second member  122 B may need for the resource  130 B is a write type of privilege level. 
     The processor  104  may determine the respective least privilege levels for the resource  130 A through implementation of any suitable algorithm or technique. For instance, the processor  104  may determine, for each of the members  122 A- 122 N, historical usage of the resource  130 A, e.g., the type of access that the members  122 A- 122 N used on the resource  130 A. The processor  104  may review logs or other data that may show the historical usage over a certain period of time, e.g., the past month, the past three months, and/or the like, etc. By way of example, the processor  104  may determine that the least privilege level for the first member  122 A may be a read privilege level based on a determination that the first member  122 A did not perform any write operations of the data associated with the resource  130 A during the time period at which the historical usage was analyzed. In any regard, the processor  104  may determine the respective least privilege levels of the members  122 A- 122 N for the resource  130 A based on the historical usages of the resource  130 A. 
     The processor  104  may execute the instructions  202  to determine, based on the determined respective least privilege levels, a privilege level to be assigned to the group  120  for the resource  130 A. For instance, the processor  104  may determine the least privilege level for which a majority of the members  122 A- 122 N are determined to have. In this example, the processor  104  may determine the privilege level to be assigned to the group  120  to correspond to the determined least privilege level for which the majority of the members  122 A- 122 N are determined to have. 
     The processor  104  may execute the instructions  204  to assign the determined privilege level to the group  120  for the resource  130 A. That is, for instance, the processor  104  may store the assignment of the determined privilege level to the group  120  for the resource  130 A in the data store  108 . In addition, the processor  104  may execute the instructions  206  to apply the assigned privilege level to the group  120  for the resource  130 A. That is, for instance, the processor  104  may control or otherwise cause the level and/or type of access that the members  122 A- 122 N of the group  120  may have over the resource  130 A to be restricted to the applied permission level. By way of example, the processor  104  may directly control how the members  122 A- 122 N may access and/or manipulate data associated with the resource  130 A. As another example, the processor  104  may direct or otherwise cause the resource  130 A to enforce the level and/or type of access that the members  122 A- 122 N may have over the resource  130 A. 
     According to examples, the processor  104  may determine whether any of the members  122 A- 122 N have a least privilege level that is lower than the assigned privilege level of the group  120 . In these examples, the processor  104  may identify those members  122 A and may assign a least privilege level to the identified member  122 A or members that is lower than the privilege level assigned to the group  120  for the resource  130 A. In addition, the processor  104  may apply the lower least privilege level to the identified member  122 A or members for the resource  130 A. 
     According to examples, the processor  104  may determine whether any of the members  122 A- 122 N of the group  120  has a determined least privilege level that exceeds the assigned privilege level to the group  120  for the resource  130 A. In these examples, the processor  104  may assign a privilege level that is higher than the privilege level assigned to the group  120  for the resource  130 A. In addition, the processor  104  may assign and apply the higher least privilege level to the members of the group for the resource determined to have a determined least privilege level that exceeds the different privilege level assign to the group. 
     In some examples, the processor  104  may determine a number of the members  122 A- 122 N having determined least privilege levels that are lower than the assigned privilege level of the group  120  for the resource  130 A. In these examples, the processor  104  may determine whether the determined number exceeds a predetermined value. The predetermined value may be user-defined and/or may be based, for instance, on an intended security level of the resource  130 A. Based on the determined number of the members  122 A- 122 N having determined least privilege levels that fall below the predetermined value, the processor  104  may partition the group  120  into a first sub-group and a second sub-group. In addition, the processor  104  may assign the determined privilege level to the first sub-group and may assign a different, e.g., lower or higher, privilege level to the second sub-group. The processor  104  may also assign members of the group  120  having a determined least privilege level that meets or exceeds the assigned privilege level to the first sub-group and may assign members of the group having a determined least privilege level that is below the assigned privilege level to the second sub-group. The processor  104  may further store the assignments of the members of the group  120  in the data store  108 . 
     In some examples, the processor  104  may determine whether the sub-groups of the group  120  are to be further partitioned, for instance, based on a determined number of the members  122 A- 122 N in the sub-groups. That is, the processor  104  may determine whether a sub-group is to be further partitioned into descendent sub-groups in manners similar to those discussed above with respect to determining whether the group  120  is to be partitioned into the sub-groups. The processor  104  may also determine that the descendent sub-groups may be further partitioned hi similar manners until, for instance, the processor  104  determines that no further partitions are to be made. 
     The partitioning of the group  120 , sub-groups, and descendent sub-groups, may add complexity to the assignment of privilege levels to the group  120 , sub-groups, and descendent sub-groups, especially as the levels of descendent sub-groups increases. In some examples, the processor  104  may determine whether partitioning the group  120 , a sub-group, a descendent sub-group, and/or the like, would exceed a complexity threshold, and may partition the group  120  into the first sub-group and the second sub-group, may partition a sub-group into descendent sub-groups, etc., based on a determination that the partitioning would not exceed the complexity threshold. The complexity threshold may be user-defined and may be based on any suitable parameters, such as available processing resources, number of members, number of groups, number of descendent sub-groups, and/or the like. Thus, for instance, the processor  104  may not partition a group, a sub-group of the group, a descendent sub-group, etc., based on a determination that the number of sub-groups and/or descendant sub-groups exceeds a certain threshold number, In instances in which the processor  104  determines that partitioning the group  120 , the sub-group, the descendent sub-group, etc., would likely exceed the complexity threshold, the processor  104  may not partition the group  120 , the sub-group, the descendent sub-group, etc. 
     According to examples, the processor  104  may determine whether the group  120  is to be assigned a privilege level for the second resource  130 B. That is, the processor  104  may determine, for each of the members, a respective least privilege level for the second resource  130   b.  The processor  104  may also determine, based on the determined respective least privilege levels for the second resource  1308 , a second privilege level to be assigned to the group  120  for the second resource  1308 . The processor  104  may further assign the determined second privilege level to the group  120  for the second resource  130 B and may apply the assigned second privilege level to the group  120  for the second resource  1308 . The processor  104  may still further partition the group  120  and/or assign lower or higher privilege levels to some of the members  122 A- 122 N for the second resource  130 B in manners similar to those discussed herein with respect to the first resource  130 A. 
     According to examples, the processor  104  may determine whether the assigned privilege level to the group  120  for the resource  130 A is to be modified. In these examples, the processor  104  may determine a number of the members  122 A- 122 N that have least privilege levels that are lower than the assigned privilege level of the group  120  for the resource  130 A. That is, for instance, the processor  104  may determine whether the assigned privilege level of the group  120  is to be modified based on a number of the members  122 A- 122 N having least privilege levels that are lower than the assigned privilege level of the group  120 . The number of the members  122 A- 122 N may correspond to any suitable number, e.g., a total number, a percentage value of the total number of members  122 A- 122 N in the group  120 , or the like. 
     The processor  104  may also determine whether the determined number of the members  122 A- 122 N that have least privilege levels that are lower than the assigned privilege level of the group exceeds a predefined threshold value, The predefined threshold level may be user-defined and may be set based on, for instance, an intended security level associated with the group  120  and/or the resource  130 A. Thus, for instance, the predefined threshold level may be set to a lower level in instances in which a higher level of security is intended and to a higher level in instances in which a lower level of security is intended. By way of example in which a higher level of security is intended, by setting the predefined threshold level to a lower number, the privilege level assigned to the group  120  may more likely be reduced. 
     The processor  104  may, based on the determined number exceeding the predefined threshold value, determine that the assigned privilege level of the group is to be modified. In an example in which the predefined threshold value is 60%, the processor  104  may determine that the determined number exceeds the predefined threshold value based on 60% or greater of the members  122 A- 122 N having least privilege levels that fall below the assigned privilege level of the group  120 . In other examples, the processor  104  may determine that the assigned privilege value of the group is not to be modified based on a determination that the determined number falls below the predefined threshold value. 
     The processor  104  may, based on a determination that the privilege level of the group  120  is to be modified, assign and store a different privilege level to the group  120  for the resource  130 A. That is, the processor  104  may assign a lower privilege level to the group  120  for the resource  130 A. In some examples, the lower privilege level may correspond to the determined respective least privilege levels of the members  122 A- 122 N. For instance, the lower privilege level may be equivalent to a majority (or some other number) of the determined respective least privilege levels of the members  122 A- 122 N for the resource  130 A. Thus, in an example in which the assigned privilege level is a contributor level, the processor  104  may modify the assigned privilege level to a reader or a writer level. The processor  104  may also store the assigned different privilege level in the data store  108  and may apply the assigned different privilege level of the members  122 A- 122 N for the resource  130 A. 
     According to examples, the processor  104  may determine whether any of the members  122 A of the group  120  has a determined least privilege level that exceeds the different privilege level, e.g., lower privilege level, assigned to the group  120 . In these examples, the processor  104  may implement an exception for those members  122 A of the group  120  having determined least privilege levels that exceeds the different privilege level. That is, the processor  104  may exempt those members  122 A from being assigned the different privilege level. Instead, those members  122 A may be assigned the determined privilege level, e.g., the initially assigned privilege level of those members  122 A may not be modified. In addition, the processor  104  may store the assigned privilege level of those members  122 A in the data store  108  and may apply the assigned privilege level of those members  122 A for the resource  130 A. 
     However, based on a determination that the determined number of the members  122 A- 122 N having least privilege levels that are lower than the assigned privilege level of the group  120  falls below the predefined threshold value, the processor  104  may determine that the assigned privilege level of the group  120  for the resource  130 A is not to be modified. In addition, the processor  104  may not modify the assigned privilege level of the group  120  for the resource  130 A. In these examples, the processor  104  may identify a member  122 A (or members) of the group  120  having a determined least privilege level that falls below the assigned privilege level of the group  120  for the resource  130 A. The processor  104  may also assign and store the determined least privilege level to the identified member  122 A (or members) of the group  120  for the resource  130 A. As a result, the member(s)  122 A that have determined least privilege levels that fall below the assigned privilege level of the group  120  for the resource  130 A may be assigned lower privilege levels, which may enhance security of the resource  130 A. 
     In some examples, the processor  104  may determine a number of the members  122 A- 122 N having determined least privilege levels that are lower than the assigned privilege level of the group. In these examples, the processor  104  may determine whether the determined number exceeds a predetermined value. The predetermined value may be user-defined and may be based, for instance, on an intended security level of the resource  130 A. Based on the determined number of the members  122 A- 122 N having determined least privilege levels that fall below the predetermined value, the processor  104  may partition the group  120  into a first sub-group and a second sub-group. In addition, the processor  104  may assign the privilege level assigned to the group  120 , e.g., the initially assigned privilege level, to the first sub-group and may assign the different privilege level, e.g., the modified privilege level, to the second sub-group. The processor  104  may also assign members of the group  120  having a determined least privilege level that meets or exceeds the assigned privilege level to the first sub-group and may assign members of the group having a determined least privilege level that is below the assigned privilege level to the second sub-group. The processor  104  may further store the assignments of the members of the group  120  in the data store  108 . 
     As discussed herein, the processor  104  may further partition a sub-group into descendent sub-groups. In addition, the processor  104  may determine whether partitioning the group  120 , a sub-group, a descendent sub-group, etc., would exceed a complexity threshold, and may partition the group  120  into the first sub-group and the second sub-group, partition the sub-group, partition the descendent sub-group, etc., based on a determination that the partitioning would not exceed the complexity threshold. The complexity threshold may be user-defined and may be based on any suitable parameters, such as available processing resources, number of members, number of groups, number of descendent sub-groups, and/or the like. In instances in which the processor  104  determines that partitioning the group  120 , the sub-group, the descendent sub-group, etc., would likely exceed the complexity threshold, the processor  104  may not partition the group  120 , the sub-group, the descendent sub-group, etc. 
     According to examples, the processor  104  may determine whether the privilege level of the group  120  for the second resource  130 B is to be modified. That is, the processor  104  may identify a second privilege level assigned to the group  120  for a second resource  130 B and may determine, for each of the members  122 A- 122 B of the group, a respective least privilege level for the second resource  130 B. The processor  104  may also determine, based on the determined respective least privilege levels, whether the assigned privilege level of the group  120  is to be modified for the second resource  130 B and based on a determination that the privilege level of the group  120  is to be modified for the second resource  130 B, assign and store a different privilege level to the group  120  for the second resource  130 B. The processor  104  may further determine whether any of the members  122 A- 122 N are to have least privilege levels that differ from the privilege level assigned to the group  120  in manners similar to those discussed herein with respect to the first resource  130 A. 
     Various manners in which the processor  104  of the apparatus  102  may operate are discussed in greater detail with respect to the method  300  depicted in  FIGS.  3 A- 3 D . Particularly,  FIGS.  3 A- 3 D , collectively, depict a flow diagram of a method  300  for determining whether an assigned permission level of a group  120  of members  122 A- 122 N is to be modified and to assigning a different permission level to the group  120  based on the determination, in accordance with an embodiment of the present disclosure. It should be understood that the method  300  depicted in  FIGS.  3 A- 3 D  may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scope of the method  300 . The description of the method  300  is made with reference to the features depicted in  FIGS.  1  and  2    for purposes of illustration. 
     With reference first to  FIG.  3 A , at block  302 , the processor  104  may identify a permission level assigned to a group  120  of members  122 A- 122 N over a resource  130 A. The permission level may be equivalent to the privilege level discussed elsewhere herein as well as to a role or other equivalent term. 
     At block  304 , the processor  104  may determine least permission levels respectively used by the members  122 A- 122 N over the resource  130 A over a predefined time period. In addition, at block  306 , the processor  104  may determine whether the assigned permission level of the group  120  over the resource  130 A is to be modified based on the determined least permission levels. For instance, the processor  104  may determine a number of the members  122 A- 122 N that have used least permission levels over the resource  130 A over the predefined time period that are lower than the assigned permission level of the group  120  over the resource  130 A. The processor  104  may also determine whether the determined number exceeds a predefined threshold value and based on the determined number exceeding the predefined threshold value, determine that the assigned permission level of the group  120  over the resource  130 A is to be modified. 
     At block  308 , the processor  104  may assign a different permission level to the group  120  over the resource  130 A based on a determination that the assigned permission level is to be modified. The processor  104  may also store the assigned different permission level in the data store  108 . At block  310 , the processor further apply the different permission level to the members  122 A- 122 N of the group  120  over the resource  130 A. That is, for instance, the processor  104  may control or otherwise cause the level and/or type of access that the members  122 A- 122 N may have over the resource  130 A to be restricted to the different permission level. By way of example, the processor  104  may directly control how the members  122 A- 122 N may access and/or manipulate data associated with the resource  130 A. As another example, the processor  104  may direct or otherwise cause the resource  130 A to enforce the level and/or type of access that the members  122 A- 122 N may have over the resource  130 A. 
     In some examples, at block  312 , the processor  104  may determine whether any of the members  122 A- 122 N of the group  120  has a determined least permission level that exceeds the different permission level assigned to the group  120  over the resource  130 A. In these examples, at block  314 , the processor  104  may end the method  300  based on a determination that none of the members has a determined least permission level over the resource  130 A that exceeds the different permission level assigned to the group  120  over the resource  130 A. 
     However, based on at least one of the members  122 A- 122 N having a determined least permission level that exceeds the different permission level assigned to the group  120  over the resource  130 A, at block  314  ( FIG.  3 B ), the processor  104  may assign the determined least permission level to the members of the group  120  determined to have a determined least permission level that exceeds the different permission level assigned to the group  120  over the resource  130 A. In addition, at block  318 , the processor  104  may apply the assigned least permission level to the members of the group  120  determined to have a determined least permission level that exceeds the different permission level assigned to the group  120  over the resource  130 A. The method  300  may also end at block  314  following block  318 . 
     With reference back to  FIG.  3 A , based on the determined number falling below the predefined threshold value at block  306 , the processor  104  may determine that the assigned permission level of the group  120  over the resource  130 A is not to be modified as indicated at block  320 . In some examples, the processor  104  may, at block  322  ( FIG.  3 C ), determine whether any of the members  122 A- 122 N of the group  120  has a least permission level that falls below the assigned permission level of the group  120  over the resource  130 A. Based on a determination that at least one of the members has a least permission level that falls below the assigned permission level of the group  120  over the resource  130 A, the processor  104  may identify those members and at block  324 , may assign the determined least permission level to the identified member or members. In addition, at block  326 , the processor  104  may apply the assigned least permission level to the identified member or members. 
     However, based on a determination that none of the members  122 A- 122 N of the group  120  has a least permission level that falls below the assigned permission level of the group  120  over the resource  130 A, the processor  104  may end the method  300  at block  314 . 
     According to examples, based on a determination at block  312  that at least one of the members  122 A- 122 N of the group  120  has a determined least permission level that exceeds the different permission level assigned to the group  120  over the resource  130 A, at block  330  ( FIG.  3 D ), the processor  104  may determine a number of the members having a least permission level that is lower than the assigned permission level of the group  120  over the resource  130 A. At block  332 , the processor  104  may determine whether the determined number of the members at block  330  exceeds a predetermined value. 
     In addition, at block  334 , the processor  104  may, based on the determined number falling below the predetermined value, partition the group  120  into a first sub-group and a second sub-group. The processor  104  may also assign (block  336 ) the permission level assigned to the group  120  to the first sub-group and assign (block  338 ) the different permission level to the second sub-group. The processor  104  may also assign members of the group  120  having a determined least permission level that meets or exceeds the assigned permission level to the first sub-group and may assign members of the group  120  having a determined least permission level that is below the assigned permission level to the second sub-group. The processor  104  may further apply and/or enforce the assigned permission levels upon the members in each of the respective sub-groups. The processor  104  may still further end (block  314 ) the method  300 . 
     In some examples, prior to partitioning the group  120  at block  334  or partitioning a sub-group into descendent sub-groups, etc., the processor  104  may determine whether partitioning the group, the sub-group, etc., would exceed a complexity threshold as discussed herein. In addition, the processor  104  may partition the group into the first sub-group and the second sub-group, a sub-group into descendent sub-groups, etc., based on a determination that the partitioning would not exceed the complexity threshold. However, the processor  104  may not partition the group, the sub-group, the descendent sub-group, etc., based on a determination that the partitioning would exceed the complexity threshold. 
     With reference back to block  332 , based on a determination that the number of the members determined at block  330  does not exceed the predetermined value, the processor  104  may end the method  300 . Following the ending of the method  300  at block  314 , the processor  104  may implement the method  300  again for the group  120  over another resource  130 E and/or for another group  120  over the resource  130 A. The processor  104  may repeat the method  300  in this manner for any additional combinations of groups  120  and resources. 
     Some or all of the operations set forth in the method  300  may be included as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, the method  300  may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine-readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium. 
     Examples of non-transitory computer readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above. 
     Turning now to  FIG.  4   , there is shown a block diagram of a computer-readable medium  400  that may have stored thereon computer-readable instructions for assigning a privilege level to a group  120  of members  122 A- 122 N for a resource  130 A, in accordance with an embodiment of the present disclosure. It should be understood that the computer-readable medium  400  depicted in FIG,  4  may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium  400  disclosed herein. The computer-readable medium  400  may be a non-transitory computer-readable medium, in which the term “non-transitory” does not encompass transitory propagating signals. 
     The computer-readable medium  400  may have stored thereon computer-readable instructions  402 - 410  that a processor, such as the processor  104  depicted in  FIGS.  1  and  2   , may execute. The computer-readable medium  400  may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The computer-readable medium  400  may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. 
     The processor may fetch, decode, and execute the instructions  402  to identify a group  120  of members  122 A- 122 N and a resource  130 A. That is, the processor may identify a group  120  of members  122 A- 122 N for which a privilege level of the group  120  is to be determined for a resource  130 A. The processor may fetch, decode, and execute the instructions  404  to, for each of the members  122 A- 122 N of the group  120 , determine historical usage of the resource  130 A and determine a respective least privilege level for the resource  130 A based on the determined historical usage. The processor may fetch, decode, and execute the instructions  406  to determine, based on the determined respective least privilege levels, a privilege level to be assigned to the group  120  for the resource  130 A. The processor may determine the privilege level to be assigned to the group  120  as corresponding to, for instance, a majority of the determined respective least privilege levels. The processor may fetch, decode, and execute the instructions  408  to assign the determined privilege level to the group  120  for the resource  130 A. The processor may further fetch, decode, and execute the instructions  410  to store the assigned privilege level of the group for the resource. 
     According to examples, the processor may fetch, decode, and execute additional instructions to determine a number of the members  122 A- 122 N having least privilege levels that are lower than the assigned privilege level of the group  120  for the resource  130 A, determine whether the determined number exceeds a predefined threshold value, and based on the determined number exceeding the predefined threshold value, determine that the assigned privilege level of the group  120  is to be modified. In addition or alternatively, the processor may fetch, decode, and execute additional instructions to identify a member  122 A of the group  120  having a determined least privilege level that falls below the assigned privilege level of the group  120  and may assign and store the determined least privilege level to the identified member  122 A. In addition or alternatively, the processor may fetch, decode, and execute additional instructions to determine whether any of the members  122 A of the group  120  has a determined least privilege level that exceeds the assigned privilege level of the group  120  for the resource  130 A and may assign and store the determined least privilege level to the members  122 A of the group  120  determined to have a determined least privilege level that exceeds the assigned privilege level of the group  120  for the resource  130 A. 
     In yet other examples, the processor may fetch, decode, and execute additional instructions to determine a number of the members  122 A- 122 N having least privilege levels that are lower than the assigned privilege level of the group  120  for the resource  130 A. In these examples, the processor may also determine whether the determined number exceeds a predetermined value and based on the determined number falling below the predetermined value, may partition the group into a first sub-group and a second sub-group. The processor may further assign a first privilege level to the first sub-group and may assign a second privilege level to the second sub-group. The processor may assign the members  122 A- 122 N into the respective sub-groups based on their determined least privilege levels for the resource  130 A. The processor may further partition the first sub-group into descendent sub-groups as discussed herein. Additionally, the processor may partition the group and/or the sub-group (as well as any other descendent sub-groups) based on a determination that such partitioning would not result in a complexity threshold being exceeded. 
     Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a\wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure. 
     What has been described and illustrated herein is an example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all terms are meant in their broadest reasonable sense unless otherwise indicated.