Data Encryption : securing your data stored in Amazon Web Services data centers
Georges Awono
Cloud Architect for Data & AI Platforms - Transforming Business Goals to Technical Strategies ?
There might come a time when an organization or an individual decides to store data in Amazon Simple Storage Service (S3), effectively storing said data in Amazon Web Services Data Center.
By using Amazon Simple Storage Service (S3), we gain access to virtually unlimited storage capacity at a very cheap cost per month (going as low as 0.021$/GB/month).?
But, are you sure your data is secure in Amazon S3 ? That no one can gain access to your data in-transit (when sending your data from on-premise data centers or your computer to Amazon S3) or at rest (when your data is inside Amazon Web Services Data Centers) ?
In this article, I want to talk about one possible solution to this situation : encrypting your data !
What is Data Encryption ?
Data encryption is used to protect data from being stolen, changed or compromised. It works by transforming your data into an incomprehensible code that can only be decrypted with a unique digital key. Here are the key components of data encryption :
Types of encryption :?
The two types of encryption commonly used are :?
In symmetric encryption, only one key is used for both encrypting and decrypting data. It is fast, making it ideal for large volumes of secure data transfer. But it relies on the fact that whoever you are sending encrypted data to, like Amazon S3, has the same key you have used to encrypt your data. The challenge is to send your encryption key securely to your recipient.?
In Asymmetric encryption, two keys are used : a public key and a private key. Public key is used to encrypt data, private key is used to decrypt said data. This means that anyone with a public key can encrypt the data, but only those who have the corresponding private key can decrypt and read that data. It is more expensive computationally, making it not ideal for securely transferring vast amounts of data. But it’s a better choice to exchange light private information, like symmetric encryption keys.
Encrypting data when using Amazon Web Services :?
Protecting our data in transit vs data at rest
When you are uploading your data to Amazon S3, there are two point in time where you should be concerned about the security of your data :?
When your data is in transit, secure communication protocols such as HTTPS and SSH help to secure your data by encrypting the tunnel your data will transit through. You just have to make sure to use the right protocol to transfer data.
领英推荐
When data is at rest, there are two main encryption methods : client side encryption and server side encryption.
A primer on Client side encryption
Client side encryption consists in encrypting your data before it reaches Amazon S3. That way, Amazon S3 will only see encrypted data (ciphertext) because data is encrypted before being uploaded to the cloud. Here are the keys characteristics of client-side encryption :?
Advantages of using client-side encryption are pretty clear :?
Tools like Amazon Encryption SDK helps you manage the complexities of using client-side encryption.?
A primer on Server side encryption (using Amazon S3)
Server-Side Encryption consists in encrypting your data after it reaches Amazon S3 endpoint. Amazon S3 will be in charge of encrypting/decrypting your data, and the type of Server-Side Encryption you choose will determine how your keys are managed, who (you or an AWS service) manages it, and how the encryption and decryption process is handled.?
There are 3 types of Server-Side Encryption supported in Amazon S3 :?
Server-Side Encryption with Customer-Provided keys (SSE-C) :You are in charge of securely managing and storing your keys, and providing Amazon S3 with those keys. Amazon S3 will use them to encrypt & decrypt your data.
Server-Side Encryption with S3 managed keys (SSE-S3) : Amazon S3 managed keys and takes care of encryption & decryption process. It is really a handoff process where you don’t have to manage anything. For your information : today, all data uploaded to Amazon S3 is encrypted by default, at no additional cost. You can think of this encryption method as the default one if you haven’t specified any while uploading your data to S3.?
Server-Side Encryption with AWS Key Management Service (SSE-KMS) : Amazon S3 encrypts your data using keys managed by AWS Key Management Service (KMS). AWS KMS is a fully managed service that allows you to create, manage, and control encryption keys in a secure and compliant way. You can control who has access to these keys, rotate the keys after a certain period and define policies to manage how these keys are used.?
Conclusion
Data security is an important topic when using cloud technologies like Amazon S3.?
Whether you prefer full control with client-side encryption or a more hands-off approach with server-side encryption, I hope this article has given you a good foundation and has helped you understand the trade-offs between both. Amazon Web Services offers tools for both encryption types, so it’s all about finding what suits your needs best.