Skip to main content

Encryption

Server-side encryption is opt-in, and it is off until you turn it on. Two ways:
The Default encryption card on the bucket’s Settings tab is a switch and a Save. It sets the bucket default and nothing else — the console’s upload page has no encryption field, so encrypting a single object against a bucket with no default is API only.
The bucket default applies to writes that carry no header of their own — a per-request header wins over it. Only AES256 is supported; aws:kms and customer-provided keys are rejected with a clear error rather than being silently downgraded.
A multipart upload carries no encryption header of its own on each part: the decision is made when the upload is created and survives to the assembled object. Check ServerSideEncryption on a HEAD of the finished object, not on the create response.