роль выполнения лямбда против aws_iam

У меня есть бессерверное приложение, использующее федеративных пользователей когнитивного типа. Для шлюза api я использую авторизатор aws_iam и предоставляю учетные данные aws с каждым запросом к шлюзу api.

Теперь, когда моя лямбда выполняется, я предполагаю, что роль, назначенная моему пользователю когнито, будет использоваться, и у меня будет доступ к необходимым ресурсам. Но, похоже, у роли выполнения лямбда-выражения все еще должно быть разрешение на выполнение этих ресурсов.

Мне действительно нужно иметь 2 роли с одинаковым набором разрешений? Если да, то в чем смысл роли когнитора?


person Kamil.H    schedule 17.05.2018    source источник


Ответы (2)


Учетные данные IAM, которые вы передаете на шлюз API, оцениваются на уровне шлюза API (если вы добавите разрешение для роли IAM, предоставляющей доступ к определенной конечной точке, оно будет оцениваться на уровне aws_iam_authorizer).

Однако существует разрыв между предполагаемой ролью Cognito IAM и разрешением на выполнение Lambda.

Лямбда выполняется с использованием разрешения роли, прикрепленной к лямбда-функции, а не роли Cognito Identity IAM, которая, как предполагается, вызывает API.

person Ashan    schedule 17.05.2018

У меня по этому поводу похожий вопрос. У меня есть бессерверное приложение, в котором есть администраторы и обычные пользователи.

А лямбда-функция у меня запросы Dynamo. API Gateway передает токен пользователя, из которого я могу получить учетные данные (идентификатор, секрет, токен) и выполнить вызов Dynamo соответственно с учетными данными пользователя, который вызвал API (то есть администратора или обычного пользователя). У моих постоянных пользователей есть роль с политикой, разрешающей им доступ к своим данным только с использованием условия «Dynamodb: LeadingKeys». Пользователь с правами администратора может запрашивать что угодно в таблице.

В этом сценарии - если я всегда использую эти учетные данные из токена для вызовов динамо-машины, нужны ли для исполнительной роли Lambda разрешения динамо-машины? Если да, то какие учетные данные фактически используются при вызове динамо-машины? Роль выполнения Lambda или учетные данные из токена?

Если я получаю учетные данные из токена и использую эти учетные данные для запроса динамо-машины, я не уверен, зачем моей роли выполнения Lambda нужны привилегии динамо-машины.

person Mike    schedule 27.11.2018
comment
Может быть, я смогу задать этот вопрос более лаконично. Тем временем я нашел эту полезную статью: aws.amazon. ru / premiumsupport / knowledge-center /. Я не использую авторизатор пула пользователей. Я использую настраиваемый авторизатор токенов. Однако, если я использую учетные данные, содержащиеся в токене, для таких вещей, как чтение из динамо-машины, поиск содержимого в s3, нужны ли для роли выполнения лямбда права s3 ​​и динамо, или я могу вернуться с основной ролью выполнения лямбда, если я этого не сделаю? «использовать» его для доступа к этим сервисам? - person Mike; 27.11.2018