I am attempting to create presigned urls's to documents for a client that will be downloading them via a browser. We are using aws kms signing.
After searching in vain for a way to generate these via the cli, I settled on using the java sdk using the example here. It generates a link but I get the following error.
<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>blah</RequestId>
<HostId>blah
</HostId>
</Error>
However, my profile has that specification:
[default]
region = us-west-2
output = json
s3 =
signature_version = s3v4
I'm not sure what other options I need to specify. I found a few options including setting the following and passing it to the client constructor:
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setSignerOverride("AWSS3V4SignerType");
To no avail. Any guidance would be greatly appreciated.