Как авторизовать вызовы APIGateway для лямбда-функции? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть шлюз API, подключенный к лямбда-функции. И в запросе метода для определенного метода POST я хочу, чтобы некоторые люди с ограниченным доступом могли вызывать этот метод.

Один из способов реализовать это - явно передать токен в теле запроса, который я могу предоставить каждому аутентифицированному пользователю, а затем проверить, присутствует ли токен в методе. Кроме того, я видел Authorization : AWS_IAM в деталях запроса метода.

Я новичок в AWS и не могу понять, как вызвать API с авторизацией AWS_IAM через внешнее приложение, используя URL-адрес, который мы получаем после развертывания API?

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Я предлагаю сделать это с помощью авторизаторов шлюза API и создать авторизатор Cognito, так как вы уже используете токен аутентифицированного пользователя, вы можете добиться этого с помощью:

  • Go в свой API шлюз выберите «Авторизаторы» в левом меню.
  • Нажмите «Создать авторизатор».
  • После нажатия «Создать авторизатор» у вас появится экран, показанный ниже, который даст вам возможность добавить существующего пользователя Cognito. пул и добавьте «Авторизация» в качестве источника токена.

    List item

    • После настройки вашего авторизатора вы сможете использовать возвращенный «idToken» от Cognito после аутентификации и передайте его в запросе API в качестве заголовка авторизации (токен BEARER).
    • Щелкните по своим ресурсам на шлюзе API и выберите лямбда-функцию, а в разделе «Запрос метода» вы сможете назначить свой создал авторизатор в (Настройки -> Авторизация).
1 голос
/ 27 мая 2020

Я хочу, чтобы некоторые люди с ограниченным доступом могли вызывать метод

Один из способов сделать это - с помощью ключей API :

Ключи API - это буквенно-цифровые c строковые значения, которые вы передаете клиентам-разработчикам приложений, чтобы предоставить доступ к вашему API .

В своем вопросе вы написали о «явной передаче токена в теле запроса», но было неясно, хотите ли вы реализовать такое решение самостоятельно или использовать решение, предоставленное API Gateway (т.е. API-ключи)

IAM-аутентификация для API-интерфейсов API Gateway потребует создания группы IAM или пользователей IAM для этих «ограниченных людей» в вашей AWS учетной записи. Общие шаги для этого описаны здесь:

...