Если у меня есть приложение GAE Flex, предназначенное только для внутреннего использования и не предназначенное для публичного использования, как лучше всего защитить его? По умолчанию домен * .appspot.com предоставляет общедоступную конечную точку HTTP / S.
Если я установил правило брандмауэра App Engine по умолчанию для явного запрета всего HTTP-трафика, как я могу получить доступ к приложению из других экземпляров GCE или других приложений GAE Flex в других проектах?
Я изначально думал, что редактируя app.yaml
файл для запуска экземпляра в частном VPC с собственными правилами брандмауэра GCE (с запретом на вход по умолчанию), но он по-прежнему разрешает внешний трафик из-за того, что запросы проходят через IP-адрес балансировщика нагрузки облака.
Следующий вариант, который я рассмотрел, - это Cloud IAP, который разрешает доступ к моему приложению только аутентифицированным пользователям и учетным записям служб. Это может сработать, но если мне нужно получить доступ к моему приложению из частного VPC без доступа к Интернету, это не сработает, если я правильно понимаю службу, поскольку запросы все равно должны будут приходить через HTTP.
Итак, что я могу сделать, чтобы гарантировать, что к движку приложения не будет никакого публичного доступа, но при этом внутренние ресурсы будут иметь к нему доступ?
Описание вашего варианта использования делает его подходящим для использования Брандмауэр App Engine:
Разрешить только трафик из определенной сети Убедитесь, что только определенный диапазон IP-адресов из определенных сетей может получить доступ к вашему приложению. Например, создайте правила, разрешающие только диапазон IP-адресов из частной сети вашей компании на этапе тестирования вашего приложения ...
Разрешить только трафик от определенного сервиса Убедитесь, что весь трафик вашего приложения App Engine сначала проходит через определенную службу.
Начиная с Разрешение запросов от ваших услуг есть инструкции по созданию правил межсетевого экрана.
При создании правил брандмауэра в движке приложений вы можете выбрать, какой IP-адрес разрешить или запретить доступ к вашему приложению. Необязательно запрещать весь HTTP-трафик для всех IP-адресов. Взгляните на Пример брандмауэра где создаются какие-то правила. Некоторые из них разрешают трафик на определенные IP-адреса, в то время как другие запрещают трафик и на другие IP-адреса: