AWS API Gateway аутентификация + авторизация

Я создал конечную точку в API Gateway и пытаюсь реализовать разные уровни авторизации на основе политик. До сих пор я создал 2 группы пользователей cognito ('user' и 'admin') и установил роль пользователя arn для политики пользователя IAM arn, а роль администратора arn для администратора политики IAM arn.

Пользовательская политика выглядит следующим образом (ради теста они ничего не могут вызвать):

"Effect": "Deny", "Action": "execute-api:*", "Resource": "arn:aws:execute-api:eu-west-1:xxxx/*/GET/user/*"

Политика администратора выглядит следующим образом (администратор должен иметь возможность вызывать GET /user/blabla:

"Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:eu-west-1:xxxx:xxxx/*/GET/user/*" ]

После настройки политик и групп пользователей и групп cognito я создал авторизатор пула пользователей cognito в API Gateway и установил авторизатор на всех конечных точках (Resources --> select your resource --> Method Request --> Authorization).

Пока все хорошо (о боже... дерьмо собирается ударить по фанату;))! Я попытался вызвать конечные точки с помощью Postman после того, как я получил idToken из Cognito для, скажем, пользователя A, который является членом группы пользователей. Этот пользователь вообще не должен вызывать какую-либо конечную точку, но это не работает. Когда я не устанавливаю Authorization заголовок я получаю ожидаемый Not authorized сообщение. Когда я декодирую токены JWT, я могу подтвердить, что роли соответствуют ожидаемым. По сути, я чувствую, что аутентификация работает, но роли не проверяются автоматически (авторизация).

И как всегда, документация AWS + поддержка довольно плохи (очень вежливо сказать, что это просто ужасно). Так может кто-нибудь пролить свет на эту тему?

0 ответов

Другие вопросы по тегам