Default Encryption
Start course
2h 34m

This section of the SysOps Administrator - Associate learning path introduces you to the core storage concepts and services relevant to the SOA-C02 exam. We start with an introduction to the AWS storage services, understand the options available, and learn how to select and apply AWS storage services to meet specific requirements. 

Learning Objectives

  • Obtain an in-depth understanding of Amazon S3 management and security features
  • Get both a theoretical and practical understanding of EFS
  • Learn how to create an EFS file system, manage EFS security, and import data in EFS
  • Learn about EC2 storage and Elastic Block Store

Hello and welcome to this lecture covering the default encryption options for your S3 buckets. Whenever you have sensitive data being stored in S3 it’s imperative to have some level of encryption enabled as an additional layer of security to protect your data.

Using default encryption, you are able to set a default encryption mechanism for every new object that is uploaded to the bucket. However, please note that for any objects that are already in your bucket prior to enabling default encryption, they will NOT be encrypted.

To enable default encryption on a particular bucket you can select the ‘Default Encryption’ tile from the bucket properties tab. This will enable you to configure one of 2 different default encryption options. AES-256, also known as SSE-S3 which stands for Server-side encryption using S3 managed keys, and AWS-KMS, this is often referred to as SSE-KMS which stands for Server-side encryption using KMS managed keys. KMS is the Key Management Service. If you are unfamiliar with this service you can learn more about it in this course here.

Let me explain both of these types of encryption at a high level, starting with SSE-S3. Server-Side Encryption with S3 Managed Keys, SSE-S3 Server-side encryption with S3 managed keys, SSE-S3 requires minimal configuration and all management of the encryption keys used are managed by AWS. All you need to do is to upload your data and S3 will handle all other aspects, making the encryption seemingly invisible to the end-user.

The encryption process. Firstly, a client uploads Object Data to S3 S3 then takes this Object Data and encrypts it with an S3 Plaintext Data Key. This creates an encrypted version of the Object Data, which is then saved and stored on S3 Next, the S3 Plaintext Data Key is encrypted with an S3 Master Key, which creates an encrypted S3 Data Key. This encrypted Data Key is then also stored on S3 and the Plaintext Data Key is removed from memory.

For the decryption process, a request is made by the client to S3 to retrieve the Object Data. S3 takes the associated encrypted S3 Data Key of the Object Data and decrypts it with the S3 Master Key. The S3 Plaintext Data Key is then used to decrypt the object data. This object data is then sent back to the client.

Now let’s look at Server-Side Encryption with KMS Managed Keys, SSE-KMS. SSE-KMS allows S3 to use the key management service (KMS) to generate your data encryption keys. Using KMS gives you far greater flexibility of how your keys are managed. For example, you are able to disable, rotate, and apply access controls to the CMK, and audit against their usage using AWS Cloud Trail.

The encryption process is as follows. Firstly, a client uploads object data to S3. S3 then requests data keys from a KMS-CMK. Using the specified CMK, KMS generates two data keys, a plain text data key and an encrypted version of the same data key. These two keys are then sent back to S3. S3 then combines the object data and the plain text data key to perform the encryption. This creates an encrypted version of the object data which is then stored on S3 along with the encrypted data key. The plain text data key is then removed from memory.

For the decryption process, a request is made by the client to S3 to retrieve the object data, then S3 sends the associated encrypted data key of the object data to KMS. KMS then uses the correct CMK with the encrypted data key to decrypt it and create a plain text data key. This plain text data key is then sent back to S3. The plain text data key is then combined with the encrypted object data to decrypt it. This decrypted object data is then sent back to the client.

If you would like to learn more about other encryption available to use within S3 outside of the default encryption options, including Server-side encryption using customer-managed keys (SSE-C), Client-side encryption using KMS managed keys (CSE-KMS), Client-side encryption using customer-managed keys (CSE-C), then see our existing course here.



Introduction - Versioning - Server-Access Logging - Static Website Hosting - Object-Level Logging - Object Lock - Tags - Transfer Acceleration - Events - Requester Pays - Summary

About the Author
Learning Paths

Stuart has been working within the IT industry for two decades covering a huge range of topic areas and technologies, from data center and network infrastructure design, to cloud architecture and implementation.

To date, Stuart has created 150+ courses relating to Cloud reaching over 180,000 students, mostly within the AWS category and with a heavy focus on security and compliance.

Stuart is a member of the AWS Community Builders Program for his contributions towards AWS.

He is AWS certified and accredited in addition to being a published author covering topics across the AWS landscape.

In January 2016 Stuart was awarded ‘Expert of the Year Award 2015’ from Experts Exchange for his knowledge share within cloud services to the community.

Stuart enjoys writing about cloud technologies and you will find many of his articles within our blog pages.