Management of shared authorization keys in a hybrid software deployment
In an example embodiment, a solution is provided that performs the rotation of access keys of cloud components that are shared in on-premise software components (such as in a hybrid deployment environment) such that a minimal number of keys are needed. The solution also provides for having a specified validity of the access key, so that the hybrid or on-premise components can retain access to the software components while the new access keys are being generated.
1 . A system comprising:
at least one hardware processor; and
a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:
creating a first resource in a cloud portion of a hybrid software deployment system, the hybrid software deployment system comprising the cloud portion and an on-premise portion;
creating a current version of a cloud software key for access to the first resource;
creating a current version of an on-premise software key on behalf of an on-premise component on the on-premise portion, to allow the on-premise component to access a cloud component on the cloud portion;
distributing the current version of the cloud software key and the current version of the on-premise software key to a first tenant of the hybrid software deployment system; and
periodically performing, at a time period of a fixed duration, operations comprising:
deleting an oldest version of the on-premise software key when there are more than one on-premise keys;
creating a new version of the cloud software key and a new version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting an oldest version of the cloud software key.
2 . The system of claim 1 , wherein the first resource is a database.
3 . The system of claim 1 , wherein the operations further comprise distributing the new version of the cloud software key and the new version of the on-premise software key to the first tenant.
4 . The system of claim 3 , wherein the operations further comprise:
creating a current version of a cloud software key for access to the first resource;
creating a second current version of the on-premise software key for a second on-premise portion to access the cloud portion;
distributing the current version of the cloud software key and the second current version of the on-premise software key to a second tenant of the hybrid software deployment system; and
periodically performing, at the time period of a fixed duration, operations comprising:
deleting the oldest second version of the on-premise software key when there are more than one on-premise key;
creating a new version of the cloud software key and a new second version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting the oldest version of the cloud software key.
5 . The system of claim 1 , wherein the operations are performed in response to actions comprising:
receiving a call to initiate a key rotation process via a refresh hook Application Programming Interface (API) from an agent on the on-premise portion; and
in response to the receiving of the call, checking authorization access of the agent.
6 . The system of claim 1 , wherein the first resource has a maximum limit for a number of keys in operation at any one time.
7 . The system of claim 1 , wherein the fixed duration is selected based on an update schedule for the first resource.
8 . A method comprising:
creating a first resource in a cloud portion of a hybrid software deployment system comprising the cloud portion and an on-premise portion;
creating a current version of a cloud software key for access to the first resource;
creating a current version of an on-premise software key for the on-premise portion to access the cloud portion;
distributing the current version of the cloud software key and the current version of the on-premise software key to a first tenant of the hybrid software deployment system; and
periodically performing, at a time period of a fixed duration, operations comprising:
deleting an oldest version of the on-premise software key when there are more than one on-premise key;
creating a new version of the cloud software key and a new version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting an oldest version of the cloud software key.
9 . The method of claim 8 , wherein the first resource is a database.
10 . The method of claim 8 , further comprising distributing the new version of the cloud software key and the new version of the on-premise software key to the first tenant.
11 . The method of claim 10 , further comprising:
deleting the oldest second version of the on-premise software key when there are more than one on-premise key;
creating a new version of the cloud software key and a new second version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting the oldest version of the cloud software key.
12 . The method of claim 11 , wherein the method is performed in response to actions, comprising:
receiving a call to initiate a key rotation process via a refresh hook Application Programming Interface (API) from an agent on the on-premise portion; and
in response to the receiving of the call, checking authorization access of the agent.
13 . The method of claim 8 , wherein the first resource has a maximum limit for a number of keys in operation at any one time.
14 . The method of claim 8 , wherein the fixed duration is selected based on an update schedule for the first resource.
15 . A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
creating a first resource in a cloud portion of a hybrid software deployment system comprising the cloud portion and an on-premise portion;
creating a current version of a cloud software key for access to the first resource;
creating a current version of an on-premise software key for the on-premise portion to access the cloud portion;
distributing the current version of the cloud software key and the current version of the on-premise software key to a first tenant of the hybrid software deployment system; and
periodically performing, at a time period of a fixed duration, operations comprising:
deleting an oldest version of the on-premise software key when there are more than one on-premise key;
creating a new version of the cloud software key and a new version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting an oldest version of the cloud software key.
16 . The non-transitory machine-readable medium of claim 15 , wherein the first resource is a database.
17 . The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise distributing the new version of the cloud software key and the new version of the on-premise software key to the first tenant.
18 . The non-transitory machine-readable medium of claim 17 , wherein the operations further comprise:
creating a current version of a cloud software key for access to the first resource;
creating a second current version of the on-premise software key for a second on-premise portion to access the cloud portion;
distributing the current version of the cloud software key and the second current version of the on-premise software key to a second tenant of the hybrid software deployment system; and
periodically performing, at the time period of a fixed duration, operations comprising:
deleting an oldest second version of the on-premise software key when there are more than one on-premise key;
creating a new version of the cloud software key and a new second version of the on-premise software key;
updating the first resource in the cloud portion; and
deleting an oldest version of the cloud software key.
19 . The non-transitory machine-readable medium of claim 15 , wherein the operations are performed in response to actions, comprising:
receiving a call to initiate a key rotation process via a refresh hook Application Programming Interface (API) from an agent on the on-premise portion; and
in response to the receiving of the call, checking authorization access of the agent.
20 . The non-transitory machine-readable medium of claim 15 , wherein the first resource has a maximum limit for a number of keys in operation at any one time.