Kaspersky Security для контейнеров

Создание пользователя для внешней базы данных PostgreSQL

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

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

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

    kubectl create ns kcspg

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

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

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

      apiVersion: apps/v1

      kind: Deployment

      metadata:

      annotations:

      deployment.kubernetes.io/revision: "1"

      labels:

      app: postgres

      component: postgres

      name: postgres

      namespace: kcspg

      spec:

      replicas: 1

      selector:

      matchLabels:

      app: postgres

      component: postgres

      strategy:

      type: Recreate

      template:

      metadata:

      creationTimestamp: null

      labels:

      app: postgres

      component: postgres

      spec:

      containers:

      - name: postgres

      image: postgres:13-alpine

      ports:

      - containerPort: 5432

      env:

      - name: POSTGRES_DB

      value: api

      - name: POSTGRES_USER

      value: postgres

      - name: POSTGRES_PASSWORD

      value: postgres

      volumeMounts:

      - mountPath: "/var/lib/postgresql/data"

      name: "pgdata"

      imagePullSecrets:

      - name: ci-creds

      volumes:

      - hostPath:

      path: "/home/docker/pgdata"

      name: pgdata

      В параметрах задается пароль к базе данных. Этот пароль затем требуется указать в разделе 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 в кластере

      apiVersion: v1

      kind: Service

      metadata:

      name: postgres

      spec:

      type: ClusterIP

      selector:

      component: postgres

      ports:

      - port: 5432

      targetPort: 5432

    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

    default:

    postgresql:

    external: true

    configmap:

    infraconfig:

    type: fromEnvs

    envs:

    POSTGRES_HOST: postgres.kcspg.svc.cluster.local

    POSTGRES_PORT: 5432

    POSTGRES_DB_NAME: api

    secret:

    infracreds:

    type: fromEnvs

    envs:

    POSTGRES_USER: kks

    POSTGRES_PASSWORD: kks

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

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

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

    export KUBECONFIG=/root/.kube/config

    export CHART_URL=repo.kcs.kaspersky.com

    export CHART_USERNAME=<CHART_USERNAME>

    export CHART_PASSWORD=<CHART_PASSWORD>

    export VERSION=2.0.0

    export KCS_HOSTNAME=kcs.apps.aws.ext.company.com

    export IMAGE_URL=company.gitlab.examplecloud.com:5050

    export IMAGE_USERNAME=<repo_user>

    export IMAGE_PASSWORD=<repo_pass>

    cd /tmp

    helm registry login --username $IMAGE_USERNAME --password $IMAGE_PASSWORD company.gitlab.examplecloud.com:5050/company/kcs/chart

    helm pull oci://company.gitlab.examplecloud.com:5050/company/kcs/chart/kcs --version $VERSION

    tar -xf kcs*.tgz -C /tmp

    cp -rf /tmp/values.yaml /tmp/kcs

    cd /tmp/kcs

    helm upgrade --install kcs-release --create-namespace --namespace kcs --values values.yaml --version $VERSION --timeout 30m --wait --debug .

В начало
[Topic 292954]