Заблокировано ли исходящее подключение к Google Secure LDAP из Cloud Run?

Вопрос или проблема

Я пытаюсь подключиться к службе Secure LDAP из Google Workspace из экземпляра Cloud Run.

Мне удалось создать клиент для службы Secure LDAP и подключиться к ней с моего локального компьютера.

Я также создал Docker-образ с небольшим веб-приложением, которое подключается к службе Secure LDAP. Оно отлично работает в локальной среде Docker.
(Небольшое веб-приложение написано на Python, а библиотека для подключения к LDAP — ldap3.)

Однако после развертывания образа в экземпляре Cloud Run подключение к Secure LDAP завершается по тайм-ауту.

Сообщение об ошибке из журналов Cloud Run

ldap3.core.exceptions.LDAPSocketOpenError: ('не удается открыть сокет', 
[(LDAPSocketOpenError('ошибка соединения сокета при открытии: время ожидания истекло'), 

Моя среда

  • Регион Cloud Run: asia-northeast1
  • Конечная точка Google Secure LDAP: ldap.google.com:636

Что я пробовал

  • Подтвердил, что это работает локально в контейнере Docker.
  • Проверил настройки сети Cloud Run:
  • Я НЕ использую VPC Connector.
  • Я НЕ настроил Cloud NAT.
  • Тестировал разные значения connect_timeout (5s, 10s, 30s).
  • Подтвердил, что моя служба Cloud Run имеет доступ в интернет, запустив curl https://www.google.com внутри контейнера.

Мой вопрос

Ограничено ли выходное подключение от экземпляра Cloud Run к службе Secure LDAP?
Мне нужен Cloud NAT или Private Google Access, чтобы это работало?

Ответ или решение

Подключение к службе Secure LDAP от Google Workspace из Cloud Run может вызвать ряд трудностей, что связано с особенностями архитектуры и сетевой инфраструктуры Cloud Run. Рассмотрим вашу ситуацию более подробно, чтобы ответить на вопрос, заблокированы ли исходящие соединения к Secure LDAP от Cloud Run, и требуется ли использование Cloud NAT или Private Google Access.

Теория

Сервис Cloud Run представляет собой серверless платформу, которая позволяет запускать контейнеры без необходимости управлять серверами. Поскольку Cloud Run работает в изолированной среде, существует ряд особенностей и ограничений, связанных с подключениями к внутренним ресурсам и внешнему интернету.

Secure LDAP — это протокол LDAP (Lightweight Directory Access Protocol) с TLS (Transport Layer Security), используемый для шифрования соединений. Это значит, что любые подключения к Google Secure LDAP происходят через защищенный порт 636.

Пример

С вашего локального устройства и в локальной Docker среде вам удалось успешно подключиться к Secure LDAP. Это говорит о том, что проблема, вероятно, кроется именно в сетевых настройках окружения Cloud Run.

  1. Обсуждение Cloud Run и Обратной Совместимости:

    Без использования VPC Connector или Cloud NAT Cloud Run предоставляет ограниченный доступ к внешним сетям. В вашем случае отсутствие указанных сервисов может означать ограниченный доступ к специфическим портам, таким как 636 для LDAP.

  2. Пример Ошибки:

    Ошибка, получаемая в Cloud Run, LDAPSocketOpenError: ('unable to open socket', [(LDAPSocketOpenError('socket connection error while opening: timed out')), свидетельствует о невозможности установить соединение. Это говорит о проблемах в маршрутизации или безопасности сети.

  3. Безопасность и Входящее Соединение:

    Если ваш Cloud Run соединяется с интернетом (например, через curl до https://www.google.com), это не гарантирует того, что соединение с нестандартным портом как 636 будет успешным. Обратите внимание, что доступ в интернет идёт через стандартный порт 80 и 443, а порты для LDAP — это 636, что может создавать преграды в случае специфических настроек сети.

Применение

Настройка Cloud NAT и Private Google Access:

  1. Cloud NAT (Network Address Translation):
    Если у вашего Cloud Run нет прямого доступа к интернету на уровне определенных портов, возможно стоит настроить Cloud NAT. Это позволит вашему Cloud Run выходить в интернет и выполнять необходимые соединения через выделенный IP, предоставляемый вашим проектом в Google Cloud, что может помочь обойти существующие ограничения доступа.

  2. Private Google Access:
    Это дополнительный настройка, который позволяет экземплярам, находящимся в приватных сетях, получать доступ к API и сервисам Google без необходимости выхода через публичные IP адреса. Если ваша настройка окружения позволяет использование VPC и вы хотите подключение к приватным ресурсам корпорации Google, это может быть подходящим решением.

  3. Итоговые рекомендации:

    • Рассмотрите возможность использования VPC Connector для создания приватного доступа к ресурсам Google;
    • Включите Cloud NAT для обеспечения надежного и стабильного выхода в интернет, что может быть критично для нестандартных портов;
    • Проверьте настройки межсетевых экранов и политик безопасности, которые могли бы блокировать необходимые порты для исходящих соединений вашего Cloud Run сервиса.

Ваша ситуация требует анализа и настройки инфраструктурных компонентов Cloud Run в отношении сетевых подключений. Описанные шаги и рекомендации должны помочь вам решить проблему с тайм-аутами при соединении с Google Secure LDAP.

Оцените материал
Добавить комментарий

Капча загружается...