IAM Policy Evaluation for Database Services
Exhibit
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances",
"rds:CreateDBSnapshot"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:PutItem",
"dynamodb:DeleteItem"
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MyTable"
}
]
}Refer to the exhibit. An IAM policy is attached to a role used by an application running on Amazon EC2. The application needs to read items from a DynamoDB table named 'MyTable' and create manual snapshots of an RDS instance. What is the issue with the policy?
Quick Answer
The answer is that the policy fails to grant any DynamoDB read actions, such as GetItem, Query, or Scan, which are essential for the application to read items from the table. While the policy correctly allows PutItem and DeleteItem, it omits the read permissions required by the use case, and although CreateDBSnapshot is permitted on a wildcard resource, the missing read capability is the critical flaw. On the AWS Certified Database Specialty DBS-C01 exam, this scenario tests your ability to map IAM policy evaluation for database services to specific API actions, often trapping candidates who focus on resource-level restrictions (like the RDS snapshot ARN) rather than verifying that all required actions are present. A common memory tip is to always check the verb: if the application needs to read, confirm that the policy includes a read action like GetItem or Scan before worrying about resource ARNs.
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
✓
The policy does not grant any DynamoDB read actions (e.g., GetItem, Query, Scan) required for the application.
The policy only grants 'PutItem' and 'DeleteItem' actions on the DynamoDB table, but the application needs to read items (e.g., 'GetItem' or 'Scan'). The missing DynamoDB read actions are the primary issue. Option B is incorrect because 'DescribeDBInstances' on all resources is not inherently too permissive for this use case; the key issue is the missing read permissions. Option C is incorrect because using 'Resource': '*' for DynamoDB is acceptable for read actions if the table ARN is not specified; it is not a policy structure problem. Option D is incorrect because 'CreateDBSnapshot' on '*' is allowed, but the policy correctly scopes RDS actions to 'Resource': '*' which includes all DB instances; the critical flaw remains the missing DynamoDB read actions.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
The policy does not grant any DynamoDB read actions (e.g., GetItem, Query, Scan) required for the application.
Why this is correct
The application needs to read items, but the policy only allows PutItem and DeleteItem.
- ✗
The policy allows 'DescribeDBInstances' on all resources, which is too permissive.
Why it's wrong here
While it is broad, the immediate issue is missing DynamoDB read permissions.
- ✗
The policy uses 'Resource': '*' for DynamoDB, which should be the table ARN.
Why it's wrong here
The DynamoDB resource is correctly scoped to the table ARN.
- ✗
The policy grants 'CreateDBSnapshot' on all resources, which is insufficient; it should be scoped to the specific DB instance.
Why it's wrong here
Scoping is a best practice but not the primary issue; the missing read permission is more critical.
Go deeper
Related to this question
About these practice questions
This DBS-C01 question is part of Courseiva's 1,663-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
Same concept, more angles
3 more ways this is tested on DBS-C01
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. Refer to the exhibit. An application on an EC2 instance is trying to read an object from the S3 bucket 'data-lake-prod'. The instance is in a VPC with an IP address of 10.0.1.5. The application receives an Access Denied error. What is the cause?
hard- A.An SCP is denying S3 access to the account.
- ✓ B.A Deny statement with a source IP condition is blocking access.
- C.The S3 bucket policy requires a specific VPC endpoint.
- D.The IAM role does not have permission to read from the bucket.
Why B: The Deny statement applies to the source IP 10.0.1.5 (within 10.0.0.0/8), overriding the Allow. Option A is wrong because the IAM role does allow s3:GetObject on the bucket. Option C is wrong because there is no explicit condition on the Allow statement. Option D is wrong because the policy is attached to the role, not an SCP.
Variation 2. Refer to the exhibit. A database engineer is assigned this IAM policy. Which of the following actions can the engineer perform? (Choose two.)
hard- ✓ A.Describe all automated snapshots
- B.Delete a manual snapshot named dev-snapshot
- C.Delete a manual snapshot named prod-database-snapshot
- D.Delete a manual snapshot named prod-backup
- ✓ E.Create a manual snapshot named test-snapshot
Why A: The IAM policy includes an Allow statement for 'rds:DescribeDBSnapshots' on all resources, so the engineer can describe any snapshot, including automated snapshots (Option A). It also includes an Allow statement for 'rds:CreateDBSnapshot' on all resources, allowing creation of a manual snapshot with any name, such as 'test-snapshot' (Option E). There is no Allow statement for 'rds:DeleteDBSnapshot', and a Deny statement explicitly blocks deletion of snapshots with names starting with 'prod-'. Therefore, deleting any manual snapshot (Options B, C, D) is not permitted. The correct answers are A and E.
Variation 3. The exhibit shows an IAM policy attached to a user. The user needs to create a manual snapshot of an RDS DB instance named 'production-db'. Which action will the user be able to perform?
hard- A.Create a manual snapshot of 'production-db' with the name 'production-db-snapshot'.
- ✓ B.Create a manual snapshot of 'production-db' with the name 'mydb-production-snapshot'.
- C.Describe the 'production-db' DB instance.
- D.Delete the 'production-db' DB instance.
Why B: The IAM policy allows CreateDBSnapshot only on DB instances with names starting with 'mydb-', and the snapshot name must also match the pattern 'mydb-*'. The snapshot name 'mydb-production-snapshot' satisfies that pattern. Option A is wrong because 'production-db-snapshot' does not start with 'mydb-'. Option C is wrong because the question asks about creating a snapshot, not describing instances. Option D is wrong because the policy does not grant DeleteDBInstance permission.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DBS-C01 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 DBS-C01 exam.