S3 Multipart Download Using SSE-KMS

I am trying to write a utility using aws-java-sdk (1.11.230). I can write a file with SSE-KMS using PutObjectRequest as follows:

PutObjectRequest putRequest = new PutObjectRequest(existingBucketName, keyName, file)
                        .withSSEAwsKeyManagementParams(kmsKeyId);

but when I tried to load it into multipart, I could not find a way to specify the encryption configuration for SSE-KMS.

Can someone suggest a way to successfully pass this. Any suggestion would be appreciated.

Vikash wig

0
source share
2 answers

Finally, I can find a solution for this. This can be done by setting the headers in InitiateMultipartUploadRequest , as shown below:

InitiateMultipartUploadRequest initRequest = new
                InitiateMultipartUploadRequest(bucketName, keyName);
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption", "aws:kms");
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption-aws-kms-key-id", kmsKey);
0
source

You can also do this:

InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest("example-bucket", "textfile.txt");      SSEAwsKeyManagementParams kms = new SSEAwsKeyManagementParams("KMS-key-alias");
initRequest.setSSEAwsKeyManagementParams(kms);
initResponse = s3Client.initiateMultipartUpload(initRequest);
0
source

All Articles