Назад | Перейти на главную страницу

Разрешение исключений (белый список) через Google Cloud Platform IAP

В моем проекте GCP есть экземпляр, на котором запущен сервер Jenkins за ИПД-защищенный балансировщик нагрузки.

Добавление защиты IAP вызвало у меня две связанные проблемы, которые мне не удалось решить (и я думаю, что обе могут быть решены аналогичным образом):

  1. Раньше у меня был физический ведомый Jenkins (который должен быть физическим, поскольку он подключен к специальному оборудованию), который был подключен к облачному серверу Jenkins. Теперь, когда облачный сервер защищен IAP, локальное подчиненное устройство Jenkins больше не может подключиться к нему, поскольку подчиненное приложение JNLP не знает, как авторизоваться с помощью интерфейса входа в систему Google. (РЕДАКТИРОВАТЬ: В конце концов я решил эту конкретную проблему, создав туннель SSH для ведомого устройства непосредственно на серверную машину Jenkins.)

  2. Раньше у меня был репозиторий BitBucket-Cloud, POSTs на сервер Jenkins через функциональность веб-перехватчика BitBucket. BitBucket также не знает, как авторизоваться с помощью IAP, поэтому он тоже больше не работает.

Похоже, что Google поддерживает программная авторизация но в обоих случаях у меня нет программного контроля над сущностью, которая должна взаимодействовать с сервером Jenkins.

Есть ли способ обойти эту проблему? У меня есть несколько направлений, но я не уверен, как лучше всего это сделать / если это вообще возможно:

Что вы думаете? У вас есть идеи получше, проще и безопаснее? Может, мне не хватает очевидного способа сделать это? Я не смог найти в документации IAP ничего о том, как добиться чего-то подобного.

Итак, главный ответ здесь в основном то, что вам нужно. У меня есть отдельная небольшая виртуальная машина с обратным прокси-сервером Nginx, которая используется исключительно для обработки веб-перехватчиков. Он направляется в тот же сервер Jenkins, что и мой балансировщик нагрузки Google IAP.

Я использую GitHub для своих веб-перехватчиков, но полагаю, что он, вероятно, работает аналогично для Bitbucket.

На самом деле, у меня было бы задание Jenkins, которое запускалось бы периодически (ежедневно?), Которое возьмите записи CIDR отсюда и обновите правило брандмауэра для другого балансировщика нагрузки.