Подключение к Compute Engine из App Engine или CLoud Run с брандмауэром и IAP - PullRequest
0 голосов
/ 07 апреля 2020

У меня работает SFTP-сервер на Google Compute Engine. Брандмауэр настроен так, чтобы разрешить трафик c от прокси-сервера, поддерживающего Identity.

Я могу подключиться к службе с помощью gcloud ssh локально, но не могу подключиться из ядра приложения или из Cloud Run. Учетные записи службы для Cloud Run и App Engine уже имеют туннель IAP и разрешения Https.

Серверная часть записывается в Node с использованием ssh2-sftp-client .

Как можно Я защищаю Compute Engine и позволяю tcp traffi c из Cloud Run и App Engine на порт 22 на все еще go через?

1 Ответ

0 голосов
/ 07 апреля 2020

Существует два возможных обходных пути:

  • Если вы используете App Engine Standard , вы можете попробовать Бессерверный VP C Доступ :

    Бессерверный VP C Доступ позволяет подключаться из приложения App Engine напрямую к экземплярам Compute Engine VM , экземплярам Memorystore, Cloud SQL и любым другим ресурсам с внутренним IP-адресом .

    К сожалению, бессерверный VP C Доступ к Cloud Run недоступен (подробнее в документации Службы еще не поддерживаются ) на данный момент, но есть запрос на добавление в Google Publi c Issue Tracker, вы можете присоединиться, комментировать и отслеживать прогресс. Кроме того, такая услуга недоступна и для App Engine Flex.

  • Если вы используете App Engine Flex или Cloud Run , выполните следующие действия:

    1. резерв внешний статус c IP
    2. создать f1-micro экземпляр виртуальной машины с зарезервированным внешним IP-адресом (это, вероятно, подходит для Compute Engine свободный уровень )
    3. создать правило брандмауэра, разрешающее подключение к SFTP-серверу с зарезервированного внешнего IP
    4. создать прокси SOCKS, выполнив от имени sh клиент, который маршрутизирует трафик c через созданную виртуальную машину, как в этом примере
    5. настройка ssh2-sftp-client для использования SOCKS Proxy
    6. подключиться к SFTP
...