Запускайте функции Google Cloud из Google Cloud Scheduler с помощью безопасности частной сети

Запускайте функции Google Cloud из Google Cloud Scheduler с помощью безопасности частной сети

Google Cloud Scheduler можно использовать для обращения к конечной точке http, связанной с функцией Google Cloud, чтобы вы могли запустить свою функцию по таймеру/планировщику. У облачных функций есть два варианта их раскрытия: (1) разрешить весь трафик или (2) разрешить только внутренний трафик (разрешен только трафик из того же проекта или периметра VPC SC). Я хотел бы сделать последнее, но планировщик не может получить к нему доступ с HTTP 403.

Если он открыт для всего трафика, то кому-то остается только угадать мой URL, и он может запускать его столько раз, сколько пожелает. Теперь, конечно, я могу поместить аутентификацию в свою функцию и заставить Scheduler передать соответствующий заголовок, но моя функция не опасна для кого-то другого, кто может ее запустить. Однако, если кто-то другой может ее запустить, он может вызывать ее столько раз, сколько захочет, и даже с аутентификацией все равно будут взиматься сборы за все эти вызовы. Я хочу убедиться, что никто другой, кроме Scheduler (в идеале), не сможет даже получить доступ к URL, чтобы он не запускался, кроме как по моему расписанию. Есть ли способ сделать это возможным?

решение1

Согласно официальной документации:

Для использования Cloud Scheduler ваш проект Cloud должен содержать приложение App Engine, расположенное в одном из поддерживаемых регионов. Если в вашем проекте нет приложения App Engine, вы должны его создать.

Обзор облачного планировщика

Поэтому найдите местоположение вашего приложения App Engine, выполнив:

gcloud app describe
#check for the locationId: europe-west2

Затем убедитесь, что вы развернули свою облачную функцию с настройками Ingress, равными «Разрешить только внутренний трафик», в том же месте, где находится ваше приложение App Engine.

Я развернул облачную функцию в том же регионе, что и мое приложение App Engine, и все заработало так, как и ожидалось.

Связанный контент