Вызов авторизованной конечной точки шлюза API от AWS лямбда-функции - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь определить лямбда-функцию, которая вызывает аутентифицированную конечную точку API-шлюза (authorizationType: AWS_IAM). Я уже создал политику:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "execute-api:Invoke",
                "execute-api:InvalidateCache"
            ],
            "Resource": "arn:aws:execute-api:*:<account_id>:*/*/*/*"
        }
    ]
}

И прикрепил политику к лямбде. Но ответ от вызываемой конечной точки уже 403 (запрещено). Думаю, мне нужно добавить в запрос несколько заголовков авторизации. Это пример лямбда-кода (ruby):

require 'httparty'
require 'json'
API_GATEWAY_URL = ENV["API_GATEWAY_URL"]
def lambda_handler(event:, context:)
  env = event&.dig("env")
  endpoint = event&.dig("enpoint")
  complete_url = "https://#{env}.#{API_GATEWAY_URL}/#{endpoint}"
  response = HTTParty.get(complete_url)
  p response.code
  p response.body
end

Кто-нибудь знает, как я могу действовать? спасибо

1 Ответ

0 голосов
/ 06 мая 2020

Вы проверяли, настроен ли шлюз API с ключом аутентификации?

если да, ваше приложение должно передать его через заголовок с ключом x-api-key

Конечная точка API с API аутентификации -Ключ выглядит так:

enter image description here

...