AWS: политика пользователя IAM для SES не работает

Я пытаюсь запустить следующий код PHP на моем сервере:

require 'aws_sdk_php/aws-autoloader.php'; use Aws\Ses\SesClient; echo 'teste1'; $client = SesClient::factory(array( 'key' => 'xxxxx', 'secret' => 'yyyyy', 'region' => 'us-east-1' )); echo 'teste2'; echo $client->listIdentities(); echo 'teste3'; echo $client->verifyEmailIdentity(array( 'EmailAddress' => 'my_email@gmail.com' )); 

Я создал пользователя с разрешением на отправку писем с помощью SMTP (ses: SendRawEmail), и он работает нормально. Однако вызовы «listIdentities» и «verifyEmailIdentity» работают только при предоставлении разрешения на полный доступ SES или использовании полных учетных данных для учетной записи.

Если я добавлю к одному и тому же пользователю только «ses: ListIdentities» и «ses: VerifyEmailIdentity», я получаю ошибку 403, указывающую, что подпись не соответствует. Кто-нибудь знает, что происходит? Должен ли я добавлять другие разрешения / политики для предоставления доступа к этим вызовам?

Я также использовал эти разрешения для симулятора политики IAM, и они прошли, когда они были установлены, но после того, как я их удалил, я получил «отказ».

Благодаря!


Обновление: в соответствии с этим кодом ошибки SES AWS: SignatureDoesNotMatch, код состояния: 403 MAYBE Исправление: я должен настроить время на моем сервере EC2, но как я могу узнать, какое время он занимает на серверах SES, поскольку у меня нет доступа им?


Update2: Не похоже на случай разного времени, так как я запускал код на сервере в Северной Вирджинии и получал те же результаты. Разрешения, переданные на тренажере. Какие-либо предложения?

[…] МОЖЕТ исправить это, я должен настроить время на моем сервере EC2, но как я могу узнать, какое время он занимает на серверах SES, так как у меня нет доступа к ним?

«Перекос часов», упомянутый в ответе Джереми Линдблома, означает, что время на вашем сервере недостаточно синхронизировано с координированным универсальным временем (UTC) после вычитания смещения временной зоны, то есть вам не нужно знать время на серверах SAS Amazon (что, скорее всего, просто UTC, хотя), а просто убедитесь, что ваша собственная система синхронизирована с UTC тоже (независимо от того, в какой часовой зоне вы находитесь) – см. мой ответ для синхронизации локального времени Debian с амазонами Debian (RDS) MDT до UTC более подробную информацию по этому вопросу и способы его устранения для Debian / GNU или. Система Ubuntu:

[…] Это легко устранить, установив демон сетевого протокола (NTP) , чтобы автоматически установить время, как описано в DateTime Debian, которое сводится к sudo apt-get install ntp и редактированию /etc/ntp.conf для целевой более локальные источники NTP-сервера для достижения оптимальных результатов.