Bird
Raised Fist0
AWScloud~30 mins

KMS for key management in AWS - Mini Project: Build & Apply

Choose your learning style10 modes available
KMS for key management
📖 Scenario: You are setting up a secure environment in AWS. You need to create a KMS (Key Management Service) key to encrypt your sensitive data safely.
🎯 Goal: Build an AWS CloudFormation template that creates a KMS key with a description and enables key rotation.
📋 What You'll Learn
Create a KMS key resource with the exact logical ID MyKmsKey
Set the Description property to "My first KMS key"
Enable automatic key rotation by setting EnableKeyRotation to true
Add a KeyPolicy that allows the root user full access
💡 Why This Matters
🌍 Real World
KMS keys are used to encrypt sensitive data in AWS services like S3, EBS, and RDS. Managing keys securely is critical for protecting data.
💼 Career
Cloud engineers and security specialists often create and manage KMS keys to enforce encryption policies and comply with security standards.
Progress0 / 4 steps
1
Create the KMS key resource
Create a resource called MyKmsKey of type AWS::KMS::Key in the Resources section of the CloudFormation template.
AWS
Hint

Use the Resources section to define MyKmsKey with the correct type.

2
Add a description to the KMS key
Inside the MyKmsKey resource, add a Properties section with a Description set to "My first KMS key".
AWS
Hint

Properties hold configuration details like Description.

3
Enable automatic key rotation
Inside the Properties of MyKmsKey, add EnableKeyRotation set to true to enable automatic key rotation.
AWS
Hint

EnableKeyRotation is a boolean property inside Properties.

4
Add a key policy allowing root user full access
Inside the Properties of MyKmsKey, add a KeyPolicy that allows the root user full access. Use the exact policy structure with "Effect": "Allow", "Principal": { "AWS": { "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:root" } }, and "Action": "kms:*" on "Resource": "*".
AWS
Hint

The KeyPolicy is a JSON object with Version and Statement array. The Statement must allow root user full access.

Practice

(1/5)
1. What is the main purpose of AWS KMS (Key Management Service)?
easy
A. To create and manage encryption keys for data protection
B. To store large files securely
C. To monitor network traffic
D. To manage user access permissions

Solution

  1. Step 1: Understand the role of KMS

    AWS KMS is designed to create and manage cryptographic keys used to encrypt and decrypt data.
  2. Step 2: Compare with other options

    Options B, C, and D describe other AWS services or functions unrelated to key management.
  3. Final Answer:

    To create and manage encryption keys for data protection -> Option A
  4. Quick Check:

    KMS purpose = encryption key management [OK]
Hint: KMS is about keys, not files or users [OK]
Common Mistakes:
  • Confusing KMS with storage services
  • Thinking KMS manages user permissions
  • Assuming KMS monitors network traffic
2. Which of the following is the correct way to enable automatic yearly key rotation for a KMS key using AWS CLI?
easy
A. aws kms rotate-key --key-id
B. aws kms update-key --key-id --rotation on
C. aws kms set-key-rotation --key-id --enable true
D. aws kms enable-key-rotation --key-id

Solution

  1. Step 1: Recall AWS CLI command for key rotation

    The correct command to enable automatic yearly rotation is 'aws kms enable-key-rotation --key-id '.
  2. Step 2: Check other options for correctness

    Options A, C, and D are not valid AWS CLI commands for enabling key rotation.
  3. Final Answer:

    aws kms enable-key-rotation --key-id <key-id> -> Option D
  4. Quick Check:

    Enable key rotation command = aws kms enable-key-rotation --key-id [OK]
Hint: Enable key rotation uses 'enable-key-rotation' command [OK]
Common Mistakes:
  • Using incorrect command names
  • Trying to rotate keys manually with wrong syntax
  • Confusing update commands with enable commands
3. Given the following AWS KMS key policy snippet, what permission does it grant?
{
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"},
  "Action": ["kms:Encrypt", "kms:Decrypt"],
  "Resource": "*"
}
medium
A. Alice can delete the key
B. Alice can only create keys
C. Alice can encrypt and decrypt data using the key
D. Alice can manage key rotation

Solution

  1. Step 1: Analyze the policy actions

    The policy allows 'kms:Encrypt' and 'kms:Decrypt' actions for Alice, meaning she can encrypt and decrypt data with the key.
  2. Step 2: Understand what is not allowed

    There is no permission for creating, deleting, or managing key rotation in this policy snippet.
  3. Final Answer:

    Alice can encrypt and decrypt data using the key -> Option C
  4. Quick Check:

    Actions = Encrypt and Decrypt permissions [OK]
Hint: Check 'Action' field for allowed operations [OK]
Common Mistakes:
  • Assuming all permissions are granted
  • Confusing encrypt/decrypt with key management
  • Ignoring the 'Action' list details
4. You tried to delete a KMS key but received an error. What is the most likely reason?
medium
A. The key has a deletion window set and cannot be deleted immediately
B. The key is not enabled for encryption
C. The key is not attached to any resource
D. The key rotation is disabled

Solution

  1. Step 1: Understand KMS key deletion rules

    KMS keys cannot be deleted immediately; they require a waiting period called the deletion window.
  2. Step 2: Evaluate other options

    Options A, B, and D do not prevent deletion; only the deletion window does.
  3. Final Answer:

    The key has a deletion window set and cannot be deleted immediately -> Option A
  4. Quick Check:

    Deletion window blocks immediate key deletion [OK]
Hint: KMS keys delete only after waiting period [OK]
Common Mistakes:
  • Trying to delete keys instantly
  • Confusing key enablement with deletion
  • Ignoring deletion window requirement
5. You want to ensure your KMS key automatically rotates every year and cannot be deleted accidentally. Which two settings should you configure?
hard
A. Disable key rotation and set a minimum 30-day deletion window
B. Enable key rotation and set a minimum 7-day deletion window
C. Enable key rotation and disable deletion window
D. Disable key rotation and set deletion window to 0 days

Solution

  1. Step 1: Enable automatic yearly key rotation

    Enabling key rotation ensures the key updates automatically every year.
  2. Step 2: Set a deletion window to prevent accidental deletion

    A minimum 7-day deletion window is required to avoid immediate key loss and allow recovery.
  3. Final Answer:

    Enable key rotation and set a minimum 7-day deletion window -> Option B
  4. Quick Check:

    Rotation enabled + deletion window set = safe key management [OK]
Hint: Rotate keys yearly and set deletion window ≥7 days [OK]
Common Mistakes:
  • Disabling rotation when it should be enabled
  • Setting deletion window to zero
  • Disabling deletion window entirely
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard