Как проверить, подписаны ли запросы AWS SES API с использованием подписи версии 4

#php #laravel #amazon-web-services #amazon-ses

#php #laravel #amazon-веб-сервисы #amazon-ses

Вопрос:

Электронное письмо от Amazon AWS гласит:

Начиная с 1 октября 2020 года Amazon SES будет поддерживать запросы, подписанные только с использованием Signature версии 4.

Вы можете легко идентифицировать запросы API, использующие Signature версии 3, просмотрев заголовки запросов. Запросы, использующие подпись версии 3, похожи на следующий пример: X-Amzn-Авторизация: AWS3-HTTPS AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Алгоритм=HMACSHA256, подпись=lBP67vCvGl …

У меня установлен «aws / aws-sdk-php» через composer.
Я пытаюсь выяснить, является ли заголовок запроса SES подписью версии 3 или 4.

Я попытался сбросить содержимое IlluminateMailEventsMessageSent через $event->message->getHeader() , которое является Swift_Mime_SimpleHeaderSet объектом.
Тем не менее, он не включает версию запроса в SES sdk.

ВОПРОС:
Не мог бы кто-нибудь, пожалуйста, сказать мне, как сбросить исходящий запрос aws ses sdk, чтобы я мог видеть в заголовке, какая версия используется. Спасибо.

Ответ №1:

Если кому-то интересно, наконец-то удалось сделать это путем обратной трассировки стека.
После отправки почты с помощью команды я отследил стек и смог увидеть необработанный запрос, который включал Authorization: AWS4-HMAC-SHA25 подтверждение подписи версии 4.

 Mail::to($receiver)->send($mailable);
dump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 50));
  

Убедитесь, что для параметра ses service debug установлено значение true:
config/services.php

    'ses' => [
        'key'    => env('SES_KEY'),
        'secret' => env('SES_SECRET'),
        'region' => 'us-west-1',
        'debug'  => true,
    ],
  

Комментарии:

1. Я должен проверить то же самое, но на ruby on rails вы знаете, как проверить в ruby @MPS

2. @sunil Я не знаком с Ruby, извините. Если вы не можете найти ответ здесь, на StackExchange, возможно, попробуйте запросить на сервере Ruby Discord, я слышал, что он активен.