Использование Google Cloud SQL БЕЗ сетевой авторизации - PullRequest
0 голосов
/ 27 июня 2018

Я использую Google Cloud PostgreSQL с моим django rest api, разработанным локально, и чтобы иметь возможность подключаться к базе данных, вам необходимо ввести IP-адрес, с которого вы хотите подключиться. Моя команда и я используем динамические IP-адреса, и мы должны каждый раз менять IP-адрес в облачном интерфейсе для подключения. Есть ли другой путь? Я хотел попробовать SSL, но это слишком сложно. Какие-нибудь мысли? Спасибо

Edit: Я пытаюсь использовать SSL, и это то, что я добавил в файл settings.py, но получаю сообщение об ошибке:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'HOST': '00.000.00.000',
    'NAME': 'dbname',
    'USER': 'username',
    'PASSWORD': 'mypassword',
    'OPTIONS': {
        'sslmode': 'require',
        'ssl': {
            'ca': 'certs/server-ca.pem',
            'cert': 'certs/client-cert.pem',
            'key': 'certs/client-key.pem'
            }
    },
}

}

Файлы ssl находятся в папке с именем certs, и эта папка находится в том же каталоге, что и файл settings.py.

Это ошибка, которую я получаю при запуске сервера:

django.db.utils.ProgrammingError: invalid dsn: invalid connection option "ssl"

1 Ответ

0 голосов
/ 01 июля 2018

Попробуйте использовать облачный прокси Это позволит использовать аутентифицированное соединение, однако вам не нужно беспокоиться об аспекте IP или аутентификации.

Использование облачного прокси-сервера - разрешает выделенное соединение с вашим экземпляром Cloud SQL (это аутентифицированное соединение). После правильной настройки просто укажите приложение на прокси-сервер, и весь трафик будет отправлен на внутренний экземпляр Cloud SQL.

Для бонусных баллов облачный прокси-сервер может быть настроен динамически с использованием метаданных ВМ для настройки среды. Я использовал его ранее с Terraform, где он указывал на конкретный экземпляр sql облака, и это экономит много усилий.

...