Недопустимые учетные данные для аутентификации AWS Lambda и SES через SMTP - PullRequest
0 голосов
/ 17 ноября 2018

Я использую безсерверный фреймворк, и я пытаюсь заставить свою лямбда-функцию отправлять электронную почту, используя сервис SES от Amazon.Я не думаю, что это так важно, но я использую PHP в оболочке node8 для своей лямбды.

  1. Я подтвердил адрес электронной почты в SES
  2. I 'Я получил разрешения на выполнение лямбда-роли для отправки электронной и обычной почты
  3. Я создал учетные данные SMTP, которые создают нового пользователя IAM, понимая, что эти учетные данные отличаются от учетных данных Vanilla AWS

Я предоставляю URL-адрес SMTP-соединения в своем коде, и после просмотра журнала он правильно извлекает пользователя / пароль и использует предоставленные учетные данные, порты и протокол.

535 Authentication Credentials Invalid

В журналах сообщается, чтоУчетные данные аутентификации недействительны.Я ищу понимание того, почему эти учетные данные считаются недействительными.Есть ли проблема с лямбда-ролью, предоставляющей учетные данные для пользователя, кроме его собственной роли?Я попытался делегировать отправку для созданного пользователя SMTP, чтобы этот пользователь мог отправлять электронные письма от имени подтвержденного адреса электронной почты в п. 1 выше.Я также попытался добавить политику для проверенной электронной почты в SES, которая позволяет роли lambda отправлять электронную почту от имени этой учетной записи, но политика электронной почты SES, похоже, не принимает лямбда-ARN.

Понимая, что мне нужно использовать конечную точку SMTP, кто-нибудь может дать несколько советов о том, как наилучшим образом преодолеть проблему неверных учетных данных?

  ...
  iamRoleStatements:
    # Allow the lambda function permission to create EINs, which is part of the
    # AWSLambdaVPCAccessExecutionRole
    - Effect: "Allow"
      Action:
        - "ec2:CreateNetworkInterface"
        - "ec2:DescribeNetworkInterfaces"
        - "ec2:DeleteNetworkInterface"
        - "ses:SendEmail"
        - "ses:SendRawEmail"
      Resource: "*"
    # end IAM role statements
   ...

И URL-адрес почтовой программы, который я использую для доступа к конечной точке SMTP, переменной средыв моей лямбде:

   MAILER_URL=smtp://email-smtp.us-east-1.amazonaws.com:587?encryption=tls&username=YOUR_SES_USERNAME&password=YOUR_SES_PASSWORD

Варь YOUR_SES_USERNAME и YOUR_SES_PASSWORD являются соответствующими сгенерированными SES учетными данными SMTP.

Хотя идеи, непосредственно ориентированные на мой конкретный подход, являются предпочтительными, ятакже открыты для идей об альтернативах.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...