Использование внешней базы данных PostgreSQL

При работе с Kaspersky Security для контейнеров вы можете использовать базы данных PostgreSQL в составе решения или собственные базы данных PostgreSQL. Для установки внешней базы данных PostgreSQL, которая не работает со схемой Kaspersky Security для контейнеров, требуется создать отдельного пользователя. Вы можете сделать это с помощью установки пакета Helm Chart с заданными параметрами схемы для внешней базы данных PostgreSQL.

Чтобы использовать внешнюю СУБД PostgreSQL:

  1. В конфигурационном файле values.yaml укажите следующее:

    --set default.postgresql.external="true"

    --set configmap.infraconfig.envs.postgres_host="<IP-адрес или FQDN СУБД PostgreSQL>"

    --set configmap.infraconfig.envs.postgres_port="<порт для подключения к СУБД PostgreSQL, по умолчанию используется порт 5432>"

    --set configmap.infraconfig.envs.postgres_db_name="<имя созданной администратором СУБД PostgreSQL базы данных, по умолчанию используется api>"

  2. Уточните у администратора СУБД PostgreSQL требования к проверке сертификатов сервера СУБД. Kaspersky Security для контейнеров поддерживает следующие режимы проверки:
    • --set configmap.infraconfig.envs.postgres_verify_level= "disable” – сертификат сервера не проверяется.
    • --set configmap.infraconfig.envs.postgres_verify_level= "require” – сертификат требуется, решение доверяет любому сертификату без дополнительных проверок.
    • --set configmap.infraconfig.envs.postgres_verify_level= "verify-ca” – сертификат требуется, решение проверяет, что сертификат выпущен доверенным удостоверяющим центром (англ. Certificate authority).
    • --set configmap.infraconfig.envs.postgres_verify_level= "verify-full” – сертификат требуется, решение проверяет, что сертификат выпущен доверенным удостоверяющим центром и содержит верный IP-адрес или FQDN.
  3. Если требуется проверять сертификат внешней СУБД PostgreSQL, выполните следующие действия:
    1. Загрузите открытую часть CA-сертификата в папку, в которой находится пакет Helm Chart, по маске certs/pgsql-ca.crt.
    2. Укажите следующий параметр проверки: --set configmap.infraconfig.envs.postgres_root_ca_path="/etc/ssl/certs/pgsql-ca.crt".
    3. Раскомментируйте блок secret.cert-pgsql-ca в конфигурационном файле values.yaml для создания секрета.

Чтобы создать пользователя с индивидуальной схемой для внешней базы данных PostgreSQL:

  1. Выполните следующую команду для создания отдельного пространства имен для внешней базы данных PostgreSQL:

    kubectl create ns kcspg

    где kcspg – пространство имен для внешней базы данных PostgreSQL.

  2. Выполните следующие действия для развертывания внешней базы данных PostgreSQL:
    1. Укажите параметры для развертывания внешней базы данных PostgreSQL в конфигурационном файле pg.yaml.

      Параметры для развертывания внешней базы данных PostgreSQL

      В параметрах задается пароль к базе данных. Этот пароль затем требуется указать в разделе infraconfig конфигурационного файла values.yaml, который входит в состав пакета Helm Chart в комплекте поставки решения.

    2. Выполните следующую команду:

      kubectl apply -f pg.yaml -n kcspg

    Название этой внешней базы данных формируется следующим образом:

    <имя_пода>.<название пространства имен>.<сервис>.cluster.local

    Например, postgres.kcspg.svc.cluster.local

  3. Выполните следующие действия для развертывания объекта Service в кластере:
    1. Укажите параметры для развертывания объекта Service в конфигурационном файле svc.yaml.

      Параметры для развертывания объекта Service в кластере

    2. Выполните следующую команду:

      kubectl apply -f svc.yaml -n kcspg

  4. Выполните следующие действия для создания пользователя, применяемой схемы и связи пользователя и схемы:
    1. С помощью развернутого в п.2b элемента postgres зайдите в под.
    2. Запустите интерактивный терминал psql с помощью следующей команды:

      psql -h localhost -U postgres -d api

    3. Выполните следующие команды:

      CREATE ROLE kks LOGIN PASSWORD 'kks' NOINHERIT CREATEDB;

      CREATE SCHEMA kks AUTHORIZATION kks;

      GRANT USAGE ON SCHEMA kks TO PUBLIC;

  5. В конфигурационном файле values.yaml укажите параметры для использования внешней базы PostgreSQL.

    Параметры в файле values.yaml

    Значения параметров, указанных в values.yaml, должны совпадать со значениями сходных параметров в конфигурационных файлах pg.yaml и svc.yaml.

  6. Запустите обновление решения.

    Пример выполнения команд для создания пользователя с внешней базой данных PostgreSQL

В начало