Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 202241039184 filed in India entitled “METHOD OF APPLYING SECURITY POLICIES TO VIRTUAL COMPUTING INSTANCES”, on Jul. 7, 2022, by VMware, Inc., which is herein incorporated in its entirety by reference for all purposes.
Software-defined data centers (SDDCs) have enabled auto-scaling of applications based on incoming load/traffic on the applications. In such a scenario, one or more virtual computing instances, such as virtual machines (VMs), are spawned to handle the extra load on an application. When the load on the application reduces, some of these virtual computing instances are terminated.
Virtual infrastructure management (VIM) software of the SDDCs employ cloning technology to spawn virtual computing instances on demand and in situations where security services for the virtual computing instances are provided from a cloud platform, such as VMware Carbon Black®, the latest updates to security policies are communicated to running virtual computing instances through security agents installed therein. However, the latest updates cannot be applied to auto-scaled virtual computing instances until they are up and running and some may have been terminated even before the latest updates have been applied.
One or more embodiments provide a method of applying the latest security policy updates to running virtual computing instances as well as to virtual computing instances that are deployed as a result of auto-scaling. A method of applying a security policy to a virtual computing instance, according to an embodiment, includes: determining that a universally unique identifier (UUID) of the virtual computing instance does not match an identifier stored in a configuration file of the virtual computing instance; transmitting a request to register the virtual computing instance with a cloud platform for managing security policies of a virtual infrastructure that includes the virtual computing instance, the request including the UUID of the virtual computing instance and the identifier stored in the configuration file of the virtual computing instance; in response to the request, receiving an identifier of a security policy to be applied; and retrieving the security policy and applying the security policy to the virtual computing instance.
Further embodiments include a non-transitory computer-readable storage medium comprising instructions that cause a computer system to carry out the above method, as well as a computer system configured to carry out the above method.
As illustrated in
Each of the host computers includes a hypervisor 158 (more generally, “virtualization software”) and a hardware platform 159. Hardware platform 159 contains components of a conventional computer system, such as one or more central processing units, system memory in the form of dynamic and/or static random access memory, one or more network interface controllers connected to a network 120, and a host bus adapter connected to shared storage 140. In some embodiments, hardware platform 159 includes a local storage device, such as a hard disk drive or a solid state drive, and the local storage devices of the host computers are aggregated and provisioned as shared storage device 140.
In the embodiments, security service is provided to VMs 157 by a cloud-based security service 100 running in a container or a VM that has been deployed on a virtual infrastructure of a cloud computing system. Cloud-based security service 100 communicates with security agents installed in VMs 157 (e.g., security agent 161 installed in VM 160) over a public network 105, e.g., the Internet, to deliver security services to VMs 157.
Cloud-based security service 100 saves in a table 111 that is stored in a storage device 110, various information about the VMs in which its security agents are installed. Each entry in table 111 corresponds to one VM and includes a universally-unique identifier (UUID) of the VM (e.g., the ID given to the basic input/output system of the VM, referred to herein as “BIOS_ID”), a UUID of a parent VM from which the VM was cloned (e.g., the BIOS_ID of the parent VM, referred to herein as “parent_ID”), a registration ID assigned to the security agent installed in the VM during registration of the security agent with cloud-based security service 100 (referred to herein as “REG_ID”), and a policy ID of the security policy that the security agent installed in the VM was instructed to apply (referred to herein as “POL_ID”). The different security polices that are to be applied to the VMs are depicted in
The method of
After launching the root VM, VM management server 130 executes step 240 to determine if more VMs are needed to support the VDI or a running application. This determination is carried out by, for example, by an auto-scaling service running in VM management server 130. If so, VM management server 130 at step 250 clones an additional VM from the root VM, and at step 260 launches the additional VM. Upon launch of this additional VM, the security agent of this additional VM executes the method depicted in
When the root VM is launched for the second time and thereafter, the “REG_ID” field will have been populated at step 314 and step 318 is executed next. Similarly, for VMs cloned from the root VM, the “REG_ID” field will contain the registration ID of the root VM and so step 318 is executed next. At step 318, the security agent of the VM (which may be either the root VM or a cloned VM) compares the BIOS ID of the VM with the BIOS_ID stored in its configuration file and determines at step 320 if there is a match. For a root VM, the two will match. For a cloned VM launched for the first time, there will be a mismatch because the BIOS ID of the root VM is stored in the configuration file. For a cloned VM launched for the second time and thereafter, the two will match because the BIOS ID of the cloned VM will have been stored in the configuration file at step 324.
If the security agent determines there is a match at step 320, the method ends. On the other hand, if the security agent determines there is no match at step 320, the security agent executes step 322 to register with cloud-based security service 100. When the security agent of a cloned VM executes step 322, it sends a registration request along with its BIOS ID and the BIOS ID of the root VM (which was retrieved from the “BIOS_ID” field of the configuration file and used in the comparison at step 318). In response, cloud-based security service 100 executes the method depicted in
At step 414, cloud-based security service 100 generates a registration ID for the security agent that is requesting registration. Then, at step 416, cloud-based security service 100 transmits the registration ID (REG_ID) and the policy ID (POL_ID) to the security agent. The registration ID that is sent is the one generated at step 414. The policy ID that is sent to the security agent of the root VM is that of the policy selected at step 412. The policy ID that is sent to the security agent of a cloned VM is that of the policy selected for its root VM, and is obtained by performing a look-up of table 111 using parent_ID that was sent in the registration request. At step 418, cloud-based security service 100 updates table 111 to add a new entry corresponding to the security agent that is requesting registration and to populate each of the corresponding fields. It should be noted that the parent_ID field for the security agent of the root VM is null whereas the parent_ID field for each of the security agents of the cloned VMs is populated with the BIOS ID of the root VM.
The various embodiments described herein may employ various computer-implemented operations involving data stored in computer systems. For example, these operations may require physical manipulation of physical quantities—usually, though not necessarily, these quantities may take the form of electrical or magnetic signals, where they or representations of them are capable of being stored, transferred, combined, compared, or otherwise manipulated. Further, such manipulations are often referred to in terms such as producing, identifying, determining, or comparing. Any operations described herein that form part of one or more embodiments of the invention may be useful machine operations. In addition, one or more embodiments of the invention also relate to a device or an apparatus for performing these operations. The apparatus may be specially constructed for specific required purposes, or it may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The various embodiments described herein may be practiced with other computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
One or more embodiments of the present invention may be implemented as one or more computer programs or as one or more computer program modules embodied in one or more computer readable media. The term computer readable medium refers to any data storage device that can store data which can thereafter be input to a computer system. Computer readable media may be based on any existing or subsequently developed technology for embodying computer programs in a manner that enables them to be read by a computer. Examples of a computer readable medium include a hard drive, NAS, read-only memory (ROM), RAM (e.g., flash memory device), Compact Disk (e.g., CD-ROM, CD-R, or CD-RW), Digital Versatile Disk (DVD), magnetic tape, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Although one or more embodiments of the present invention have been described in some detail for clarity of understanding, it will be apparent that certain changes and modifications may be made within the scope of the claims. Accordingly, the described embodiments are to be considered as illustrative and not restrictive, and the scope of the claims is not to be limited to details given herein but may be modified within the scope and equivalents of the claims. In the claims, elements and/or steps do not imply any particular order of operation, unless explicitly stated in the claims.
Virtualization systems in accordance with the various embodiments may be implemented as hosted embodiments, non-hosted embodiments or as embodiments that tend to blur distinctions between the two, are all envisioned. Furthermore, various virtualization operations may be wholly or partially implemented in hardware. For example, a hardware implementation may employ a look-up table for modification of storage access requests to secure non-disk data.
Many variations, modifications, additions, and improvements are possible, regardless the degree of virtualization. The virtualization software can therefore include components of a host, console, or guest operating system that performs virtualization functions. Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the invention. In general, structures and functionalities presented as separate components in exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionalities presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
202241039184 | Jul 2022 | IN | national |