arithmetric / aws-lambda-ses-forwarder

Serverless email forwarding using AWS Lambda and SES
MIT License
1.7k stars 450 forks source link

AccessDenied, Could not make readable copy of email Error #132

Closed loadkrnis closed 3 years ago

loadkrnis commented 3 years ago

@arithmetric Hi, I think I made a mistake somewhere. But I've checked several times, but I can't find the cause. I'd appreciate your help.

this is my log

Response
{
  "errorType": "Error",
  "errorMessage": "Error: Step returned error.",
  "trace": [
    "Error: Error: Step returned error.",
    "    at /var/task/index.js:367:28",
    "    at processTicksAndRejections (internal/process/task_queues.js:97:5)"
  ]
}

Function Logs
<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:690:12)
      at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18) {
    code: 'AccessDenied',
    region: null,
    time: 2021-04-30T19:33:53.755Z,
    requestId: 'B5GKTKJ986A99MYK',
    extendedRequestId: '+r2a1QYtZ8O+fQFSedV5+vw4EbK8405gIHlnsh3Ma9/YJ4rCOSq+ouYfxzEsI9ZY4psPDlXPFRg=',
    cfId: undefined,
    statusCode: 403,
    retryable: false,
    retryDelay: 57.21190714210813
  },
  stack: 'AccessDenied: Access Denied\n' +
    '    at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:718:35)\n' +
    '    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\n' +
    '    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\n' +
    '    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:688:14)\n' +
    '    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)\n' +
    '    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)\n' +
    '    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10\n' +
    '    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)\n' +
    '    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:690:12)\n' +
    '    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)'
}
2021-04-30T19:33:53.834Z    9f17149b-042a-496b-8da6-b941db33a049    INFO    {
  level: 'error',
  message: 'Step returned error: Error: Could not make readable copy of email.',
  error: Error: Error: Could not make readable copy of email.
      at Response.<anonymous> (/var/task/index.js:174:11)
      at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:369:18)
      at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
      at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:688:14)
      at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
      at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:690:12),
  stack: 'Error: Error: Could not make readable copy of email.\n' +
    '    at Response.<anonymous> (/var/task/index.js:174:11)\n' +
    '    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:369:18)\n' +
    '    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\n' +
    '    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\n' +
    '    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:688:14)\n' +
    '    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)\n' +
    '    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)\n' +
    '    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10\n' +
    '    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)\n' +
    '    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:690:12)'
}
2021-04-30T19:33:53.834Z    9f17149b-042a-496b-8da6-b941db33a049    ERROR   Invoke Error    {"errorType":"Error","errorMessage":"Error: Step returned error.","stack":["Error: Error: Step returned error.","    at /var/task/index.js:367:28","    at processTicksAndRejections (internal/process/task_queues.js:97:5)"]}
END RequestId: 9f17149b-042a-496b-8da6-b941db33a049
REPORT RequestId: 9f17149b-042a-496b-8da6-b941db33a049  Duration: 1542.16 ms    Billed Duration: 1543 ms    Memory Size: 128 MB Max Memory Used: 89 MB  Init Duration: 435.12 ms

this is my lambda role policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": "ses:SendRawEmail",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::myS3Name/*"
        }
    ]
}

this is my s3 bucket policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GiveSESPermissionToWriteEmail",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::myS3Name/*",
            "Condition": {
                "StringEquals": {
                    "aws:Referer": "myAccountNumber"
                }
            }
        }
    ]
}

this is my config

var defaultConfig = {
  fromEmail: "noreply@mydns.com",
  subjectPrefix: "",
  emailBucket: "myS3Name",
  emailKeyPrefix: "emailbox/", // my folder in S3
  forwardMapping: {
    "ceo@mydns.com": [
      "myGmailId@gmail.com"
    ]
  }
};
karahan commented 3 years ago

Could you elaborate how you solved this issue?

afreisinger commented 2 years ago

Ihave the same problem