Защита сервиса в стандарте Google App Engine - PullRequest
0 голосов
/ 27 октября 2019

У меня есть две службы default и taskworker, которые развернуты в стандартной среде ядра приложения.

Я общаюсь по умолчанию с сотрудником задач через облачные задачи на нескольких открытых обработчиках HTTP. Например: background / check_emails.

У меня также есть задание cron, которое выполняется каждую минуту для background / check_emails.

Мои развертывания по умолчанию и Taskworker просты, например:

runtime: python37
service: taskworker

handlers:
- url: /background/.*
  script: auto
runtime: python37
handlers:
- url: /static
  static_dir: static/
- url: /favicon.ico
  static_files: static/img/favicon.ico
  upload: static/img/favicon.ico
- url: .*
  script: auto

Учитывая, что я хочу продолжить получать внешний трафик по умолчанию и ограничить трафик «рабочего» от всех, кроме 1) задания cron 2) http-запросов облачной задачи:

Какие у меня есть варианты?

ps: я не очень разбираюсь в брандмауэрах, и правила движка приложений для проекта, похоже, влияют на весь проект, я не знаю, как сделать брандмауэр на основе служб.

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Вы можете проверить несколько заголовков в вашем обработчике, чтобы убедиться, что запрос действительно из облаков задач.

https://cloud.google.com/tasks/docs/creating-appengine-handlers#reading_request_headers

X-AppEngine-QueueName - один из них, но выБолее подробную информацию можно найти в документе.

В документе конкретно сказано: «Если ваш обработчик запросов обнаружит какой-либо из перечисленных выше заголовков, он может доверять тому, что запрос является запросом облачных задач».

0 голосов
/ 29 октября 2019

На данный момент брандмауэр «на базе сервиса» не поддерживается для App Engine Standard, брандмауэр App Engine действует на все сервисы, входящие в ваше приложение, и не поддерживает гранулярность для каждого сервиса. .

Но есть запрос функции, перейдите по следующей ссылке , чтобы проверить ее статус, обратите внимание, что ETA или гарантия того, что это будет выполнено, отсутствует.

Как указано в общей ссылке на запрос запроса, текущий обходной путь будет состоять из миграции вашего приложения в гибкую среду App Engine и настройки соответствующих правил брандмауэра в сетях VPC экземпляров Compute Engine, где будет размещаться ваше приложение.

...