Prevent Accidental KMS Key Use by Unauthorized Principals with IAM and Key Policies
A company is encrypting sensitive S3 data for a claims portal with AWS KMS. Which two controls help prevent accidental use of the KMS key by unauthorized principals?
Quick Answer
The answer is a combination of IAM policies and a key policy that limits key administrators and key users. This is correct because to prevent unauthorized KMS key use, you must apply a defense-in-depth approach: IAM policies restrict the `kms:Decrypt` action to only the specific IAM roles that need it for the claims portal, while the key policy explicitly defines who can manage or use the key, acting as a resource-based control that overrides any broader IAM permissions. On the SAA-C03 exam, this tests your understanding that KMS requires both identity-based and resource-based policies to work together—a common trap is assuming an IAM policy alone is sufficient, but without a key policy that denies access by default, any principal with S3 object access could still decrypt the data. Remember the mnemonic "IAM for who, Key Policy for what"—IAM controls which principals can act, while the key policy controls what actions are allowed on the key itself.
⚠ Common exam trap
It's easy for candidates to assume that IAM policies alone are sufficient to control KMS key access, but they forget that the key policy must also explicitly allow the IAM principal to use the key, as KMS requires both the key policy and IAM policy to grant access.
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
✓
IAM policies that grant kms:Decrypt only to required application roles
IAM policies can be used to restrict the `kms:Decrypt` action to only the specific IAM roles that require it for the claims portal. This ensures that even if an unauthorized principal has access to the encrypted S3 object, they cannot decrypt it without the explicit IAM permission to use the KMS key. Option C is correct because a key policy that explicitly defines key administrators and key users limits who can manage or use the KMS key, preventing accidental use by unauthorized principals.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
A larger KMS key rotation period
Why it's wrong here
Rotation interval does not determine which principals may use a key.
- ✓
IAM policies that grant kms:Decrypt only to required application roles
Why this is correct
IAM permissions should grant least-privilege use of the KMS key to specific roles.
- ✓
A key policy that limits key administrators and key users
Why this is correct
The KMS key policy is the primary resource policy that controls who can administer or use the key.
- ✗
S3 Transfer Acceleration
Why it's wrong here
Transfer Acceleration does not control KMS key usage.
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 |
Go deeper
Related to this question
About these practice questions
Courseiva writes every SAA-C03 question from scratch — 302 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more way this is tested on SAA-C03
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. A company is encrypting sensitive S3 data for a IoT ingestion API with AWS KMS. Which two controls help prevent accidental use of the KMS key by unauthorized principals? The design must avoid adding custom operational scripts.
hard- ✓ A.IAM policies that grant kms:Decrypt only to required application roles
- B.S3 Transfer Acceleration
- ✓ C.A key policy that limits key administrators and key users
- D.A larger KMS key rotation period
Why A: IAM policies can explicitly grant kms:Decrypt only to specific application roles, ensuring that only authorized principals (e.g., the IoT ingestion service role) can use the KMS key for decryption. This prevents unauthorized principals from accidentally or maliciously decrypting S3 objects, as the policy restricts the action to required roles without needing custom scripts.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SAA-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 SAA-C03 exam.