Запретить ответ от шлюза API, если IP-адрес не включен в белый список - PullRequest
0 голосов
/ 01 апреля 2020

Контекст

Я использую политику ресурсов для внесения в белый список IP-адресов, которые могут вызывать мои API, управляемые с помощью API Gateway.

Моя политика ресурсов выглядит следующим образом

Resource policy on API Gateway

Когда я пытаюсь вызвать API с IP-адреса, которого нет в белом списке, Я получаю ответ API, как это -

{
    "Message": "User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-sou*******-*:************:*****/*****/**/******"
}

Проблема

Я бы предпочел вообще не отображать сообщение об ошибке, когда IP-адрес отсутствует в белом списке .

Ожидаемый результат

Как изменить ответ, чтобы отображать только сообщения об ошибках для IP-адресов, занесенных в белый список? Для IP-адресов, которых нет в белом списке, ответа не должно быть. Аналогично тому, что делают экземпляры EC2, когда IP-адрес не занесен в белый список и время ожидания истекло.

EDIT : есть еще один вопрос с похожей проблемой - AWS API Gateway изменить сообщение об отказе в доступе из политики ресурса

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

1 Ответ

1 голос
/ 02 апреля 2020

Поскольку у людей в комментариях есть предложение, вы можете рассмотреть возможность использования Gateway Response , чтобы упростить ответ практически до нуля, заставив его вернуть что-то вроде {}.

Другой подход, который следует рассмотреть если вы хотите, чтобы аналогичные ответы от экземпляров EC2 были бы , а не , используйте API-шлюз и используйте Application Load Balancer в качестве прокси-сервера. Я не уверен, какой тип интеграции вы используете с API-шлюзом, но ALB позволяют вам маршрутизация трафика c в Lambdas , маршрутизация трафика c в экземпляры EC2 или переадресация / переадресация трафика c на другие конечные точки HTTP , поэтому это решение будет работать для этих типов интеграций. Затем вы можете настроить группы безопасности на ALB так, чтобы трафик c разрешался только из подсетей, занесенных в белый список, и любые другие пользователи, которые пытаются делать запросы, будут просто зависать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...