SCS-C03 Identity and Access Management Practice Question
An application running on EC2 needs to access DynamoDB tables. What is the most secure way to provide these permissions?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Assign an IAM role to the EC2 instance via an instance profile.
Assigning an IAM role to an EC2 instance is the secure, standard AWS approach. The instance profile automatically provides temporary credentials that the SDK uses, eliminating the need for manual key rotation or storage. This method follows the principle of least privilege by scoping access strictly to the necessary DynamoDB resources, preventing exposure of long-term credentials and simplifying maintenance for the application developers and security administrators.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Embed IAM access keys directly into the application code.
Why it's wrong here
Hardcoding credentials in code is a critical security vulnerability. If the code is pushed to a repository, the keys can be easily stolen. This practice violates fundamental security principles and makes rotating credentials extremely difficult, as it requires re-deploying the application whenever the keys need to be updated.
- ✗
Store IAM access keys in a configuration file on the EC2 instance.
Why it's wrong here
Storing keys in configuration files is nearly as insecure as hardcoding them. Any user or process with read access to the file can compromise the credentials. Furthermore, managing these files across multiple instances is an operational burden and does not provide the automated rotation benefits offered by IAM roles.
- ✓
Assign an IAM role to the EC2 instance via an instance profile.
Why this is correct
Using IAM roles with instance profiles is the gold standard for EC2 security. It provides temporary, short-lived credentials that are automatically rotated by the AWS environment. The application uses the AWS SDK to retrieve these credentials, ensuring no sensitive data is stored on the disk or exposed in the code.
- ✗
Create a public DynamoDB table to allow unauthenticated access.
Why it's wrong here
Public access to data stores is a severe misconfiguration. DynamoDB tables should never be made public unless they are intended to serve as a public CDN-like interface, which is rarely the case for internal application data. This exposes sensitive data to the entire internet, violating all data privacy and compliance standards.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
About these practice questions
One of 99 original SCS-C03 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This SCS-C03 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SCS-C03 exam.