-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding ClientEncryptionS3PinotFS #8933
Conversation
21fd4e2
to
c4776bd
Compare
...tem/pinot-s3/src/main/java/org/apache/pinot/plugin/filesystem/ClientEncryptionS3PinotFS.java
Outdated
Show resolved
Hide resolved
c4776bd
to
42bc816
Compare
...tem/pinot-s3/src/main/java/org/apache/pinot/plugin/filesystem/ClientEncryptionS3PinotFS.java
Outdated
Show resolved
Hide resolved
Weird that AWS Java SDK 2 doesn't have encryption based S3 client. The issue seems to be open from last 5 years - aws/aws-sdk-java-v2#34 |
42bc816
to
c5449b7
Compare
This also requires some refactor on the common utils for S3PinotFS as well. |
Right, so for the client-side encryption, we need to use new lib and write a new PinotFS implementation 🤦 |
c5449b7
to
f72ad06
Compare
Added some unit tests as well. |
63b7537
to
cd6ca03
Compare
Codecov Report
@@ Coverage Diff @@
## master #8933 +/- ##
============================================
- Coverage 70.39% 70.30% -0.10%
- Complexity 5694 5724 +30
============================================
Files 1991 1992 +1
Lines 107634 107907 +273
Branches 16361 16402 +41
============================================
+ Hits 75773 75868 +95
- Misses 26553 26710 +157
- Partials 5308 5329 +21
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
19c46dc
to
66b4254
Compare
a2860e6
to
66b4254
Compare
2e9ee80
to
85873f1
Compare
…ate a key itself and encrypt the object server-side
85873f1
to
7c5b03d
Compare
Close since no further actions. |
I recommend also looking into a key rotation strategy |
Not sure to understand why it didn't got merged ? The S3 plugin doesn't support AES 256 encryption currently right ? |
https://docs.amazonaws.cn/en_us/sdk-for-java/v1/developer-guide/examples-crypto-masterkey.html
To use client side encryption, you can specify either
kmsCmkId
which contains the id of the KMS key as the valueaesHexSecret
which contains a custom generated AES 256 key.The Filesystem for scheme
s3
also needs to be configured toorg.apache.pinot.plugin.filesystem.ClientEncryptionS3PinotFS
Example -
Controller conf for deep storage
Ingestion spec