The present disclosure relates to computing environments, and more particularly to methods, techniques, and systems for controlling access to perform operations on data center resources based on credit units.
A data center is a facility that houses a wide range of hardware components such as servers, storage devices, communication equipment, and the like, organized into clusters. For example, an information technology (IT) service provider may maintain a data center. An enterprise may purchase data storage and/or data processing services from the provider in order to run applications that manage the enterprises' core business and operational data. The applications may be proprietary and used exclusively by the enterprise or made available through a network for anyone to access and use.
Virtual computing instances (VCIs), such as virtual machines (VMs), virtual workloads, data compute nodes, clusters, containers, and the like, have been introduced to lower data center capital investment in facilities and operational expenses and reduce energy consumption. A VCI is a software implementation of a computer that executes application software analogously to a physical computer. VCIs have the advantage of not being bound to physical resources, which allows VCIs to be moved around and scaled to meet changing demands of the enterprise without affecting the use of the enterprise's applications. VCIs can be deployed on a hypervisor provisioned with a pool of computing resources (e.g., processing resources, memory resources, and the like). Multiple VCIs can be configured to be in communication with each other in a distributed computing system (e.g., a data center). Such a data center can include various resources/objects such as a server resource, a storage resource, a network resource, a virtual resource, and/or the like.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present subject matter in any way.
The term “virtual computing instance (VCI)” may cover a range of computing functionality. VCIs may include non-virtualized physical hosts, virtual machines (VMs), and/or containers. Containers can run on a host operating system without a hypervisor or separate operating system, such as a container that runs within Linux. A container can be provided by a VM that includes a container virtualization layer (e.g., Docker). A VM may refer to an isolated user space instance, which can be executed within a virtualized environment. Other technologies aside from hardware virtualization can provide isolated user space instances, also referred to as VCIs. The term “VCI” covers these examples and combinations of different types of VCIs, among others.
The VMs, in some examples, may operate with their own guest operating systems on a host using resources of the host virtualized by virtualization software (e.g., a hypervisor, VM monitor, and the like). The tenant (i.e., the owner of the VM) can choose which applications to operate on top of the guest operating system. Some containers, on the other hand, are constructs that run on top of a host operating system without the need for a hypervisor or separate guest operating system. The host operating system can use name spaces to isolate the containers from each other and therefore can provide operating-system level segregation of the different groups of applications that operate within different containers. This segregation is akin to the VM segregation that may be offered in hypervisor-virtualized environments that virtualize system hardware, and thus can be viewed as a form of virtualization that isolates different groups of applications that operate in different containers.
Multiple VCIs can be configured to be in communication with each other in a distributed computing system (e.g., a software defined data center). Software defined data centers are dynamic in nature. For example, VCIs and/or various application services, may be created, used, moved, or destroyed within the software defined data center. When VCIs are created (e.g., when a container is initialized), various processes and/or services start running and consuming data center resources. As used herein, “data center resources” are physical or virtual components that have a finite availability within a computer or software defined data center. For example, resources include processing resources, memory resources, electrical power, input/output resources, and/or the like.
An example data center resource can be a server resource, a storage resource, a network resource, or a virtual resource in the data center. For example, data center resources may include VMs, host computing devices, clusters or workload domains, port groups, resource pools, VM containers for multiple VMs (e.g., vAPP), virtual infrastructure resource management components (e.g., VCD), and/or other VM objects. In some examples, the data center resources can include a combination of software and hardware (e.g., a pool of computing resources) or include hardware configured to perform operations, and control or otherwise manipulate the infrastructure of a distributed computing system (e.g., a cloud environment, a virtualized environment, or the like).
Further, such data centers can be monitored/managed by one or more administrators or an authorized person of an organization/enterprise. For example, an administrator may assign rights to users or other administrators to control access to the data center resources (e.g., to perform one or more operations on the data center resources). In some examples, a role-based access control, which provides access based on permissions, may be used to control the access to the data center resources. For example, a user with a manager role is permitted to access certain data center resources and a user with team lead role is permitted to access different data center resources. In other examples, a scope-based access control, which provides access on resources in a specified range, may be used to control the access to the data center resources. For example, assigning scope 1 to the user may result in only accessing the resources in scope 1.
Furthermore, consider a scenario where the administrator may have to assign a user with an administrator role (e.g., having access to all data center resources) but would want to restrict a set of operations on a critical data center resource. For example, the administrator may assign a user with administrator role but restrict the user from deleting a host (i.e., the data center resource). In order to restrict the set of operations on the data center resource, multiple roles and scopes may have to be assigned to the user. Creating and assigning multiple roles may be a complex and cumbersome process. Also, maintaining a significant number of roles created or available out of box can be complex.
Examples described herein may provide a management node to control an access to perform an operation on a data center resource. The management node may assign credits to a user account and also set a credit limit corresponding to the user account. The credit limit may indicate maximum credits that can be used to perform each operation in a data center. Further, the management node may assign a credit unit to the user account. The credit unit may include a value indicating a number of times an operation can be performed on a resource type.
During operation, the management node may receive a request to perform an operation on a data center resource from a user associated with the user account. In response to receiving the request, the management node may determine whether the user is permitted to perform the requested operation on the data center resource based on available credits of the assigned credits, the credit limit, and the credit unit. Based on the determination, the management node may execute or deny execution of the requested operation on the data center resource.
Thus, examples described herein may restrict access to critical data center resources to a number of operations. Further, examples described herein may provide a fine-grained credit-based access control at an operation level on a data center resource and is dynamically configurable. With credit units-based access, the administrator can control access provision at finer operation levels on the data center resources to provide enhanced security to the data center resources.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present techniques. It will be apparent, however, to one skilled in the art that the present apparatus, devices, and systems may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
As shown in
Further, computing environment 100 may include management node 106 communicatively connected to data centers 102A to 102N via a network. Example network can be a managed Internet protocol (IP) network administered by a service provider. For example, the network may be implemented using wireless protocols and technologies, such as Wi-Fi, WiMax, and the like. In other examples, the network can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. In yet other examples, the network may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.
Example management node 106 may manage different objects/resources in data center 102A to 102N. For example, management node 106 may execute centralized management services that may be interconnected to manage the resources centrally in the virtualized cloud computing infrastructure. Example centralized management service may be a part of vCenter Server™ and vSphere® program products, which are commercially available from Vmware. In an example, a resource may be a server resource, a storage resource, a network resource, a virtual resource, or the like in data center 102A to 102N. For example, the resource may include components in data centers 102A to 102N such as host computing systems 104A to 104N, workloads WL1 to WLN (e.g., virtual machines (VMs), containers, and the like), and the like. In some examples, data center 102A to 102N may be managed by one or more administrators via management node 106.
As shown in
Further, credits-based access controller 112 may associate an attribute to the data center resource. In an example, the attribute may include a value indicating a number of credits to perform each type of operation on the data center resource. An example graphical user interface used to associate the attribute to the data center resource is depicted in
During operation, credits-based access controller 112 may receive a request to perform an operation on a data center resource from a user associated with the user account. Further, credits-based access controller 112 may determine whether the user is permitted to perform the requested operation on the data center resource based on available credits of the assigned credits, the credit limit, and the credit unit. In an example, credits-based access controller 112 may retrieve an operation value corresponding to the requested operation from an attribute associated with the data center resource. The operation value may indicate a number of credits to perform the requested operation. Further, credits-based access controller 112 may determine whether the user is permitted to perform the requested operation on the data center resource based on the operation value, the available credits, the credit limit, and the credit unit.
Furthermore, credits-based access controller 112 may execute or deny execution of the requested operation on the data center resource based on the determination. In an example, credits-based access controller 112 may deny the execution of the requested operation on the data center resource in response to a determination that the available credits are less than the operation value, the credit limit is less than the operation value, the value indicating the number of times the operation can be performed on the resource type is zero, the number of times the operation has been performed on the resource type exceeds the defined value, or any combination thereof.
In another example, credits-based access controller 112 may permit the execution of the requested operation on the data center resource in response to a determination that the available credits are equal to or greater than the operation value, the credit limit is equal to or greater than the operation value, the value indicating the number of times the operation can be performed on the resource type is greater than or equal to one, and the number of times the operation has been performed on the resource type does not exceed the defined value.
In an example, the user account may be associated with an active credit or a passive credit. For example, when the user account is associated with the active credit, credits-based access controller 112 may deduct a number of credits corresponding to the operation value from the available credits associated with the user account upon either executing the requested operation on the data center resource or denying the execution of the requested operation on the data center resource. Thus, the number of credits corresponding to the operation value can be deducted from the available credits irrespective of whether the requested operation is successful or failed. In another example, when the user account is associated with the passive credit, credits-based access controller 112 may deduct a number of credits corresponding to the operation value from the available credits associated with the user account only upon successful execution of the requested operation on the data center resource. Example graphical user interfaces depicting the user account associated with the active credit or the passive credit are described in
Further, memory 110 may include a notification unit 116 to send a notification to the user upon denying the request to perform the operation. An example notification may indicate a reason (e.g., less credits, less credit limit, less value associated with the credit unit) for denying the request. Furthermore, memory 110 may include an audit controller 118 to maintain an audit trail to record the information corresponding to actions of the user to access the data center resource, a way in which the credits associated with the user is utilized, and the like. Further, the credits-based access controller 112 may reassign the credits to the user account upon receiving a request for a credit from the user or at regular intervals of time.
In some examples, the administrator may set certain operations such as “restore software defined data center (SDDC)” as “credits exhausting operations”. In this example, when a user performs a credit exhausting operation (e.g., considering that the user has enough credit limit to execute such operation and the value associated with the credit unit is equal to or greater than one), the available credits of the user may be exhausted. Further, exhausting the available credits may prevent the user from performing such operations (e.g., restoration of the SDDC) more than once as restoring is a critical operation. Further, notification unit 116 may notify the administrator to indicate the execution of the restoration operation by the user.
In some examples, the functionalities described in
During operation, a credits-based access controller (e.g., credits-based access controller 112 of
For example, table 270 may depict that a user “admin” is provided with credits “500” and credit limit “40” as shown in 272. Thus, “admin” may perform any operation on the data center resources which costs less than or equal to “40” credits provided that the admin has sufficient custom credits (e.g., 224 as shown in
Further, a user may select one of the data center resource (e.g., ESXI-1) in first portion 280. Upon selecting the data center resource, a second portion 282 may be displayed, where the operations (e.g., delete, rotate, and the like) and corresponding values (i.e., a number of credits) may be displayed. As shown in
At 304, credits, a credit limit, and the credit unit may be assigned to a user account. The credit limit may indicate maximum credits that can be used to perform each operation in the data center. In an example, assigning the credits, the credit limit, and the credit unit to the user account may include:
For example, an administrator may assign or grant “300” credits to the user for regular operations. Further, the administrator may set a credit limit of “20” for the user. Also, an expiry time to utilize the assigned credits associated with the user account may be set. Furthermore, the administrator may assign a value corresponding to the credit unit as “2” so that the user may be able to execute an operation corresponding to the credit unit only twice. Thus, the user may not be able to execute any operation that costs more than “20” credits. Further, the user can perform all the operations within his role or scope permissions except those incur cost more than “20” credits. Also, the user may be restricted to perform the operation on a particular resource type for a limited number of times as specified in the credit unit.
At 306, a request to perform the operation on a data center resource corresponding to the resource type may be received from a user associated with the user account. At 308, a check may be made to determine whether the user is permitted to perform the requested operation on the data center resource based on available credits of the assigned credits, the credit limit, and the credit unit.
In an example, determining whether the user is permitted to perform the requested operation on the data center resource may include retrieving an operation value corresponding to the requested operation from an attribute associated with the data center resource. The operation value may indicate a number of credits to perform the requested operation. In an example, retrieving the operation value corresponding to the requested operation may include retrieving the attribute associated with the data center resource from an attribute repository and retrieving the operation value corresponding to the requested operation from the retrieved attribute. The operation value defined in the attribute may be configurable. Further, a check may be made to determine whether the user is permitted to perform the requested operation on the data center resource based on the operation value, the available credits, the credit limit, and the credit unit.
At 310, the requested operation on the data center resource may be executed or denied based on the determination. In an example, the execution of the requested operation on the data center resource may be denied in response to a determination that the available credits are less than the operation value, the credit limit is less than the operation value, the value indicating the number of times the operation can be performed on the resource type is zero, the number of times the operation has been performed on the resource type exceeds the defined value, or any combination thereof.
For example, consider the available credits are “300”, the credit limit is “20”, the operation value is “30”, and the value corresponding to the credit unit is “0”. In this example, the access to perform the requested operation is restricted as the credit limit (i.e., “20” credits) is less than the operation value (i.e., “30” credits) and also the value corresponding to the credit unit is “0”. In another example, consider the available credits are “20”, the credit limit is “40”, the operation value is “30”, and the value corresponding to the credit unit is “2”. In this example, the access to perform the requested operation is restricted as the available credits (i.e., “20” credits) is less than the retrieved value (i.e., “30” credits).
In another example, the execution of the requested operation on the data center resource may be permitted in response to a determination that the available credits are equal to or greater than the operation value, the credit limit is equal to or greater than the operation value, the value indicating the number of times the operation can be performed on the resource type is greater than or equal to one, and the number of times the operation has been performed on the resource type does not exceed the defined value.
For example, consider the available credits are “300”, the credit limit is “20”, the operation value is “15”, and the value corresponding to the credit unit is “2”. In this example, the access to perform the requested operation is permitted as the credit limit (i.e., “20” credits) is greater than the retrieved value (i.e., “15” credits), the available credits (i.e., “300” credits) is greater than the retrieved value (i.e., “15” credits), and also the value of the credit unit is greater than “0”.
In an example, the user account may be associated with an active credit or a passive credit. For example, when the user account is associated with the active credit, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account upon either executing the requested operation on the data center resource or denying the execution of the requested operation on the data center resource. In another example, when the user account is associated with the passive credit, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account upon executing the requested operation on the data center resource.
Example method 300 may include determining that the assigned credits, the credit unit, or both are utilized in accordance with an organization policy. Further, the credits, the credit unit, or both may be reassigned to the user account in response to the determination. In an example, an expiry time may be set to utilize the assigned credits and the credit unit associated with the user account. Further, an audit record of the user's transactions associated with a utilization of the assigned credits and the credit unit periodically or upon the available credits and/or the value fall below a threshold may be obtained. Thus, examples described herein may be implemented either independently of a role-based access control and a scope-based access control. Also, examples described herein may be implemented seamlessly along with the role-based access control and/or the scope-based access control to enhance user experience.
At 404, the user may sign-in to the user account. For example, the user may sign-in to the account using corresponding username and unique password. At 406, the user may request to perform an operation on a data center resource.
At 408, a check may be made to determine whether the credit limit associated with the user is less than a value associated with the operation. When the credit limit is less than the value, the request may be denied, at 410. Further, a notification may be sent to the user that the operation may not be performed as the credit limit is less corresponding to the operation, at 412. In this example, the user may request the administrator to increase the credit limit to perform the operation. Further, the administrator may analyze whether the user can perform the operation and act on the request.
When the credit limit is equal to or greater than the value, a check may be made to determine whether available credits associated with the user is less than the value associated with the operation, at 414. When the available credit is less than the value, the request may be denied, at 410. Further, a notification may be sent to the user that the operation may not be performed as the credits are less corresponding to the operation, 412. In this example, the user may request the administrator for additional credits to perform the operation. Further, the administrator may analyze whether the user can perform the operation and act on the request.
When the available credits are equal to or greater than the value, a check may be made to determine whether a number of times the operation has been performed on the resource type exceeds a defined value in the assigned credit unit, at 416. When the number of times the operation has been performed on the resource type exceeds the defined value, the request may be denied, at 410. Further, a notification may be sent to the user that the operation may not be performed as the user has exceeded the number of times the operation can be performed on the resource type, 412. In this example, the user may request the administrator for modifying the defined value in the credit unit.
When the number of times the operation has been performed on the resource type does not exceeds the defined value, the user may be permitted to perform the operation, at 418. Further, the administrator may monitor the actions of the user by obtaining an audit of the user transactions through credits history which will be useful while reassigning the credits, modifying the value in the credit unit, and the like to the user. Thus, examples described herein may provide the administrator with operational level access control on the data center resources. Further, when examples described herein is used in conjunction with a role-based access control and a scope-based access control, a need of creating a new custom roles and scopes may be eliminated.
Further, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account upon either executing the requested operation on the data center resource or denying the execution of the requested operation on the data center resource based on a type of the credits (e.g., active credits or passive credits), which is described in
It should be understood that the process depicted in
At 606, a check may be made to determine whether the operation is successfully executed. When the operation is successfully executed, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account, at 608 and the process may be terminated, at 610. When the operation is not successfully executed, the number of credits corresponding to the operation value may be deducted from the available credits associated with the user account, at 612. Further, at 614, a check may be made to determine whether the user has attempted to retry executing the operation. When the user has attempted to retry, the operation may be executed, at 604. When the user does not attempt to retry, the process may be terminated, at 610.
Thus, when the user account is associated with the active credit, the number of credits corresponding to the operation value may be deducted from the available credits associated with the user account upon either executing the requested operation on the data center resource or denying the execution of the requested operation on the data center resource.
At 656, a check may be made to determine whether the operation is successfully executed. When the operation is successfully executed, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account, at 658 and the process may be terminated, at 660. When the operation is not successfully executed, a check may be made to determine whether the user has attempted to retry executing the operation, at 662. When the user has attempted to retry, the operation may be executed, at 654. When the user does not attempt to retry, the process may be terminated, at 660.
Thus, when the user account is associated with the passive credit, a number of credits corresponding to the operation value may be deducted from the available credits associated with the user account upon executing the requested operation on the data center resource.
Computer-readable storage medium 704 may be a random-access memory (RAM) or another type of dynamic storage device that may store information and computer-readable instructions that may be executed by processor 702. For example, computer-readable storage medium 704 may be synchronous DRAM (SDRAM), double data rate (DDR), Rambus® DRAM (RDRAM), Rambus® RAM, etc., or storage memory media such as a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, and the like. In an example, computer-readable storage medium 704 may be a non-transitory computer-readable medium. In an example, computer-readable storage medium 704 may be remote but accessible to computing device 700.
Computer-readable storage medium 704 may store instructions 706-714. In an example, instructions 706-714 may be executed by processor 702 to permit performing a requested operation on a data center resource. Instructions 706 may be executed by processor 702 to receive a request to perform an operation on a data center resource from a user associated with a user account.
Instructions 708 may be executed by processor 702 to determine available credits and a credit limit per operation associated with the user account upon receiving the request. Instructions 710 may be executed by processor 702 to retrieve an operation value corresponding to the operation. In an example, the operation value may indicate a number of credits to perform the operation.
Further, upon determining that the user is permitted to perform the operation based on the available credits, the credit limit, and the operation value, instructions 712 may be executed by processor 702 to determine a remaining number of times the operation can be performed on a resource type of the data center resource based on a credit unit assigned to the user account.
Instructions 714 may be executed by processor 702 to execute the operation on the data center resource based on the determined remaining number. In an example, instructions 714 to execute the requested operation on the data center resource may include instructions to permit execution of the requested operation on the data center resource in response to a determination that the remaining number of times the operation can be performed on the resource type is greater than or equal to a threshold. In another example, computer-readable storage medium 704 may store instructions to deny executing the operation on the data center resource in response to a determination that the remaining number of times the operation can be performed on the resource type is less than a threshold.
Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other computer-readable software instructions or structured data) on a non-transitory computer-readable medium (e.g., as a hard disk; a computer memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more host computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques.
It may be noted that the above-described examples of the present solution are for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
The terms “include,”“have,” and variations thereof, as used herein, have the same meaning as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on”, as used herein, means “based at least in part on.” Thus, a feature that is described as based on some stimulus can be based on the stimulus or a combination of stimuli including the stimulus.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples can be made without departing from the spirit and scope of the present subject matter that is defined in the following claims.