Можно ли использовать полностью управляемый сервис (Cloud Run или App Engine) с брандмауэром в GCP? - PullRequest
0 голосов
/ 09 ноября 2019

Проблема. Я ищу гибкий способ переместить контейнер докера (хранящийся в GCR.IO) в управляемую службу на GCP:

  • один контейнер докераgcr.io/project/helloworld с частными данными (скажем, облачным SQL-бэкендом) - не может встретиться с реальным миром.
  • набор IP-адресов, которым я хочу их предоставить: скажем, ["1.2.3.4", "2.3. 4.0 / 24 "].

Моя идеальная платформа будет работать в облачном режиме, но также работает GAE.

Я хочу развиваться гибким способом (скажем, развертываниес 2-3 строками кода), возможно ли запустить мой сервис тайно и все же супер легко? Мы не говорим об огромном производственном проекте, мы говорим о том, чтобы поиграть и написать POC, которым вы хотите безопасно поделиться через Интернет с несколькими друзьями, убедившись, что остальной мир получает 403.

То, что я пробовал до сих пор.

Единственное, что легко работает - это GCE vm с дружественной к докеру ОС (например, cos), где я могу настроить правила брандмауэра. Это работает, но это неудачное приложение-докер на одноразовой виртуальной машине. Машина работает вечно и умирает при перезагрузке, если я не стабилизирую ее при cron / запуске. Похоже, я делаю чужую работу.

Все остальное, что я пробовал до сих пор, провалилось:

  • Cloud Run . Удивительно, но не могу настроить правила брандмауэра для него или Cloud Director, .. кажется, работает только с IAP, который является болезненным для установки.
  • GAE . Работает с несколькими IP-адресами и не может отключать общедоступные IP-адреса или защищать их. Мне удалось получить IP-фильтрацию в приложении , но это кажется немного рискованным. Я не хочу доверять своим навыкам кодирования:
  • Cloud Armor . Поддерживает только балансировщик нагрузки HTTPS, которого у меня нет. И я не имею указаний на MIG. Я хочу простоты.
  • Traffic Director и мне нужен балансировщик HTTP L7. Но у меня есть докер-контейнер, на одной капсуле. Зачем мне LB?
  • GKE. На самом деле это, кажется, работает: [1], но это не полностью управляется (мне нужно создать кластер, pods, ..)

Это недостаток продукта или я смотрю на неправильные продукты? Какой самый простой способ добиться того, чего я хочу?

[1] как добавить правило брандмауэра в службу gke?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2019

Пожалуйста, ограничьте свой вопрос одной услугой. Не каждый является экспертом по всем облачным сервисам Google. У вас будет больше шансов получить хороший ответ для каждой службы, если они будут отдельными вопросами.

В целом, если вы хотите использовать Google Cloud Security Group для управления доступом на основе IP, вам нужно использовать службу, которая работаетна Compute Engine, поскольку группы безопасности являются частью набора функций VPC. App Engine Standard и Cloud Run не работают в VPC вашего проекта. Это оставляет вас с App Engine Flex, Compute Engine и Kubernetes.

Я бы изменил стратегии и использовал Google Cloud Run, управляемый аутентификацией. Доступ контролируется Google Cloud IAM через токены OAuth.

Обзор аутентификации при запуске в облаке

0 голосов
/ 11 ноября 2019

Я согласился с ответом Джона Хэнли, и я проголосовал за его ответ.

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

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

Пожалуйста, просмотрите другойВ сообщении «Ошибка сервера» [1] указано, как «ограничить доступ только одним IP-адресом».

https://serverfault.com/questions/901364/restrict-access-to-single-ip-only

...