You are designing a photo-sharing mobile app. The application will store all pictures in a single
Amazon S3 bucket.
Users will upload pictures from their mobile device directly to Amazon S3 and will be able to view
and download their own pictures directly from Amazon S3.
You want to configure security to handle potentially millions of users in the most secure manner
possible. What should your server-side application do when a new user registers on the photosharing mobile application?
A.
Create an IAM user. Update the bucket policy with appropriate permissions for the IAM user.
Generate an access key and secret key for the IAM user, store them in the mobile app and use
these credentials to access Amazon S3.
B.
Create an IAM user. Assign appropriate permissions to the IAM user.
Generate an access key and secret key for the IAM user, store them in the mobile app and use
these credentials to access Amazon S3.
C.
Create a set of long-term credentials using AWS Security Token Service with appropriate
permissions.
Store these credentials in the mobile app and use them to access Amazon S3.
D.
Record the user’s information in Amazon RDS and create a role in IAM with appropriate
permissions.
When the user uses their mobile app, create temporary credentials using the AWS Security
Token Service “AssumeRole” function.
Store these credentials in the mobile app’s memory and use them to access Amazon S3.
Generate new credentials the next time the user runs the mobile app.
E.
Record the user’s information in Amazon DynamoDB.
When the user uses their mobile app, create temporary credentials using AWS Security Token
Service with appropriate permissions.
Store these credentials in the mobile app’s memory and use them to access Amazon S3.
Generate new credentials the next time the user runs the mobile app.
Explanation:
We can use either RDS or DynamoDB, however in our given answers, IAM role is mentioned only
with RDS, so I would go with Answer B. Question was explicitly focused on security, so IAM with
RDS is the best choice.
“D. Record the user’s information in Amazon RDS and create a role in IAM with appropriate permissions.
When the user uses their mobile app, create temporary credentials using the AWS Security Token
Service “”AssumeRole”” function. Store these credentials in the mobile app’s memory and use them to
access Amazon S3. Generate new credentials the next time the user runs the mobile app”
D is the appropriate answer since it clearly defines AssumeRole function and remaining steps