Для справки в будущем:
Я нашел свой ответ. У меня нет времени копать намного глубже. Это было связано с разрешениями моей пользовательской функции авторизации, которая не позволяла конкретному Арну проходить, даже если он его настраивал. Так что все, что я сделал, - это поставил «*», а не конкретные аргументы для функций.
const generatePolicy = (principalId, effect, resource) => {
const authResponse = {};
authResponse.principalId = principalId;
if (effect && resource) {
const policyDocument = {};
policyDocument.Version = "2012-10-17";
policyDocument.Statement = [];
const statementOne = {};
statementOne.Action = "execute-api:Invoke";
statementOne.Effect = effect;
statementOne.Resource = resource;
policyDocument.Statement[0] = statementOne;
authResponse.policyDocument = policyDocument;
}
return authResponse;
};
и назвал это так
generatePolicy(val.id, "Allow", "*")
вместо передачи метода Arn
const { authorizationToken, methodArn } = event;
generatePolicy(val.id, "Allow", methodArn)
Не самый безопасный, но я исправлю это позже.