Skip to main content

S3 Encryption Mechanisms

Updated Jul 26, 2020 ·
NOTES

This is not an exhaustive documentation of all the existing AWS Services. These are summarized notes that I used for the AWS Certifications.

To see the complete documentation, please go to: AWS documentation

Overview

Depending on your requirements, one method of encryption may be more appropriate than another. Here are the available encryption mechanisms for your Amazon S3 Buckets:

  • Server-side encryption with S3 managed keys, SSE-S3

    • Requires minimal configuration
    • Management of encryption keys used are managed by AWS
    • Just upload your data and S3 will handle all other aspects.
  • Server-side encryption with KMS managed keys, SSE-KMS

    • Allows S3 to use the key management service to generate your data encryption keys
    • KMS gives you a far greater flexibility of how your keys are managed
    • You are able to disable, rotate, and apply access controls to the CMK
    • You can also audit keys against their usage using AWS CloudTrail.
  • Server-side encryption with customer provided keys, SSE-C

    • Provide your own master key that you may already be using outside of AWS
    • Customer-provided key would then be sent with your data to S3
    • S3 would then perform the encryption for you
  • Client-side encryption with KMS, CSE-KMS

    • Like SSE-KMS, CSE-KMS uses KMS to generate your data encryption keys
    • But KMS is called upon via the client, not S3
    • Encryption takes place client-side and encrypted data is sent to S3 to be stored
  • Client-side encryption with customer provided keys, CSE-C

    • Able to utilize your own provided keys and use an AWS-SDK client to encrypt your data before sending it to S3 for storage. -