For each of my customers, they have data stored on individual dropbox accounts and im in the process of consolidating all of these into AWS in the shape of a single s3 bucket where each customer has control over a single folder within that bucket.
For added security I was planning on creating each customer an IAM user (programatic access controlled via my application) and limit the bucket policy to only allow requests to the folder relating to that customer.
{
Sid = "VisualEditor0"
Effect = "Allow"
Action = "s3:*"
Resource = "arn:aws:s3:::customer_data/${aws:username}/*"
}
This all seemed sensible to me until it dawned on me that theres a hard 5000 IAM user limit per account. In theory things would have to be going really well in this industry to hit this limit but hard limits give me reasons to be nervous as you'd expect.
Any better solutions?
I found this similar post where one answer suggests using AWS Cognito which seems like it might require user input as opposed to allowing me to setup the users completely?