I've been happily using AWS SES and Chilkat V 9.5.0 to send emails from our Web-sites for the past 2 years. AWS has now changed to using Signature V4 which relies on an IAM user. Has anyone got this working correctly?
From looking at the Com functions, I have included the following lines of code:
Code:
// Signature V4
Set ComPrecomputedSha256 of hoAuthAws to C_SES_Password
Set ComSignatureVersion of hoAuthAws to "AWS4"
I am getting the following error when I test with the Chilkat example, on the following line:
Code:
Get ComFullRequestFormUrlEncoded of hoRest "POST" "/" to sResponseXml
Error:
Code:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
The Canonical String for this request should have been
'POST
/
content-type:application/x-www-form-urlencoded
host:email.us-west-2.amazonaws.com
x-amz-content-sha256:eda47a4cbba1cd70d2f11e65c5b83bb67905f5e5239ded38fa1f0b294721fe51
x-amz-date:20210331T042521Z
content-type;host;x-amz-content-sha256;x-amz-date
eda47a4cbba1cd70d2f11e65c5b83bb67905f5e5239ded38fa1f0b294721fe51'
The String-to-Sign should have been
'AWS4-HMAC-SHA256
20210331T042521Z
20210331/us-west-2/ses/aws4_request
b7d9127f45423f023be8e5206eb882dc590c709d135d8dc3de69639e5c705842'
</Message>
</Error>
<RequestId>bd54d217-5889-4cbb-a177-1a01ba0e7698</RequestId>
</ErrorResponse>
I'd be grateful for any suggestions,
Ian