Отказ во всех IP-адресах в брандмауэре движков приложений, за исключением связи между внутренними службами в проекте

# #google-app-engine

Вопрос:

Допустим, у нас есть четыре службы в рамках проекта App Engine. Мы хотим заблокировать весь входящий трафик, но мы хотим, чтобы эти четыре службы взаимодействовали. Чтобы заблокировать трафик, мы просто устанавливаем правило брандмауэра по умолчанию, запрещающее все IP-адреса. Однако это правило также блокирует внутренний трафик между нашими службами, поэтому службы блокируются. Как мы можем легко внести в белый список наши внутренние службы (используя стандартную среду) ?

Комментарии:

1. В этом документе упоминается, что позволяет 0.1.0.40/32 , но при использовании выборки URL. Я не уверен, работает ли это с более новыми средами выполнения, можете ли вы попробовать это?

Ответ №1:

Существует два сценария :

  1. Если четыре службы в проекте App Engine находятся в одной и той же сети VPC (сеть по умолчанию/автоматический режим),

    По умолчанию у вас есть следующие подразумеваемые правила :

  • Default-allow-internal — что помогает коммуникации между службами в одном и том же VPC в одном и том же проекте. Позволяет подключаться ко всем протоколам и портам между экземплярами в сети. Это правило имеет от второго до самого низкого приоритета 65534, и оно эффективно разрешает входящие подключения к экземплярам виртуальных машин от других пользователей в той же сети. Это правило разрешает трафик в 10.128.0.0/9 (с 10.128.0.1 по 10.255.255.254), диапазон, который охватывает все подсети в сети.
  • Implied ipv4/ipv6 deny ingress — Правило входа, действие которого по умолчанию-запретить, источник ::/0, а приоритет-минимально возможный (65535), защищает все экземпляры, блокируя входящие подключения к ним.
  • Implied ipv4/ipv6 allow egress — Правило выхода, действие которого разрешено, пункт назначения ::/0, а приоритет является минимально возможным (65535), позволяет любому экземпляру отправлять трафик в любое место назначения, за исключением трафика, заблокированного Google Cloud.

    Таким образом, если вы используете сеть VPC по умолчанию и все ваши службы находятся в одной сети, у вас уже есть внутренняя связь между службами по умолчанию и запрещенный входящий трафик.

  1. Если четыре службы в проекте App Engine находятся в разных сетях VPC, вы можете использовать элементы управления входом.

    По умолчанию ваше приложение App Engine получает все HTTP-запросы, отправляемые на его URL-адрес appspot или в пользовательский домен, настроенный для вашего приложения. Вы можете использовать элементы управления входом в сеть для ограничения трафика, чтобы ваше приложение получало HTTP-запросы только из определенных источников :

  • All : По умолчанию. Ваше приложение будет получать весь трафик, включая прямые запросы, отправленные из Интернета.
  • Internal and Cloud Load Balancing : Ваше приложение будет получать только запросы, которые направляются с помощью балансировки нагрузки в облаке или отправляются из сетей VPC в том же проекте. Все остальные запросы отклоняются с ошибкой 403.
  • Internal-only : Ваше приложение будет получать только запросы, отправленные из сетей VPC в том же проекте. Все остальные запросы отклоняются с ошибкой 403

Вы можете изменить элемент управления входом по умолчанию для вашего проекта App Engine и установить internal-only для него значение, позволяющее приложению получать запросы от служб в разных сетях VPC, но внутри одного и того же проекта App Engine. Вот как вы можете редактировать параметры входа для своего проекта App Engine.