Step-by-Step Guide to Securing Data at Rest with AWS KMS


Have you ever considered how secure your data truly is especially the data stored in your Amazon RDS instances, S3 buckets, EBS volumes, and other AWS resources? Imagine this: if an attacker were to gain access to your network or infrastructure, would they be able to view your sensitive data in plain text?
If the answer is yes or even "I'm not sure" then it's time to rethink your data protection strategy.
Data at rest refers to any data that is stored on disk or persistent storage, and it can be just as vulnerable as data in transit if not properly protected. Leaving data unencrypted means it’s exposed to anyone who can bypass access controls, whether through a misconfiguration, compromised credentials, or a security breach.
Thankfully, AWS offers robust, built-in solutions to safeguard data at rest. These mechanisms are designed to ensure that even if unauthorized access occurs, the data remains unreadable and useless without the proper decryption keys.
In AWS, there are two primary methods for encrypting data at rest:
Server-Side Encryption (SSE) – where AWS handles the encryption and key management for you.
Client-Side Encryption (CSE) – where you encrypt the data before uploading it to AWS, giving you full control over keys and encryption logic.
In this guide, we’ll walk through how to implement aws encryption method using server side encryption with KMS.
Login in to AWS Management Console
Go to search and type kms
Click on KMS
- Click on Create Key
Select the key type and key usage
Click on Next
We have 2 Key types
Symmetric - One key is used to encrypt and decrypt the data
Asymmetric - One key is used to encrypt while another key is used to decrypt the data
- Type the key name and the description
- Select the user You want to full access to this key
- Click on Next
- Click on Next
- Review
- Click on finish
- You can see our key
To use the key
We will use the key to encrypt data that we will store in s3 bucket
Go to search and type s3
Click on s3 bucket
- Click on Create bucket
Type the name of the bucket
Select General Purpose
- Leave these on default
Select Server side encryption
Select the key we created on kms
- Click on Create Bucket
Subscribe to my newsletter
Read articles from Oshaba Samson directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Oshaba Samson
Oshaba Samson
I am a software developer with 5 years + experience. I have working on web apps ecommerce, e-learning, hrm web applications and many others