S3 Data Encryption

  • Data protection refers to protecting data while in-transit and at rest.

  • You can protect data in transit using SSL/TLS or client-side encryption.

  • You have the following options for protecting data at rest in S3:

    • Server-Side Encryption:

      • Request S3 to encrypt your object before saving it on disks in its data centres and then decrypt it when you download the objects.

    • Client-Side Encryption:

      • Encrypt data client-side and upload the encrypted data to S3. In this case, you manage the encryption process, the encryption keys, and related tools.

Server-side Encryption

Server-side Encryption with S3-managed encryption keys (SSE-S3)

  • Each object is encrypted with a unique key.

  • As an additional safeguard, it encrypts the key itself with a master key that it regularly rotates.

  • It uses one of the strongest block ciphers available, AES-256, to encrypt your data.

Server-side Encryption using KMS CMKs (SSE-KMS)

  • It is similar to SSE-S3, but with some additional benefits and charges for using this service.

  • There are separate permissions for the use of a CMK that provides added protection against unauthorized access of your objects in S3.

  • It also provides you with an audit trail that shows when your CMK was used and by whom.

  • You can create and manage customer managed CMKs or use AWS managed CMKs that are unique to you, your service, and your Region.

Server-side Encryption with customer-provided encryption keys (SSE-C)

  • The customer manages the encryption keys and S3 manages the encryption, as it writes to disks, and decryption, when you access your objects.

Client-side Encryption

  • To enable client-side encryption, you have the following options:

    • Use a KMS CMK.

    • Use a master key that you store within your application.

Last updated

Was this helpful?