IP Library Granted Patent US 11,803,650
Granted Patent B1
US 11,803,650 · App. 16/042,948 · Granted Oct 31, 2023

Column access control

Inventors: Turkay Mert Hocanin (White Plains, NY); Anthony A. Virtuoso (Hawthorne, NJ)
Assignee: Amazon Technologies, Inc.
G06F21/62G06F16/13G06F16/221G06F16/2282G06F16/2455G06F21/602
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,803,650
App. No.
16/042,948
Granted
Oct 31, 2023
Kind
B1
Abstract

A database management system receives a request to process a database query on behalf of a security principal. The database management system determines that processing the database query requires access to an encrypted portion of a file containing data subject to access conditions. The database management system determines that the security principle is authorized to use a key that corresponds to the encrypted portion of the file. The database management system then completes processing of the query by using the key to access the encrypted portion of the file.

Claims (42)

1 . A system, comprising:

at least one processor; and

at least one memory comprising instructions that, in response to being executed by the at least one processor, cause the system at least to:

determine that execution of a database query on behalf of a security principal requires access to an encrypted portion of a plurality of encrypted portions of a columnar data file comprising data for a first column of a table, the encrypted portion encrypted with a first key and comprising data for a plurality of rows of the first column, the plurality of encrypted portions comprising at least one additional encrypted portion encrypted with an additional key and comprising rows of an additional plurality of rows of the first column, wherein the columnar data file includes an unencrypted portion comprising information indicative of data contained in the encrypted portion, wherein the information comprises one of at least an identifier or link to an encryption key used to decrypt a respective encrypted portion of the plurality of encrypted portions;

determine, based at least in part on the information, that the first key is associated with the encrypted portion of the file;

determine that the first key is one of a set of cryptographic keys the security principal is authorized to use; and

process the database query based at least in part on accessing the encrypted portion of the file using the first key.

2 . The system of claim 1 , the at least one memory comprising further instructions that, in response to being executed by the at least one processor, cause the system at least to:

store a mapping between an identifier of the security principal and an identifier of the key; and

determine that the security principal is authorized to access the encrypted portion of the file based at least in part on the mapping.

3 . The system of claim 1 , the at least one memory comprising further instructions that, in response to being executed by the at least one processor, cause the system at least to:

generate a query plan comprising one or more operations to decrypt the encrypted portion of the file, the query plan generated based, at least in part, on a cost of decrypting the encrypted portion.

4 . The system of claim 1 , wherein determining that execution of the database query on behalf of the security principle is based, at least in part, on metadata indicative of which portions of the file are encrypted.

5 . A method, comprising:

determining that processing a database query on behalf of a security principal requires access to an encrypted portion of a columnar data file comprising data of a column of a plurality of columns of a database table, wherein the columnar data file comprises the encrypted portion and an additional encrypted portion, the encrypted portion encrypted with a key and comprising data of a plurality of rows of the column of the plurality of columns of the database table, the additional encrypted portion encrypted with an additional key and comprising data of an additional plurality of rows of the column, wherein the columnar data file comprises an unencrypted portion comprising data indicative of the encrypted portion;

identifying the key used to encrypt the encrypted portion of the file, based at least in part on the data indicative of the encrypted portion;

determining that a key corresponding to the encrypted portion of the file is one of a set of one or more keys the security principle is authorized to use; and

processing the database query based at least in part on accessing the encrypted portion of the file using the key.

6 . The method of claim 5 , further comprising storing information indicative of a mapping between the security principal and a plurality of keys.

7 . The method of claim 6 , wherein the mapping is based at least in part on portions of the database table the security principal is authorized to access.

8 . The method of claim 6 , further comprising determining that the encrypted portion of the file is decryptable using the key, wherein the key is one of the plurality of keys mapped to the security principal.

9 . The method of claim 5 , further comprising generating a query plan based, at least in part, on a cost of performing operations to decrypt the encrypted portion of the file.

10 . The method of claim 5 , wherein an unencrypted portion of the file comprises information indicative of data contained in the encrypted portion.

11 . The method of claim 5 , further comprising storing metadata indicative of columns of a database table that comprise encrypted data.

12 . The method of claim 5 , further comprising:

determining that execution of the database query on behalf of the security principle is based, at least in part, on metadata indicative of which portions of the file are encrypted.

13 . The method of claim 5 , wherein the unencrypted portion includes table and column-level metadata.

14 . A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:

determine that processing a database query on behalf of a security principal requires access to an encrypted portion of a columnar data file comprising data of a column of a plurality of columns of a database table, wherein the columnar data file comprises the encrypted portion and an additional encrypted portion, wherein the encrypted portion of the columnar data file comprises data corresponding to a first subset of the column of a table, and the additional encrypted portion comprises data corresponding to an additional subset of the column of the table, wherein the columnar data file includes an unencrypted portion indicative of data in the encrypted portion;

identify, based at least in part on the unencrypted portion, a cryptographic key used to encrypt the encrypted portion of the file;

determine that the security principal is authorized to access the encrypted portion, the determination based, at least in part, on a determination that the cryptographic key is one of a set of one or more keys the security principle is authorized to use; and

process the database query based at least in part on accessing the encrypted portion of the file using the cryptographic key.

15 . The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

store information mapping between the security principal and a set of cryptographic keys.

16 . The non-transitory computer-readable storage medium of claim 15 , wherein the security principal is mapped to portions of a database table the security principal is authorized to access.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

determine that the encrypted portion of the file is decryptable using one of the set of cryptographic keys.

18 . The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

generate a query plan comprising one or more operations to decrypt the encrypted portion of the file.

19 . The non-transitory computer-readable storage medium of claim 14 , wherein an unencrypted portion of the file comprises information indicative of data contained in the encrypted portion.

20 . The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

store metadata indicative of columns of a database table that comprise encrypted data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: HOCANIN, TURKAY MERT; VIRTUOSO, ANTHONY A.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 046433/0767 →
Cited By (4)
US 12,411,974 US 12,608,489 US 12,682,090 US 12,682,103