SECURE VIRTUALIZATION OF REMOTE STORAGE SYSTEMS
The disclosed embodiments provide a system for managing access to a remote storage system. During operation, the system receives a request from a user to access a remote storage system. Next, the system matches one or more parameters in the request to metadata in a virtual filesystem in the remote storage system. The system then processes the request by using the metadata to access one or more files in a file store that is physically separate from the virtual filesystem
1 . A method, comprising:
receiving a request from a user to access a remote storage system;
matching, by a computer system, one or more parameters in the request to metadata in a virtual filesystem in the remote storage system; and
processing, by the computer system, the request by using the metadata to access one or more files in a file store that is physically separate from the virtual filesystem.
2 . The method of claim 1 , further comprising:
matching authentication credentials from the user to a virtual user in a user store;
upon initiation of a user session for the virtual user, creating a sandbox for accessing the remote storage system by the virtual user; and
configuring the sandbox with a set of permissions for the virtual user.
3 . The method of claim 2 , wherein creating the sandbox for accessing the remote storage system for the virtual user comprises:
creating a virtual root directory representing the virtual filesystem within the sandbox; and
creating a set of virtual files comprising the metadata within the virtual root directory.
4 . The method of claim 3 , wherein creating the set of virtual files within the virtual root directory comprises:
omitting creation of a virtual file when a subset of the metadata associated with the virtual file comprises a deleted state or an expired state.
5 . The method of claim 2 , further comprising:
destroying the sandbox upon termination of the user session for the virtual user.
6 . The method of claim 1 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a listing request, using the metadata to generate a listing of files in the virtual filesystem.
7 . The method of claim 1 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a read request, matching a filename in the request to an obfuscated filename in the metadata;
retrieving a file with the obfuscated filename from the file store; and
providing the file to the user in response to the read request.
8 . The method of claim 1 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a write request, writing a file specified in the write request to the file store;
setting an obfuscated filename for the file in the file store; and
updating the metadata in the virtual filesystem with a subset of the metadata associated with the file, wherein the subset of the metadata comprises the obfuscated filename.
9 . The method of claim 1 , wherein the request is received from a load balancer that distributes requests from multiple users for accessing the remote storage system across a set of processing nodes.
10 . The method of claim 1 , wherein the metadata comprises at least one of:
a filename;
an upload time;
a file size;
a status;
an expiration time; and
an obfuscated filename in the file store.
11 . The method of claim 1 , wherein the virtual filesystem comprises:
a virtual root directory for the user;
one or more sub-directories under the virtual root directory; and
one or more files.
12 . An apparatus, comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
receive a request from a user to access a remote storage system;
match one or more parameters in the request to metadata in a virtual filesystem in the remote storage system; and
process the request by using the metadata to access one or more files in a file store that is physically separate from the virtual filesystem.
13 . The apparatus of claim 12 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:
match authentication credentials from the user to a virtual user in a user store;
upon initiation of a user session for the virtual user, create a sandbox for accessing the remote storage system by the virtual user;
configure the sandbox with a set of permissions for the virtual user; and
destroy the sandbox upon termination of the user session for the virtual user.
14 . The apparatus of claim 13 , wherein creating the sandbox for accessing the remote storage system for the virtual user comprises:
creating a virtual root directory representing the virtual filesystem within the sandbox; and
creating a set of virtual files comprising the metadata within the virtual root directory.
15 . The apparatus of claim 14 , wherein creating the set of virtual files within the virtual root directory comprises:
omitting creation of a virtual file when a subset of the metadata associated with the virtual file comprises a deleted state or an expired state.
16 . The apparatus of claim 12 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a listing request, using the metadata to generate a listing of files in the virtual filesystem.
17 . The apparatus of claim 12 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a read request, matching a filename in the request to an obfuscated filename in the metadata;
retrieving a file with the obfuscated filename from the file store; and
providing the file to the user in response to the read request.
18 . The apparatus of claim 12 , wherein using the metadata to access the one or more files in the file store comprises:
when the request comprises a write request, writing a file specified in the write request to the file store;
setting an obfuscated filename for the file in the file store; and
updating the metadata in the virtual filesystem with a subset of the metadata associated with the file, wherein the subset of the metadata comprises the obfuscated filename.
19 . A remote storage system, comprising:
a file store;
a virtual filesystem that is physically separate from the file store; and
a server comprising a non-transitory computer-readable medium comprising instructions that, when executed, cause the system to:
receive a request from a user to access the remote storage system;
match one or more parameters in the request to metadata in the virtual filesystem; and
process the request by using the metadata to access one or more files in the file store.
20 . The remote storage system of claim 19 , wherein the non-transitory computer-readable medium of the server further comprises instructions that, when executed, cause the system to:
match authentication credentials from the user to a virtual user in a user store;
upon initiation of a user session for the virtual user, create a sandbox for accessing the remote storage system by the virtual user;
configure the sandbox with a set of permissions for the virtual user; and
destroy the sandbox upon termination of the user session for the virtual user.