S3 Encryption Advance

  • 4 methods of encrypting object in S3
    • SSE-S3: encrypt using keys handled by AWS
    • SSE-KMS: use AWS KMS to manage encryption key
      • Advantage: user control and audit trail
      • Object is encrypted server side
      • Must set header x-amz-server-side-encryption: aws:kms
      • KMS will use GenerateDataKey and Decrypt since the object is > 4kb
    • SSE-C when you want to manage your own keys
    • Client Side Encryption
  • To protect our S3 bucket
    • Force SSL (Secure Sockets Layer): Pasted image 20221020085912.png
      • Specify a explicit DENY with condition aws:SecureTransport: false
    • Force encryption of SSE-KMS
      • Deny if the encryption header is not aws:kms
      • Deny if objects are uploaded unencrypted Pasted image 20221020090131.png