The present disclosure relates generally to keeping encryption keys stored as plain text from being saved to persistent storage of accessible server cluster systems.
Server clusters often host a large number of diverse users making network security important. Server clusters that incorporate Kubernetes clusters and container constructs can include an even larger number of users. Oftentimes individual hosts and/or virtual machines of the server cluster require elevated access to a management server in order to perform tasks needed to ensure smooth operation of the server cluster. For this reason, security of authentication data such as the encryption keys used by the hosts to access the management server is important. For at least this reason ways of improving security of the encryption keys is desirable.
This disclosure describes mechanisms for protecting authentication data used by a server cluster.
A computer implemented method is described and includes the following: instantiating a virtual machine on a server cluster, wherein the virtual machine has access to persistent storage that includes an encrypted region and wherein the virtual machine lacks access to an encryption key configured to provide access to data stored within the encrypted region; receiving a communication at the server cluster from a management server associated with the server cluster that includes the encryption key configured to provide access to the encrypted region of the persistent storage; storing the encryption key received from the management server in non-persistent storage accessible by the virtual machine; decrypting the data stored within the encrypted region using the encryption key; and running services that depend upon the data stored within the encrypted region to operate after decrypting the stored data.
A non-transitory computer-readable storage medium that stores instructions configured to be executed by one or more processors of a computing device is disclosed. The non-transitory computer-readable storage medium when executed by the one or more processors cause the computing device to carry out steps that include: instantiating a virtual machine on the server cluster, wherein the virtual machine has access to persistent storage that includes an encrypted region and wherein the virtual machine lacks access to an encryption key configured to provide access to authentication data stored within the encrypted region; receiving a communication from a management server associated with the server cluster that includes the encryption key configured to provide access to the encrypted region of the persistent storage; and running services that depend upon the authentication data stored within the encrypted region to operate after receiving the communication from the management server.
A server cluster is disclosed and includes one or more processors; persistent storage, comprising an encrypted region; non-persistent storage; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: instantiating a virtual machine on the server cluster, wherein the virtual machine has access to the persistent storage and lacks access to an encryption key configured to provide access to data stored within the encrypted region; receiving a communication at the server cluster from a management server associated with the server cluster that includes the encryption key configured to provide access to the encrypted region of the persistent storage; storing the encryption key received from the management server in the non-persistent storage, which is accessible by the virtual machine; decrypting the data stored within the encrypted region; and running services that utilize the data stored within the encrypted region to operate after decrypting the stored data.
Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the described embodiments.
The disclosure will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements.
Certain details are set forth below to provide a sufficient understanding of various embodiments of the invention. However, it will be clear to one skilled in the art that embodiments of the invention may be practiced without one or more of these particular details. Moreover, the particular embodiments of the present invention described herein are provided by way of example and should not be used to limit the scope of the invention to these particular embodiments. In other instances, hardware components, network architectures, and/or software operations have not been shown in detail in order to avoid unnecessarily obscuring the invention.
Server clusters running under a management server such as VMWare vCenter® often need privileged access to the management server to perform tasks such as creating virtual machines (VMs), disks and other resources. Unfortunately, storing authentication data such as the passwords and/or encryption keys needed to access the management server and other potentially sensitive systems of the server cluster in an unencrypted region of the persistent storage can result in a user with access to the persistent storage gaining unauthorized access to the passwords and/or encryption keys, thereby allowing the user to gain unauthorized and elevated privilege on the server cluster.
One solution to this issue is to configure rules that prevent VMs and other virtual constructs of a server cluster from writing encryption keys and passwords to persistent storage in an unencrypted state. In order to successfully implement this type of rule, the VMs of the server cluster should still be able to gain access to at least one encryption key in order to access authentication data providing access to the various resources and services they need to conduct normal operations. The encryption key granting access to the encrypted areas on the server cluster can be provided by the management server. The management server is configured to monitor the server clusters and when it detects startup of a master virtual machine (VM) it sends the encryption key to the master VM where it gets stored in non-persistent storage, thereby allowing the master VM to gain access to encrypted authentication data stored on persistent storage. Master VM will also be configured to delay operations requiring access to the encrypted authentication data until it receives the encryption key from the management server, thereby avoiding unnecessary errors resulting from a lack of encryption keys or passwords.
These and other embodiments are discussed below with reference to
Each of hosts 102, 112, 122 and 132 are capable of running virtualization software 108, 118, 128 and 138, respectively. The virtualization software can run within a virtual machine (VM) and includes management tools for starting, stopping and managing various virtual machines running on the host. For example, host 102 can be configured to stop or suspend operations of virtual machines 104 or 106 utilizing virtualization software 108. Virtualization software 108, commonly referred to as a hypervisor, can also be configured to start new virtual machines or change the amount of processing or memory resources from host hardware 110 that are assigned to one or more VMs running on host 102. Host hardware 110 includes one or more processors, memory, storage resources, I/O ports and the like that are configured to support operation of VMs running on host 102. In some embodiments, a greater amount of processing, memory or storage resources of host hardware 110 is allocated to operation of VM 104 than to VM 106. This may be desirable when, e.g., VM 104 is running a larger number of services or running on a more resource intensive operating system than VM 106. Clients 140 and 150 are positioned outside server cluster 100 and can request access to services running on server cluster 100 via network 160. Responding to the request for access and interacting with clients 140 and 150 can involve interaction with a single service or in other cases may involve multiple smaller services cooperatively interacting to provide information requested by clients 140 and/or 150.
Hosts 102, 112, 122 and 132, which make up server cluster 100, can also include or have access to a storage area network (SAN) that can be shared by multiple hosts. The SAN is configured to provide storage resources as known in the art. In some embodiments, the SAN can be used to store log data generated during operation of server cluster 100. While description is made herein with respect to the operation of the hosts 110-140, it will be appreciated that those of hosts 110-140 provide analogous functionality, respectively.
Host 208 can run different types of virtual constructs that include VMs 214 and pods 216. Pods 216 can run natively on virtualization software associated with hosts 208 and 210 of cluster 202. Multiple containers can be instantiated and run within each of pods 216. Other virtual construct options include running a Kubernetes cluster taking the form of a guest cluster 218 within one of VMs 214. Guest clusters include a master VM 222, a standard Kubernetes® control plane and associated nodes, as well as components for interfacing the underlying supervisor cluster. The guest cluster executes within compute objects managed by the supervisor cluster (e.g., native VMs or both native VMs and pod VMs) and utilizes networking and storage exposed by the supervisor cluster. In this manner, a guest cluster is a virtual extension of an underlying management cluster (i.e., the supervisor cluster). Guest cluster 218 allows a service administrator to instantiate a desired number of containers 220 to support the service. In some embodiments, each of VMs 214, pods 216 and guest clusters 218 can be configured with different security rules that allow users different levels of access to content hosted on the same host and/or server. To support this type of functionality users are often required to provide credentials when initially accessing a different service. In some embodiments, a service running on one VM or container may be able to auto-scale across different hosts or clusters to give a user access to another VM or container running the same service without requiring the user to provide a new set of login credentials.
Prior to shutdown, master VM 212 can optionally send a communication 312 to management server 206 informing management server 206 of an imminent shutdown. This communication 312 can also be part of a standard synchronization transmission carried out between the host upon which master VM 212 runs and management server 206. In some embodiments, communication 312 can include an estimated time of its next scheduled instantiation. Communication 312 can also include a copy of the encryption key needed to access encrypted region 310 of persistent storage 308 for safe keeping. Prior to shutdown master VM 212 can also save any updates to encryption keys 304 and passwords 306 within encrypted region 310 of persistent storage 308, which may contain older versions of the encryption keys and/or passwords. In some embodiments, transmission of the encryption key associated with encryption region 310 to management server 206 can be unnecessary where management server 206 is responsible for issuing and updating the encryption keys for encrypted region 310 of persistent storage 308. In some embodiments, each master VM running in a cluster can use the same encryption key on account of persistent storage 308 being shared across the server cluster.
It should be noted that while encryption key is depicted as being transmitted directly to master VM 212, encryption key 316 can be initially received by the virtualization software responsible for managing VMs on host 208, sometimes referred to as a hypervisor, which can then be responsible for delivering encryption key 316 to master VM 212. In some embodiments, the transmission 314 can include instructions for the virtualization software regarding timing of when encryption key 316 should be delivered to master VM 212. For example, delivery of encryption key 316 can be delayed until master VM 212 is ready to initiate guest operations.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the described embodiments. Thus, the foregoing descriptions of specific embodiments are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the described embodiments to the precise forms disclosed. It will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings.
Number | Name | Date | Kind |
---|---|---|---|
8060703 | Desai | Nov 2011 | B1 |
9292376 | Ren | Mar 2016 | B2 |
9584517 | Roth | Feb 2017 | B1 |
9864874 | Shanbhag | Jan 2018 | B1 |
9954680 | Machani | Apr 2018 | B1 |
10223538 | Cignetti | Mar 2019 | B1 |
10348693 | Auradkar | Jul 2019 | B2 |
10402578 | Roth | Sep 2019 | B2 |
10491568 | Roth | Nov 2019 | B1 |
10521360 | Gibson | Dec 2019 | B1 |
10521566 | Choi | Dec 2019 | B2 |
10684888 | Sethuramalingam | Jun 2020 | B1 |
10691619 | Gibson | Jun 2020 | B1 |
10841089 | Neerumalla | Nov 2020 | B2 |
11057496 | Jambure | Jul 2021 | B2 |
11340797 | Murray | May 2022 | B2 |
11343247 | Ozarkar | May 2022 | B1 |
11344504 | Frederick | May 2022 | B1 |
11347868 | Araya | May 2022 | B2 |
20050081066 | Lahdensivu | Apr 2005 | A1 |
20050278525 | Douceur | Dec 2005 | A1 |
20070113078 | Witt | May 2007 | A1 |
20070180449 | Croft | Aug 2007 | A1 |
20070192329 | Croft | Aug 2007 | A1 |
20080256645 | Choi | Oct 2008 | A1 |
20080320316 | Waldspurger | Dec 2008 | A1 |
20090282266 | Fries | Nov 2009 | A1 |
20100086134 | Ureche | Apr 2010 | A1 |
20110107331 | Evans | May 2011 | A1 |
20110154023 | Smith | Jun 2011 | A1 |
20110202765 | McGrane | Aug 2011 | A1 |
20110276806 | Casper | Nov 2011 | A1 |
20120066460 | Bihani | Mar 2012 | A1 |
20120173882 | Horn | Jul 2012 | A1 |
20130145477 | Matsushima | Jun 2013 | A1 |
20140059379 | Ren | Feb 2014 | A1 |
20140108786 | Kreft | Apr 2014 | A1 |
20140283010 | Rutkowski | Sep 2014 | A1 |
20140331060 | Hayton | Nov 2014 | A1 |
20140344420 | Rjeili | Nov 2014 | A1 |
20150128233 | Nechytaylo | May 2015 | A1 |
20150150125 | Dulkin | May 2015 | A1 |
20160127336 | Cignetti | May 2016 | A1 |
20160277368 | Narayanaswamy | Sep 2016 | A1 |
20160306815 | Hertz | Oct 2016 | A1 |
20160344582 | Shivanna | Nov 2016 | A1 |
20170061128 | Novak | Mar 2017 | A1 |
20170061138 | Lambert | Mar 2017 | A1 |
20170169233 | Hsu | Jun 2017 | A1 |
20180069844 | Cignetti | Mar 2018 | A1 |
20180150646 | Roth | May 2018 | A1 |
20180167204 | Wall | Jun 2018 | A1 |
20180255090 | Kozloski | Sep 2018 | A1 |
20180337991 | Kumar | Nov 2018 | A1 |
20190044708 | Dewan | Feb 2019 | A1 |
20190068561 | Caragea | Feb 2019 | A1 |
20190102568 | Hausauer | Apr 2019 | A1 |
20190171379 | Van Riel | Jun 2019 | A1 |
20190196731 | Sapuntzakis | Jun 2019 | A1 |
20190229908 | Peddada | Jul 2019 | A1 |
20190318102 | Araya | Oct 2019 | A1 |
20190340136 | Irwin | Nov 2019 | A1 |
20190349346 | Curtis | Nov 2019 | A1 |
20190349347 | Curtis | Nov 2019 | A1 |
20200034245 | Kohler | Jan 2020 | A1 |
20200073826 | Tsirkin | Mar 2020 | A1 |
20200073829 | Tsirkin | Mar 2020 | A1 |
20200133791 | Liu | Apr 2020 | A1 |
20200241906 | Tsirkin | Jul 2020 | A1 |
20200310845 | Liguori | Oct 2020 | A1 |
20200310850 | Liguori | Oct 2020 | A1 |
20210034791 | Singh | Feb 2021 | A1 |
20210049260 | Misaizu | Feb 2021 | A1 |
20220006620 | Bursell | Jan 2022 | A1 |
20220006787 | Bursell | Jan 2022 | A1 |
Number | Date | Country |
---|---|---|
3447667 | Oct 2020 | EP |
WO-2005022821 | Mar 2005 | WO |
WO-2020198539 | Oct 2020 | WO |
Number | Date | Country | |
---|---|---|---|
20220006792 A1 | Jan 2022 | US |