Encrypting S3, EBS, and RDS at Rest
Apply KMS-backed encryption across the main storage services.
Encrypting S3, EBS, and RDS at Rest is a free AWS Security Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AWS Security Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Encryption at Rest
Encryption at rest protects data stored on disk so that stolen media or snapshots are unreadable.
AWS storage services integrate with KMS to encrypt data transparently. The application sees normal data; the encryption happens automatically beneath it.
S3 Server-Side Encryption
Amazon S3 offers several server-side encryption (SSE) options:
- SSE-S3: keys fully managed by S3 (AES-256), now the default.
- SSE-KMS: keys in KMS, with audit and access control.
- SSE-C: you supply the key with each request.
Choosing an S3 Encryption Mode
Pick the SSE mode by control needs:
- SSE-KMS when you need auditing and key access control via CloudTrail and key policies.
- SSE-S3 for simple, automatic encryption.
- SSE-C when you must hold the keys yourself.
S3 Bucket Keys
SSE-KMS makes a KMS call per object, which can be costly at scale. S3 Bucket Keys reduce this dramatically.
A short-lived bucket-level data key handles many objects, cutting KMS requests (and cost) by up to 99% while keeping KMS-backed encryption.
EBS Volume Encryption
EBS (Elastic Block Store) volumes can be encrypted with KMS.
- Encryption covers the volume, its snapshots, and the data in transit between the volume and the instance.
- It is transparent to the EC2 instance, with negligible performance impact.
Encrypting Existing Volumes
You cannot encrypt an existing unencrypted EBS volume directly. Instead:
- Take a snapshot, copy it with encryption enabled, and create a new volume from the encrypted copy.
Enabling EBS encryption by default at the account/region level prevents new unencrypted volumes.
RDS Encryption
RDS (Relational Database Service) encrypts the database storage, automated backups, read replicas, and snapshots with KMS.
- Encryption must be set at creation.
- To encrypt an existing unencrypted instance, restore an encrypted copy from a snapshot.
Encryption and Snapshots
A key exam point: encryption status follows snapshots.
- Snapshots of an encrypted volume or DB are encrypted with the same key.
- To share an encrypted snapshot across accounts, you must share the KMS key too.
Other Encrypted Services
Most storage and database services support KMS encryption at rest, including:
- DynamoDB, EFS, Redshift, SQS, SNS, and Secrets Manager.
The pattern is consistent: pick a KMS key, and the service handles envelope encryption transparently.
Performance and Transparency
A common worry is that encryption slows things down. In practice, KMS-backed encryption on EBS, S3, and RDS is transparent with negligible performance impact.
Applications need no code changes; they read and write normally while the service encrypts beneath them. This removes any excuse to leave data unencrypted for performance reasons.
Auditing Encryption at Rest
Verify and enforce encryption with:
- AWS Config rules like s3-bucket-server-side-encryption-enabled and encrypted-volumes.
- Security Hub standards that flag unencrypted resources.
These continuously catch any resource that slips through unencrypted.
Quick Check
Choose the right S3 option.
Recap
You learned encryption at rest.
- S3 offers SSE-S3, SSE-KMS, and SSE-C; bucket keys cut KMS cost.
- EBS and RDS use KMS; encryption is set at creation and follows snapshots.
- Config rules and Security Hub verify encryption everywhere.
Frequently asked questions
Is the “Encrypting S3, EBS, and RDS at Rest” lesson free?
Yes — the full text of “Encrypting S3, EBS, and RDS at Rest” is free to read here on the web, and the AWS Security Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AWS Security Academy course, upgrade to CoddyKit PRO.
What will I learn in “Encrypting S3, EBS, and RDS at Rest”?
Apply KMS-backed encryption across the main storage services. You practise AWS Security Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AWS Security Academy?
No prior experience is required. AWS Security Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Encrypting S3, EBS, and RDS at Rest” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AWS Security Academy lesson?
Yes. Every AWS Security Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Encrypting S3, EBS, and RDS at Rest
- Enforcing Default Encryption Everywhere
- TLS Certificates with AWS Certificate Manager
- Storing Credentials in Secrets Manager