Код ошибки SES AWS: SignatureDoesNotMatch, Код состояния: 403
Я получаю код ошибки AWS: SignatureDoesNotMatch, код статуса: 403 при попытке отправить почту через Amazon SES.
Я подтвердил, что использую правильные учетные данные, которые я создал с помощью https://console.aws.amazon.com/iam/home?#пользователи и ошибка все еще сохраняется.
Я предполагаю, что учетные данные, которые я создал в iam/home, на самом деле являются глобальными, но я не знаю, что я делаю неправильно дальше. Вся ошибка заключается в следующем:
Код ошибки AWS: Подпись не соответствует, Код статуса: 403, Запрос AWS Идентификатор: xxx, Тип ошибки AWS: клиент, Сообщение об ошибке AWS: Срок действия подписи истек: 20140314T031111Z теперь раньше, чем 20140317T15116Z (20140317T151111Z - 5 мин.), Агент пользователя: aws-sdk-php2/2.5.3 Жрать/3.8.1 завиток/7.22.0 PHP/5.3.10-1ubuntu3.10 добавлено/url/Vendor/Aws/Common/Exception/NamespaceExceptionFactory.php в режиме онлайн 91
Фактический код - это код, который я вытащил из: http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Ses.SesClient.html#_sendEmail
Я запускаю этот скрипт из своей локальной среды.
Где я смогу найти учетные данные, которые будут работать?
2 answers
Это похоже на проблему с перекосом часов. Время машины, с которой вы отправляете запрос, слишком отличается от времени сервера Amazon SES. Это приводит к тому, что ваша подпись становится недействительной. Ваши учетные данные, вероятно, в порядке. Исправьте часы вашего компьютера или синхронизируйте его с сервером NTP.
Наряду с этим решением я сделал следующее.
1) Я создал пользователя с политикой PowerUser в IAM. 2) Обновил секретный ключ/ключ доступа в моем коде.
Теперь это работает.
Не уверен, почему учетные данные SMTP (которые создаются в панели мониторинга SES) не работают.