AWS SES - Учетные данные должны быть ограничены для корректного обслуживания: «электронная почта» - PullRequest
0 голосов
/ 09 марта 2020

Я пытался отправить электронное письмо с использованием платформы AWS SES. С AWS_SDK все работало нормально. Но с почтальоном я получаю сообщение об ошибке 403. Запрос Curl:

curl --location --request POST 'https://email.us-east-1.amazonaws.com' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Connection: Keep-Alive' \
--header 'Host: email.us-east-1.amazonaws.com' \
--header 'Authorization: AWS4-HMAC-SHA256 Credential=AKIAIB6NHZEPK5BBYAS5Q/20200309/us-east-1/execute-api/aws4_request, SignedHeaders=connection;content-type;host;x-amz-content-sha256;x-amz-date, Signature=accb18520388557c4e51e0647d53eea443b534e878dc16a673aedd09aa99a714' \
--data-urlencode 'Action=SendEmail' \
--data-urlencode 'Source=example@company.io' \
--data-urlencode 'Destination.ToAddresses.member=example1@company.io' \
--data-urlencode 'Message.Subject.Data=This%20is%20the%20subject%20line' \
--data-urlencode 'Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.'

Ответ об ошибке

<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
    <Error>
        <Type>Sender</Type>
        <Code>SignatureDoesNotMatch</Code>
        <Message>Credential should be scoped to correct service: 'email'. </Message>
    </Error>
    <RequestId>ba05a265-859b-4fd8-b4b3-2054f82b964b</RequestId>
</ErrorResponse>

Я был пытаясь захватить объект запроса AWS SDK, вот что я нашел.

{
    "uri": "https://email.us-east-1.amazonaws.com",
    "host": "email.us-east-1.amazonaws.com",
    "headers": {
        "Connection": "Keep-Alive",
        "Host": "email.us-east-1.amazonaws.com",
        "Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
        "Content-Length": 370,
        "X-Amz-Date": "20200309T053657Z",
        "Authorization": "AWS4-HMAC-SHA256 Credential=AKIAIB6NHZSSSEPK5BBYA5Q/20200309/us-east-1/ses/aws4_request, SignedHeaders=connection;content-length;content-type;host;x-amz-date, Signature=e45a557cf230939832e2b6ed155b443ed5ceaeb2ddee4dd9946ce69e54a84cec"
    },
    "body": "Action=SendEmail&AWSAccessKeyId=AK*******&Source=example@company.io&Destination.ToAddresses.member.1=example1@company.io&Message.Subject.Data=greetings&Message.Subject.Charset=UTF-8&Message.Body.Html.Data=your <b>message</b> goes here&Message.Body.Html.Charset=UTF-8&Message.Body.Text.Data=plain text&Message.Body.Text.Charset=UTF-8",
    "service": "ses",
    "method": "POST",
    "path": "/"
}

Я не знаю о службе пакета запроса.

...