aws

http://status.aws.amazon.com/ https://www.expeditedssl.com/aws-in-plain-english
defa 2020-09-03T10:51:28.004Z

Is there some sort of encryption build into com.cognitect.aws/s3 like in Amazon’s AWS-SDK for Java? I need to encrypt data at rest. I can use a javax.crypto.CipherInputStream to encrypt data before passing it to the aws-client, though. But something well tested is preferable!

ghadi 2020-09-03T13:34:17.005Z

@defa I use "SSE KMS" to encrypt at REST -- https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html

ghadi 2020-09-03T13:34:34.005500Z

there's a few different ways to do this

defa 2020-09-03T13:39:46.006300Z

@ghadi and you use Cognitect’s AWS client? Because I can’t find any related documentation to do that.

ghadi 2020-09-03T13:40:12.006500Z

I am a maintainer for that client

ghadi 2020-09-03T13:40:55.007500Z

You need to figure out what you want to do though -- you can do encryption at rest with S3 without needing to encrypt on the client side (e.g. CipherInputStream, etc.)

ghadi 2020-09-03T13:41:43.007900Z

SSE Customer KMS SSE AWS KMS Client-Side Encryption

ghadi 2020-09-03T13:41:50.008100Z

^ the three main choices

defa 2020-09-03T14:30:21.009300Z

client-side encryption would be my choice

ghadi 2020-09-03T14:32:04.009800Z

if you do client side encryption, use something like Google Tink or libsodium to encrypt

ghadi 2020-09-03T14:32:19.010200Z

lots of ways to shoot yourself in the foot with java crypto

defa 2020-09-03T15:43:01.011Z

I’m using caesium right now which is a wrapper around libsodium.

defa 2020-09-03T15:43:38.011200Z

https://github.com/lvh/caesium

defa 2020-09-03T15:44:40.011800Z

Is there an example für SSE with customer KMS?

ghadi 2020-09-03T15:53:05.012100Z

caesium is great

ghadi 2020-09-03T15:53:27.012400Z

(I still prefer using KMS)