AWS Key Management Service (KMS) Learning & Revision Guide
Overview
AWS Key Management Service (KMS) is a managed service used to create, manage, and control cryptographic keys for encrypting data across AWS services.
KMS helps organizations meet security, compliance, and data protection requirements by centralizing encryption key management.
1. What is KMS?
KMS provides encryption keys that can be used by AWS services and applications to protect sensitive data.
Key Benefits
- Centralized key management
- Data encryption
- Access control
- Audit logging
- Regulatory compliance
- Key rotation
2. Key Concepts
Encryption
Convert readable data into encrypted data.
Decryption
Convert encrypted data back into readable format.
Customer Master Key (CMK)
Historically called CMK. AWS now refers to these simply as KMS Keys.
Data Key
Temporary encryption key generated by KMS for encrypting application data.
3. Types of KMS Keys
AWS Managed Keys
Keys automatically created and managed by AWS.
Examples:
aws/s3
aws/rds
aws/ebs
aws/secretsmanager
Customer Managed Keys (CMK)
Keys created and managed by customers.
Benefits:
- Full control
- Custom policies
- Key rotation
- Cross-account access
4. Creating KMS Keys
Key Topics
- Symmetric Keys
- Asymmetric Keys
- Key Alias
- Key Description
- Key Rotation
- Key Deletion
Common Example
Alias: prod-database-key
Purpose: RDS Encryption
5. KMS Key Policies
Key policies determine who can use the KMS key.
Key Topics
- Allow encryption
- Allow decryption
- Cross-account access
- Service permissions
Common Permissions
kms:Encrypt
kms:Decrypt
kms:GenerateDataKey
kms:DescribeKey
6. IAM Policies vs Key Policies
One of the most important KMS concepts.
IAM Policy
Determines whether a user or role can call KMS APIs.
Key Policy
Determines whether the KMS key itself allows access.
Access Requirement
IAM Policy
AND
Key Policy
=
Access Granted
Both permissions must exist.
7. KMS Integration with AWS Services
KMS integrates with many AWS services.
Common Integrations
- Amazon S3
- Amazon EBS
- Amazon RDS
- AWS Secrets Manager
- Amazon EKS
- AWS Lambda
- CloudWatch Logs
- SNS
- SQS
8. S3 Encryption with KMS
One of the most common use cases.
Architecture
User
|
Amazon S3
|
KMS Key
|
Encrypted Object
Key Topics
- SSE-KMS
- Bucket Encryption
- Object Encryption
- KMS Access Control
Benefits
- Stronger security
- Auditability
- Compliance support
9. EBS Encryption
Encrypt EC2 volumes using KMS.
Key Topics
- Root volume encryption
- Data volume encryption
- Snapshot encryption
- Default EBS encryption
Benefits
- Protect instance storage
- Secure backups
10. RDS Encryption
Encrypt relational databases using KMS.
Key Topics
- Database encryption
- Snapshot encryption
- Read replica encryption
Architecture
Application
|
Amazon RDS
|
KMS Key
|
Encrypted Storage
11. Secrets Manager Integration
Secrets Manager relies heavily on KMS.
Architecture
Application
|
Secrets Manager
|
KMS Key
|
Encrypted Secret
Required Permissions
secretsmanager:GetSecretValue
kms:Decrypt
12. Lambda Integration
Lambda functions often retrieve encrypted secrets.
Architecture
Lambda
|
IAM Role
|
Secrets Manager
|
KMS Key
Required Permissions
kms:Decrypt
secretsmanager:GetSecretValue
13. Key Rotation
Regularly rotate encryption keys.
Key Topics
- Automatic rotation
- Manual rotation
- Compliance requirements
Benefits
- Reduced security risk
- Improved compliance
14. Cross-Account Key Access
Allow resources in another AWS account to use your KMS key.
Key Topics
- Key Policies
- IAM Roles
- Resource Sharing
Common Use Cases
- Shared services accounts
- Multi-account environments
15. Monitoring and Auditing
Monitor KMS activity.
Key Topics
- CloudTrail
- CloudWatch
- Security Auditing
Audit Events
- Encrypt operations
- Decrypt operations
- Key usage
- Key modifications
16. Security Best Practices
Recommended Practices
- Use Customer Managed Keys for production workloads.
- Enable key rotation.
- Follow least privilege access.
- Restrict key usage through Key Policies.
- Audit key usage using CloudTrail.
- Avoid unnecessary key sharing.
17. Common Production Architecture
Application
|
IAM Role
|
AWS Service
|
KMS Key
|
Encrypted Data
Examples:
EC2 -> EBS -> KMS
Lambda -> Secrets Manager -> KMS
Application -> RDS -> KMS
User -> S3 -> KMS
Cloud Architect Checklist
When designing encryption solutions verify:
- Data Classification
- Encryption Requirements
- KMS Key Ownership
- Key Rotation Policy
- IAM Permissions
- Key Policies
- Cross-Account Access
- Backup Encryption
- Audit Requirements
- Compliance Requirements
Revision Checklist
Before considering KMS revision complete, ensure you understand:
- KMS Basics
- Symmetric Keys
- Asymmetric Keys
- AWS Managed Keys
- Customer Managed Keys
- Key Policies
- IAM Policies
- Key Rotation
- S3 Encryption
- EBS Encryption
- RDS Encryption
- Secrets Manager Integration
- Lambda Integration
- Cross-Account Access
- Monitoring and Auditing
Most Important Interview Concepts
Concept 1
IAM Policy
+
Key Policy
=
Access Granted
Concept 2
KMS does not usually encrypt large files directly.
Instead:
KMS Key
|
Generate Data Key
|
Encrypt Data
This approach is called Envelope Encryption.
Concept 3
Almost every AWS security service depends on KMS:
S3
EBS
RDS
Secrets Manager
EKS
Lambda
CloudWatch Logs
SNS
SQS
Understanding KMS is essential for designing secure AWS architectures.
For your AWS learning repository, KMS should be a foundational service under Security:
AWS
└── Security
├── IAM
├── KMS
├── Secrets Manager
├── ACM
├── WAF
└── Shield
A practical learning order is:
IAM
↓
KMS
↓
Secrets Manager
↓
S3 Encryption
↓
RDS Encryption
↓
Lambda Integration
Once these five topics are clear, you'll understand most production encryption implementations used in AWS environments.