Page MenuHomePhabricator

Update SES API to use AWSv4 signatures
ClosedPublic

Authored by epriestley on Sep 15 2020, 4:15 PM.

Details

Summary

Ref T13570. Fixes T13235. In most cases, we use modern (v4) signatures for almost all AWS API calls, and have for several years.

However, sending email via SES currently uses an older piece of external code which uses the older (v3) signature method.

AWS is retiring v3 signatures on October 1 2020, so this pathway will stop working.

Update the pathway to use PhutilAWSFuture, which provides v4 signatures.

T13235 discusses poor error messages from SES. Switching to Futures fixes this for free, as they have more useful error handling.

Test Plan
  • Configured an SES mailer, including the new region parameter.
  • Used bin/mail send-test to send mail via SES.
  • Sent invalid mail (from an unverified address); got a more useful error message.
  • Grepped for removed external, no hits.

Diff Detail

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Harbormaster returned this revision to the author for changes because remote builds failed.Sep 15 2020, 4:17 PM
Harbormaster failed remote builds in B24886: Diff 51071!
This revision was not accepted when it landed; it landed in state Needs Review.Sep 15 2020, 8:03 PM
This revision was automatically updated to reflect the committed changes.