| Method | Who Manages Keys | HTTPS Required |
|---|---|---|
| SSE-S3 | AWS (fully) | No |
| SSE-KMS | AWS KMS (you control) | No |
| SSE-C | You (outside AWS) | Yes, mandatory |
| Client-Side | You (fully) | No |
"x-amz-server-side-encryption": "AES256"How it works:
You --> upload file --> S3 encrypts it using its own managed key --> stores encrypted file
You --> download file --> S3 decrypts it automatically --> you get the file
Key never leaves AWS. You never see or touch it.
Use when: You just want basic encryption with no key management overhead.
"x-amz-server-side-encryption": "aws:kms"How it works:
You --> upload file --> S3 asks KMS for a key --> KMS provides key
--> S3 encrypts file --> stores encrypted file
You --> download file --> S3 asks KMS to decrypt --> KMS decrypts
--> S3 returns file to you
Every encrypt/decrypt goes through KMS — that is why every action is auditable.