Я начал использовать AWS AppSync и столкнулся с проблемой разрешений.
Я использовал AppSync для создания таблицы DynamoDB для моих данных и настроил авторизацию для использования с Cognito User Pools, которые я уже создал.
Я установил действие по умолчанию на ALLOW
который в соответствии с документацией AWS - https://docs.aws.amazon.com/appsync/latest/devguide/security.html#amazon-cognito-user-pools-authorization - должен позволять публичному доступу запускать любой запрос / мутацию / подписку, определенный в моей схеме по умолчанию.
В приведенной выше документации также сказано, что ограничение доступа осуществляется путем добавления @aws_auth
к моим определениям типов.Который я еще не добавил.
И вот что я хочу: я хочу, чтобы мои запросы были общедоступными - не нужно добавлять директиву @aws_auth
- и мои мутации должны быть ограничены группой администраторов внутримой пул пользователей Cognito.Таким образом, при тестировании запроса я должен иметь возможность возвращать мне данные, не выполняя вход в систему.
Однако при попытке выполнить какие-либо тестовые запросы в консоли AppSync я получаю следующее сообщение об ошибке:
{
"errors": [
{
"errorType": "UnauthorizedException",
"message": "Unable to parse JWT token."
}
]
}
Очевидно, это связано с тем, что вы не вошли в Cognito.
Я уже тестировал эти запросы без использования авторизации Cognito, и все они работали нормально.И поскольку для моего авторизатора Cognito для моего действия по умолчанию установлено значение ALLOW
, мои запросы теперь должны выполняться точно так же, поскольку я их не изменял.
Просмотр кода для моих запросов, типов и распознавателейЯ не вижу никакой разницы в том, как они написаны.Роль IAM, разрешающая доступ к моей таблице DynamoDB, также остается прежней и к ней не применяются никакие ограничения.
Что происходит?Есть ли ошибка в AppSync, или я что-то здесь упускаю?
Пожалуйста, дайте мне знать.Спасибо