IP Library Granted Patent US 11,036,876
Granted Patent B2
US 11,036,876 · App. 16/105,898 · Granted Jun 15, 2021

Attribute-based encryption for microservices

Inventors: Maik Guenter Seewald (Nuremberg, DE); Robert Edgar Barton (British Columbia, CA); Jerome Henry (Pittsboro, NY)
Assignee: CISCO TECHNOLOGY, INC.
G06F21/6218G06F9/445G06F21/62H04L9/0861H04L63/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,036,876
App. No.
16/105,898
Granted
Jun 15, 2021
Kind
B2
Abstract

The disclosed technology provides solutions that enable scalable and secure data retrieval between microservices by using microservice attributes to encrypt container based data stores. A process of the technology can include steps for: instantiating a first microservice and a second microservice in a cloud environment, wherein the first microservice is associated with a first attribute label and the second microservice is associated with a second attribute label, generating a first key based on the first attribute label and a second key based on the second attribute label, associating a first data store with the first microservice, wherein the first data store is encrypted using the first key, and associating a second data store with the second microservice, wherein the second data store is encrypted using the second key. Systems and machine readable media are also provided.

Claims (51)

1. A system for authenticating distributed microservices, the system comprising:

one or more processors;

a network interface coupled to the one or more processors; and

a computer-readable memory coupled to the one or more processors, the memory comprising instructions configured to cause the one or more processors to perform operations comprising:

instantiating a first microservice and a second microservice in a shared namespace of a cloud environment, wherein the first microservice is associated with a first attribute label and the second microservice is associated with a second attribute label that identifies a position of the second microservice in a service chain that comprises the first microservice;

generating a first key based on the first attribute label and a second key based on the second attribute label;

associating a first data store with the first microservice, wherein the first data store is encrypted using the first key and the first microservice is configured to access first data stored in the first data store through the first key based on the first attribute label;

associating a second data store with the second microservice, wherein the second data store is encrypted using the second key and the second microservice is configured to access second data stored in the second data store through the second key based on the second attribute label, wherein either or both the first data store and the second data store are associated with a plurality of different microservices based on one or more attributes associated with each of the plurality of different microservices; and

receiving an application request from a client, wherein the application request is filled based on both the first data and the second data and the first microservice and the second microservice fill the application request for the first data and the second data while refraining from providing the client access to the first data and the second data.

2. The system of claim 1 , wherein the one or more processors are further configured to perform operations comprising:

identifying one or more client attributes associated with the client; and

generating a third key based on the one or more client attributes, wherein the third key permits access by the client to at least a portion of the first data store, and wherein the third key does not permit the client to access the second data store.

3. The system of claim 2 , wherein the one or more processors are further configured to perform operations comprising:

generating a derivative application request by the first microservice in response to the application request, wherein the derivative application request comprises a fourth key based on the first attribute label associated with the first microservice; and

accessing, by the first microservice, the second data store associated with the second microservice using the fourth key.

4. The system of claim 3 , wherein the one or more processors are further configured to perform operations comprising:

providing an application response to the client, wherein the application response comprises data from the first data store that is accessed by the client using the third key, and data from the second data store that is accessed by the first microservice using the fourth key.

5. The system of claim 1 , wherein the first attribute label identifies a function type associated with the first microservice.

6. The system of claim 1 , wherein the second attribute label identifies a priority of the second microservice in the service chain that comprises the first microservice.

7. A computer-implemented method comprising:

instantiating a first microservice and a second microservice in a shared namespace of a cloud environment, wherein the first microservice is associated with a first attribute label and the second microservice is associated with a second attribute label;

generating a first key based on the first attribute label and a second key based on the second attribute label that identifies a position of the second microservice in a service chain that comprises the first microservice;

associating a first data store with the first microservice, wherein the first data store is encrypted using the first key and the first microservice is configured to access first data stored in the first data store through the first key based on the first attribute label;

associating a second data store with the second microservice, wherein the second data store is encrypted using the second key and the second microservice is configured to access second data stored in the second data store through the second key based on the second attribute label, wherein either or both the first data store and the second data store are associated with a plurality of different microservices based on one or more attributes associated with each of the plurality of different microservices; and

receiving an application request from a client, wherein the application request is filled based on both the first data and the second data and the first microservice and the second microservice fill the application request for the first data and the second data while refraining from providing the client access to the first data and the second data.

8. The computer-implemented method of claim 7 , further comprising:

identifying one or more client attributes associated with the client; and

generating a third key based on the one or more client attributes, wherein the third key permits access by the client to at least a portion of the first data store, and wherein the third key does not permit the client to access the second data store.

9. The computer-implemented method of claim 8 , further comprising:

generating a derivative application request by the first microservice in response to the application request, wherein the derivative application request comprises a fourth key based on the first attribute label associated with the first microservice; and

accessing, by the first microservice, the second data store associated with the second microservice using the fourth key.

10. The computer-implemented method of claim 9 , further comprising:

providing an application response to the client, wherein the application response comprises data from the first data store that is accessed by the client using the third key, and data from the second data store that is accessed by the first microservice using the fourth key.

11. The computer-implemented method of claim 7 , wherein the first attribute label identifies a function type associated with the first microservice.

12. The computer-implemented method of claim 7 , wherein the second attribute label identifies a priority of the second microservice in the service chain that comprises the first microservice.

13. A non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the one or more processors to perform operations comprising:

instantiating a first microservice and a second microservice in a shared namespace of a cloud environment, wherein the first microservice is associated with a first attribute label and the second microservice is associated with a second attribute label that identifies a position of the second microservice in a service chain that comprises the first microservice;

generating a first key based on the first attribute label and a second key based on the second attribute label;

associating a first data store with the first microservice, wherein the first data store is encrypted using the first key and the first microservice is configured to access first data stored in the first data store through the first key based on the first attribute label;

associating a second data store with the second microservice, wherein the second data store is encrypted using the second key and the second microservice is configured to access second data stored in the second data store through the second key based on the second attribute label, wherein either or both the first data store and the second data store are associated with a plurality of different microservices based on one or more attributes associated with each of the plurality of different microservices; and

receiving an application request from a client, wherein the application request is filled based on both the first data and the second data and the first microservice and the second microservice fill the application request for the first data and the second data while refraining from providing the client access to the first data and the second data.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions are further configured to cause the one or more processors to execute operations comprising:

identifying one or more client attributes associated with the client; and

generating a third key based on the one or more client attributes, wherein the third key matches the first key, thereby permitting access by the client to the first data store, and wherein the third key does not match the second key, thereby preventing access by the client to the second data store.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions are further configured to cause the one or more processors to execute operations comprising:

generating a derivative application request by the first microservice in response to the application request, wherein the derivative application request comprises a fourth key based on the first attribute label associated with the first microservice; and

accessing, by the first microservice, the second data store associated with the second microservice using the fourth key.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions are further configured to cause the one or more processors to execute operations comprising:

providing an application response to the client, wherein the application response comprises data from the first data store that is accessed by the client using the third key, and data from the second data store that is accessed by the first microservice using the fourth key.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the first attribute label identifies a function type associated with the first microservice.

18. The non-transitory computer-readable storage medium of claim 13 , wherein the second attribute label identifies a priority of the second microservice in the service chain that comprises the first microservice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2018
From: SEEWALD, MAIK GUENTER; BARTON, ROBERT EDGAR; HENRY, JEROME
To: CISCO TECHNOLOGY, INC.
Reel/Frame 046654/0964 →
Continuity (1)
Related Publication 20200057863A1 · Feb 20, 2020