Peter Turcsanyi created NIFI-6734:
-------------------------------------

             Summary: S3EncryptionService fixes and improvements
                 Key: NIFI-6734
                 URL: https://issues.apache.org/jira/browse/NIFI-6734
             Project: Apache NiFi
          Issue Type: Bug
          Components: Extensions
            Reporter: Peter Turcsanyi
            Assignee: Peter Turcsanyi


I found some issues while I was setting up S3 encryption controller service.
 I think these should be addressed before the initial release of the CS.

Bugs:
 - multipart upload not works in case of SSE S3 encryption
 - multipart upload not works in case of CSE* encryptions

Code cleanup:
 - CSE CMK encryption strategy sets the KMS region, but it will not be used (as 
the key does not come from KMS, but will be specified by the client) => setting 
the KMS region is not necessary / misleading in the code
 - CSE* encryption strategies set the KMS region on the client, but the client 
needs the bucket region (which can be different than the KMS region) and it 
will be set later in the code flow => setting the KMS region on the client is 
not necessary / misleading in the code

Documentation enhancements:
 - 'Key ID or Key Material' property: document in the property description that 
it is not used (should be empty) in case of SSE S3, for other encryption types 
use the same names as in the Encryption Strategy combo (eg. 'Server-side 
Customer Key' instead of 'Server-side CEK')
 - 'region' property: add display name + description, document in the property 
description that it is the KMS region and is only used in case of Client-side 
KMS
 - documentation of PutS3Object and FetchS3Object should be separated: eg. 
FetchS3Object does not have 'Server Side Encryption' property referred in the 
docs and the controller service is not needed for fetching SSE S3 and SSE KMS 
encrypted objects
 - add 'aws' and 's3' tags to the CS
 - additionalDetails not linked properly (not accessible)

Renaming:
 - 'Client-side Customer Master Key' property value: CMK (Customer Master Key) 
is generally used for the client side encryption keys in the [AWS 
docs|https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html],
 regardless that the key provided by the client or stored in KMS. For this 
reason, 'Client-side KMS' vs 'Client-side Customer Master Key' is a bit 
confusing for me, I would use 'Client-side Customer Key' for the latter 
(similar to 'Server-side KMS' and 'Server-side Customer Key')
 - 'region' property: should be renamed to kms-region (to avoid confusion with 
the bucket region in the code)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to