Based on my research about the dynamo DB: https://phabricator.ashoat.com/D2950#81654
- Every DynamoDB table has a unique primary key
- A primary key [PKSK] must be composed of a partition key [PK], and can optionally have a sort key [SK].
- A GetItem request returns one and only one item using its unique primary key [PKSK].
- A Query does a fast lookup and must specify one and only one partition key [PK]. It can return multiple items.
- A Scan evaluates every item in a table and may return a subset based on filter parameters. Scans are the correct choice in some circumstances but can be slow and costly if used incorrectly.
Depends on D3176
I'd feel safer if this pickling key was less deterministic, but on the other hand I'm not sure if it is possible for someone to acquire only the pickled account without the key. If an attacker has both, then key security doesn't matter. So we can probably keep the current approach.