Брандмауэр Google App Engine: ограничьте доступ ко всем службам, кроме службы по умолчанию.

У меня есть проект GAE (гибкий), состоящий из 1 по умолчанию и 2 подуслуг:

  • foo.appspot.com
  • service1.foo.appspot.com
  • service2.foo.appspot.com

Теперь я хочу использовать foo.appspot.com в качестве прокси-сервера API и шлюза аутентификации для внутренних служб service1 и service2. Сам прокси написал и работает нормально.

Я изо всех сил пытаюсь настроить брандмауэр GAE, чтобы запретить входящий мировой трафик на service1 и service2, потому что я хотел бы заставить пользователя API отправлять запросы на foo.appspot.com. Трафик к службе по умолчанию foo должен быть разрешен.

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

Спасибо за помощь!


person Sebastian    schedule 15.03.2018    source источник


Ответы (1)


Среда Flex движка приложений построена на Google Compute Engine и, следовательно, поддерживает Сетевая система виртуального частного облака. В сетях VPC вы можете настроить правила брандмауэра, которые будут использовать теги экземпляра для определения целевой или исходный компонент в правиле брандмауэра. Следовательно, вам просто нужно настроить файлы app.yaml целевой службы / версии для использования соответствующего теги экземпляра.

person oakinlaja    schedule 20.03.2018
comment
Замечательно! Могу ли я также использовать теги экземпляра в пользовательском интерфейсе брандмауэра Google App Engine? Кажется, он просто принимает диапазоны IP? - person Sebastian; 21.03.2018
comment
Брандмауэр App Engine - это урезанная версия брандмауэра VPC, который, к сожалению, не поддерживает фильтрацию по тегам экземпляра. В брандмауэре App Engine можно использовать только диапазоны IP-адресов. В этом блоге ссылка объясняется, как работает приложение Подробнее о Engine Firewall. - person oakinlaja; 21.03.2018
comment
У кого-нибудь действительно это работает? Пользовательский интерфейс предполагает, что к экземпляру AppEngine применено правило брандмауэра VPC, однако трафик не фильтруется. - person Henk Mollema; 19.12.2018
comment
Да, но приоритет правил VPC должен быть ниже 1000, иначе они не учитываются. См. stackoverflow.com/a/54421763/2298505 - person gvo; 29.01.2019
comment
Я до сих пор не заставил это работать. Я добавил networkinstance_tag: some-tag в свой app.yaml файл, но этот тег, похоже, даже не применяется к экземплярам, ​​что объясняет, почему мое правило брандмауэра, основанное на этом теге, не работает. Если я ищу экземпляры App Engine с моим тегом, я не могу найти ни одного: gcloud app instances list --filter="-tags.items=some-tag". Установка приоритета <1000 для моего правила VPC, как предлагалось выше, не помогла. Примечание. Мой сценарий немного отличался от сценария OP: я хотел ограничить доступ к экземпляру Compute Engine, чтобы разрешить только мои экземпляры App Engine. - person TanguyP; 14.05.2019