IP Library › Granted Patent US 12,038,878
Granted Patent B2
US 12,038,878 · App. 15/917,165 · Granted Jul 16, 2024

Methods and apparatus for controlling snapshot exports

Inventors: Arun Sundaram (Seattle, WA); Yun Lin (Bellevue, WA); David Carl Salyers (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F16/178G06F3/0604G06F3/0622G06F3/0637G06F3/065G06F3/067G06F16/128G06F16/27G06F21/6218G06F21/78H04L9/40H04L67/1097
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 12,038,878
App. No.
15/917,165
Filed
Mar 9, 2018
Granted
Jul 16, 2024
Kind
B2
Art Unit
2433
USPC
707/639
Abstract

Methods, apparatus, and computer-accessible storage media for controlling export of snapshots to external networks in service provider environments. Methods are described that may be used to prevent customers of a service provider from downloading snapshots of volumes, such as boot images created by the service provider or provided by third parties, to which the customer does not have the appropriate rights. A request may be received from a user to access one or more snapshots, for example a request to export the snapshot or a request for a listing of snapshots. For each snapshot, the service provider may determine if the user has rights to the snapshot, for example by checking a manifest for the snapshot to see if entries in the snapshot manifest belong to an account other than the customer's. If the user has rights to the snapshot, the request is granted; otherwise, the request is not granted.

Claims (70)

1. A system, comprising:

at least one processor; and

a memory comprising program instructions, wherein the program instructions are executed by at least one processor to implement a snapshot control service of a provider network of a service provider that provides services to distinct clients associated with respective client networks, the snapshot control service configured to:

receive, via a service of the provider network, a request on behalf of a client of the provider network, the request directed to one or more previously-stored snapshots, of one or more data volumes, stored at a data store of the provider network prior to receipt of the request;

determine, based on creator account information for one or more blocks of at least a portion of the previously-stored one or more snapshots, whether the client has appropriate rights to download the previously-stored one or more snapshots from the data store; and

send a response to the request, the response comprising:

a list that includes those previously-stored snapshots for which the client has appropriate rights to download from the data store, wherein previously-stored snapshots for which the client does not have appropriate rights to download from the data store are excluded from the list, or

a list that includes both those previously-stored snapshots for which the client has appropriate rights to download from the data store and previously-stored snapshots for which the client does not have appropriate rights to download from the data store, wherein the response indicates download ineligibility for the previously-stored snapshots for which the client does not have appropriate rights to download from the data store; or

respond to the request with an indication, via programmatic or console-based interface, that the client does not have appropriate rights to download the previously-stored one or more snapshots from the data store.

2. The system of claim 1 , wherein to determine whether the client has appropriate rights to download the previously-stored one or more snapshots, said snapshot control service is further configured to, for each of the previously-stored one or more snapshots:

examine a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file maps data blocks of a client data volume to locations of data chunks stored in the snapshot, and wherein said examine compares account information for the client with information from the snapshot manifest file.

3. The system of claim 2 , wherein each snapshot manifest file includes creator account information for data blocks in the respective snapshot, and wherein said examine compares account information for the client with the creator account information for the data blocks in the respective snapshot.

4. The system of claim 2 , wherein, to determine whether the client has appropriate rights to download the previously-stored one or more snapshots, the snapshot control service is further configured to, for each of the previously-stored one or more snapshots, determine, via said examine, whether the snapshot includes at least one data block created by a different account than the client account, wherein the client does not have rights to download data created by the different account.

5. The system of claim 2 , wherein, to determine, from the account information associated with creation of the snapshot, whether the client has appropriate rights to download the previously-stored one or more snapshots, the snapshot control service is further configured to:

check a cache that includes indications of snapshots and indications of the client's rights regarding download of the snapshots indicated in the cache to determine whether the snapshot is listed in the cache; and

for a snapshot that is listed in the cache, determine the client's rights regarding download of the snapshot from the cache.

6. The system of claim 5 , wherein the snapshot control service is further configured to, for a snapshot is not listed in the cache:

examine a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file includes creator account information for data in the respective snapshot, and wherein said examine compares account information for the client with the creator account information for the data blocks in the respective snapshot; and

determine, via said examine, whether the snapshot includes at least one data block created by a different account than the client account, wherein the client does not have rights to download data created by the different account.

7. A method, comprising:

performing, by one or more computers:

receiving, via a snapshot control service of a provider network of a service provider that provides services to distinct clients associated with respective client networks, a request on behalf of a client of the provider network, the request directed to one or more previously-stored snapshots, of one or more data volumes, stored at a data store of the provider network prior to receipt of the request;

determining, by the snapshot control service based on creator account information for one or more blocks of at least a portion of the previously-stored one or more snapshots, whether the client has appropriate rights to download the previously-stored one or more snapshots from the data store; and

responding, via programmatic or console-based interface, to the request with an indication that the client does not have appropriate rights to download the previously-stored one or more snapshots from the data store, or

returning a list that includes those previously-stored snapshots for which the client has appropriate rights to download from the data store, wherein previously-stored snapshots for which the client does not have appropriate rights to download from the data store are excluded from the list, or

returning a list that includes both those previously-stored snapshots for which the client has appropriate rights to download from the data store and previously-stored snapshots for which the client does not have appropriate rights to download from the data store, wherein the list indicates download ineligibility for the previously-stored snapshots for which the client does not have appropriate rights to download from the data store.

8. The method of claim 7 , wherein said determining whether the client has appropriate rights comprises, for each of the previously-stored one or more snapshots:

examining a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file maps data blocks of a client data volume to locations of data chunks stored in the snapshot, and wherein said examining the snapshot manifest file comprises comparing account information for the client with information from the snapshot manifest file.

9. The method of claim 8 ,

wherein each snapshot manifest file includes creator account information for data blocks in the respective snapshot, and

wherein said examining includes comparing account information for the client with the creator account information for the data blocks in the respective snapshot.

10. The method of claim 8 ,

wherein said determining whether the client has appropriate rights to download the snapshot comprises, the snapshot control service determining, for each of the previously-stored one or more snapshots and via said examining, whether the snapshot includes at least one data block created by a different account than the client account, and

wherein the client does not have rights to download data created by the different account.

11. The method of claim 8 , wherein, said determining, from the account information associated with creation of the snapshot, whether the client has appropriate rights to download the previously-stored one or more snapshots comprises, for each of the previously-stored one or more snapshots:

checking a cache that includes indications of snapshots and indications of the client's rights regarding download of the snapshots indicated in the cache to determine whether the snapshot is listed in the cache; and

determining, for a snapshot that is listed in the cache, the client's rights regarding download of the snapshot from the cache.

12. The method of claim 11 , further comprising, for a snapshot is not listed in the cache:

examining a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file includes creator account information for data in the respective snapshot, and wherein said examining includes comparing account information for the client with the creator account information for the data blocks in the respective snapshot; and

determining, via said examining, whether the snapshot includes at least one data block created by a different account than the client account, wherein the client does not have rights to download data created by the different account.

13. The method of claim 7 ,

wherein said receiving the request on behalf of a client of the provider network comprises:

receiving a request to download a specified snapshot to a network external to the provider network; and

the method further comprising downloading the specified snapshot for a client that has appropriate rights to download the snapshot to the external network.

14. One or more non-transitory computer-readable storage media storing program instructions that are executable on or across one or more processors to implement a snapshot control process of a provider network that provides services to distinct clients associated with respective client networks, the snapshot control process configured to perform:

receiving a request on behalf of a client of the provider network, the request directed to one or more previously-stored snapshots, of one or more data volumes, stored on a data store on the provider network prior to receipt of the request;

determining, based on creator account information for one or more blocks of at least a portion of the previously-stored one or more snapshots, whether the client has appropriate rights to download the previously-stored one or more snapshots from the data store; and

responding, via programmatic or console-based interface, to the request with an indication that the client does not have appropriate rights to download the previously-stored one or more snapshots from the data store, wherein the previously-stored one or more snapshots that the client does not have appropriate rights to download are specified in the request, or

returning a list that includes those previously-stored snapshots for which the client has appropriate rights to download from the data store, wherein previously-stored snapshots for which the client does not have appropriate rights to download from the data store are excluded from the list, or

returning a list that includes both those previously-stored snapshots for which the client has appropriate rights to download from the data store and previously-stored snapshots for which the client does not have appropriate rights to download from the data store, wherein the list indicates download ineligibility for the previously-stored snapshots for which the client does not have appropriate rights to download from the data store.

15. The one or more non-transitory computer-readable storage media of claim 14 , wherein to perform said determining whether the client has appropriate rights to download the previously-stored one or more snapshots, the program instructions are executed to perform, for each of the previously-stored one or more snapshots:

examining a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file maps data blocks of a client data volume to locations of data chunks stored in the snapshot, and wherein said examining the snapshot manifest file comprises comparing account information for the client with information from the snapshot manifest file.

16. The one or more non-transitory computer-readable storage media of claim 15 ,

wherein each snapshot manifest file includes creator account information for data blocks in the respective snapshot; and

wherein to perform said examining the program instructions are executed to perform comparing account information for the client with the creator account information for the data blocks in the respective snapshot.

17. The one or more non-transitory computer-readable storage media of claim 15 ,

wherein to perform said determining whether the client has appropriate rights to download the previously-stored one or more snapshots the program instructions are executed to perform determining, for each of the previously-stored one or more snapshots via said examining, whether the snapshot includes at least one data block created by a different account than the client account, and

wherein the client does not have rights to download data created by the different account.

18. The one or more non-transitory computer-readable storage media of claim 15 ,

wherein to perform said determining, from the account information associated with creation of the snapshot, whether the client has appropriate rights to download the previously-stored one or more snapshots the program instructions are executed to perform:

checking a cache that includes indications of snapshots and indications of the client's rights regarding download of the snapshots indicated in the cache to determine whether the previously-stored one or more snapshots are listed in the cache; and

determining, for a snapshot that is listed in the cache, the client's rights regarding download of the snapshot from the cache.

19. The one or more non-transitory computer-readable storage media of claim 18 , wherein the program instructions are further executed to perform, for a snapshot is not listed in the cache:

examining a snapshot manifest file corresponding to the snapshot, wherein the snapshot manifest file includes creator account information for data in the respective snapshot, and wherein said examining includes comparing account information for the client with the creator account information for the data blocks in the respective snapshot; and

determining, via said examining, whether the snapshot includes at least one data block created by a different account than the client account, wherein the client does not have rights to download data created by the different account.

20. The one or more non-transitory computer-readable storage media of claim 15 ,

wherein to perform said receiving the request on behalf of a client of the provider network the program instructions are executed to perform receiving a request to download a specified snapshot to an external network; and

wherein the program instructions are further executed to:

perform downloading the specified snapshot for a client that does have appropriate rights to download the snapshot to the external network, and

not perform downloading the specified snapshot for a client that does not have appropriate rights to download the snapshot to the external network.

Continuity (5)
Continuation 15056648 · Feb 29, 2016
Continuation 14336768 · Jul 21, 2014
Continuation 13324907 · Dec 13, 2011
Provisional Application 61543278 · Oct 4, 2011
Related Publication 20180196827A1 · Jul 12, 2018
Cited By (1)
US 12,737,136