Page MenuHomePhabricator

Update SES API to use AWSv4 signatures
ClosedPublic

Authored by epriestley on Sep 15 2020, 4:15 PM.
Tags
None
Referenced Files
F14400431: D21461.diff
Sun, Dec 22, 7:41 PM
Unknown Object (File)
Fri, Dec 20, 8:53 PM
Unknown Object (File)
Tue, Dec 17, 9:24 PM
Unknown Object (File)
Mon, Dec 16, 4:15 AM
Unknown Object (File)
Thu, Dec 12, 11:15 PM
Unknown Object (File)
Fri, Dec 6, 6:59 AM
Unknown Object (File)
Thu, Dec 5, 4:41 AM
Unknown Object (File)
Wed, Dec 4, 2:39 PM
Subscribers
None

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
Branch
ses1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 24887
Build 34338: Run Core Tests
Build 34337: arc lint + arc unit

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.