#amazon-web-services #aws-api-gateway #amazon-vpc
#amazon-web-services #aws-api-gateway #amazon-vpc
Вопрос:
У меня есть общедоступный шлюз API AWS.
У меня есть сервер в VPC в том же регионе, что и этот шлюз API. Сервер не может получить доступ к конечным точкам этого шлюза API. Запросы к шлюзу зависают и время ожидания истекает. Сервер может получить доступ к шлюзам API в других регионах той же учетной записи AWS просто отлично.
Серверы в виртуальных машинах в других регионах могут получить доступ к шлюзу API просто отлично. Мой локальный компьютер может получить доступ к шлюзу просто отлично. Единственное, что не может получить доступ к шлюзу, — это сервер в том же регионе.
Что происходит?
Ответ №1:
Проблема в том, что VPC имеет конечную точку VPC, переопределяющую назначение execute-api.xxxxxxx.amazonaws.com с включенным частным DNS. Это происходит, когда вы следуете инструкциям по созданию частного API в API gateway. AWS не позволяет вам (легко) совмещать доступ к частным и общедоступным шлюзам API с одного и того же VPC.
Чтобы исправить это:
- Измените все ваши шлюзы в этом VPC на общедоступные
- Перейдите к VPC и удалите нарушающую конечную точку VPC (это та, которая переопределяет назначение «execute-api.xxx.amazonaws.com «)
В качестве альтернативы, переместите общедоступные API-интерфейсы на другой VPC.
Ответ №2:
Здесь подробно объясняется возможная проблема, которая может возникнуть при работе с общедоступными и частными конечными точками из VPC, когда для шлюза API создается целевая точка.
Ошибка в этой статье 403, похоже, описывает ситуацию, отличную от вашей, когда у вас есть тайм-аут. Тайм-аут может подсказать больше о некоторых ограничениях групп безопасности, но все же, возможно, это поможет любому, кто приходит сюда.
https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-vpc-connections/
https://repost.aws/questions/QUPy7Z53LOQc6xI9XS1ypnXg/access-public-apigateway-api-via-vpc-endpoint