Amazon S3 will now encrypt all new data with AES-256 by default
bleepingcomputer.com
bleepingcomputer.com
> If that data had been encrypted, the leaks wouldn't have had nearly as dire consequences for the exposed individuals, but unfortunately, due to overhead costs, operational complexity, and performance sacrifices, database encryption is commonly avoided.
Ok, I consider myself semi-knowledgeable about these things and I use AWS for professional and personal projects but this confused me. Deciding to encrypt your S3 bucket only means encryption at rest right?. Of course you could encrypt your data before storing it in S3 but that's a different thing. This article seems to think that if encryption was on by default that public buckets wouldn't have leaked. If you set your bucket to public then AWS is going to decrypt your data on the fly when someone goes to ask for it right?
Or am I missing something?
I'd recommend changing from this article to the official announcement from AWS.
https://aws.amazon.com/blogs/aws/amazon-s3-encrypts-new-obje...
(from https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingE...) > Server-Side Encryption – Request Amazon S3 to encrypt your object before saving it on disks in its data centers and then decrypt it when you download the objects.
Yes it looks like it's at rest. It automatically decrypts if you go through S3 APIs to access the objects. The big leaks were due to S3 buckets being public which I believe means that this new encryption on by default won't actually help.
The only thing Encryption at rest gives you is comfort in knowing if Amazon servers get compromised - not if your servers that have permissions to pull the data get compromised.
With that said, it is a good step in the right direction. And additional security added helps address at least some use cases.
Nothing will help if the credentials that grant access to read the encrypted data are what's compromised.
Yes, it's a legitimate extra layer of security if you do what you're suggesting, but that's not what's occurring here, though it may be what's happening within AWS's own data centers. But again, let's not conflate the two.
From a customer's perspective: calling AWS will return the data unencrypted regardless of if this flag is on because AWS will decrypt before returning it, seamlessly. If the credentials allow access to the S3 bucket, that's that, and your data will still be compromised regardless if this feature is on or off.
If the leak was due to credentials leak would not help. But if the leak was because somebody accidentally made a server side object public AND you are using a KMS customer key then you have an additional layer of control required.
You can easily see that, if you make a server side encrypted object on S3 public, but you are using a KMS customer key, you will get a different message from the default decryption of the object granted by this new default...
You will get something like this
<Error>
<Code>InvalidArgument</Code>
<Message>
Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.
</Message>
<ArgumentName>Authorization</ArgumentName>
<ArgumentValue>null</ArgumentValue>
<RequestId>B24FYZDV760J6TK0</RequestId>
<HostId>
Xi2fLZvfHxu5VopeLIrP292lg7WMV5ubVaBVpFdlynjL6V08IbdEFWYJuYwQZdLP/cZF2USWdNg=
</HostId>
</Error>
This blog might help:
"How to use KMS and IAM to enable independent security controls for encrypted data in S3" - https://aws.amazon.com/de/blogs/security/how-to-use-kms-and-...
If I can't trust blobs in a landfill, I wouldn't trust blobs in a landfill that are decrypted by another blob in the same landfill. Just feels like smoke and mirrors that is purely about chasing CTOs and "CYA"-type decisions.
Some such vendors have a blanket destruction policy for old hardware, but this obviously means higher prices, so it's usually only borne by medical and military institutions. And there have been notable cases where this was supposed to happen but the disks ended up on eBay, unwiped, regardless.
SSDs make this even more likely because they have pools of storage which are screened off from normal access but are typically readable through special code in the firmware; as failing sectors are swapped out, sensitive plaintext can remain behind, unable to be wiped by a conventional dd-style blast. (HDDs have this too, but in much smaller quantities.)
I am surprised that drive manufacturers haven't built in encryption at rest though since it would be pretty easy to generate a key on first boot and then make it easy to wipe by just making a new key and thus essentially scrambling all the data on the disk instantly without having to wipe them at all.
I 100% agree there are security policies specified by regulations that make very little sense and this might satisfy them.
Azure Storage did it back in October, 2017 for new objects and retroactively applied it for existing objects too as a background process.
https://learn.microsoft.com/en-us/azure/storage/common/stora...
Google Cloud storage also has it available by default, but not sure if this was always the case.
[1]: https://cloudplatform.googleblog.com/2013/08/google-cloud-st...
1. S3 data events cost money and cannot be enabled “at no extra charge”
2. This wouldn’t have prevented the referenced leaks
3. The link to “how to re-encrypt objects on s3” goes to a horribly outdated and over complex solution. Use s3 batch operations.
This is a better link: https://aws.amazon.com/blogs/aws/amazon-s3-encrypts-new-obje...