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

Подготовка к установке решения

Перед установкой Kaspersky Security для контейнеров необходимо установить все обязательные для корпоративной сети сертификаты и настроить прокси-серверы.

Решение может развертываться в закрытом или открытом контуре корпоративной сети.

Перед установкой Kaspersky Security для контейнеров требуется обеспечить наличие следующих компонентов и доступов:

  • Виртуальной или физической машины с доступом в интернет и к кластеру.
  • Установленного менеджера пакетов Helm для упаковки, настройки и развертывания приложений и служб в кластерах.

    Kaspersky Security для контейнеров поддерживает Helm версии 3.10.0 или выше.

  • Доступа в интернет для скачивания пакетов Helm Chart.
  • Инструмента управления оркестратором, например, kubectl для Kubernetes или oc для Openshift.
  • Доступа к кластеру с помощью файла kubeconfig.

    Для установки решения в закрытом контуре корпоративной сети также требуется настроить репозиторий для образов контейнеров, обращающийся к репозиторию производителя Kaspersky Security для контейнеров с учетными данными, предоставленными производителем решения.

В этом разделе справки

Подготовка к установке в закрытом контуре корпоративной сети

Требования к сертификатам

В начало
[Topic 292927]

Подготовка к установке в закрытом контуре корпоративной сети

Чтобы подготовиться к установке решения в закрытом контуре корпоративной сети:

  1. Подключите Helm-репозиторий производителя, где находится пакет Helm Chart.

    export CHART_URL="xxxxxx"

    export CHART_USERNAME="xxxxxx"

    export CHART_PASSWORD="xxxxxx"

    export VERSION="xxxxxx"

    Значения CHART_URL, CHART_USERNAME, CHART_PASSWORD, VERSION предоставляются производителем.

    Пример подключения репозитория с Helm Chart

    helm registry login \

    --username $CHART_USERNAME \

    --password $CHART_PASSWORD \

    $CHART_URL

    helm pull oci://$CHART_URL/charts/kcs --version $VERSION

    tar xvf kcs-$VERSION.tgz

  2. Заполните файл с параметрами установки (values.yaml), который входит в комплект поставки решения, в соответствии с комментариями в этом файле.

    Мы не рекомендуем указывать данные учетных записей в файле values.yaml для использования при запуске пакета Helm Chart.

    Для управления секретами вы можете воспользоваться одним из следующих безопасных способов:

    • Использование CI/CD-систем. Секреты задаются с помощью защищенных переменных среды или встроенных механизмов управления секретами. При развертывании данные подставляются в Helm Chart динамически, их не требуется открыто указывать в конфигурационном файле values.yaml.
    • Интеграция с HashiCorp Vault. Helm Chart поддерживает интеграцию с хранилищем секретов HashiCorp Vault, в котором вы можете хранить секреты, а в values.yaml требуется указывать только пути к ним.

      Значения pull-secret для Docker Registry не могут полностью сохраняться в HashiCorp Vault. Мы рекомендуем указывать pull-secret вручную в разделе с параметрами кластера Kubernetes и ссылаться на него из Helm Chart.

    В файле values.yaml необходимо указать следующие основные параметры установки:

    • Название пространства имен.

      helm upgrade --install kcs . \

      --create-namespace \

      --namespace kcs \

      --values values.yaml \

    • Доменное имя Kaspersky Security для контейнеров для входящих соединений.

      --set default.domain="kcs.example.domain.ru" \

      При включенных сетевых политиках необходимо указать минимум одно пространство имен ингресс-контроллера кластера.

      --set default.networkPolicies.ingressControllerNamespaces="{ingress-nginx}" \

      По умолчанию сетевые политики включены.

    • Секреты компонентов решения.

      --set secret.infracreds.envs.POSTGRES_USER="user" \

      --set-string secret.infracreds.envs.POSTGRES_PASSWORD="pass" \

      --set secret.infracreds.envs.MINIO_ROOT_USER="user" \

      --set-string secret.infracreds.envs.MINIO_ROOT_PASSWORD="password" \

      --set-string secret.infracreds.envs.CLICKHOUSE_ADMIN_PASSWORD="pass" \

      --set secret.infracreds.envs.MCHD_USER="user" \

      --set-string secret.infracreds.envs.MCHD_PASS="pass" \

      Для обеспечения безопасности компонентам решения требуется использовать учетные данные, сгенерированные администратором системы самостоятельно в соответствии с корпоративными политиками безопасности. При развертывании целевого компонента в составе решения, указанные пользователь и пароль создаются автоматически. При использовании стороннего сервиса необходимо указать учетные данные пользователя и пароль, созданные администратором в этом стороннем сервисе.

    • Секреты доступа в репозиторий установки решения.

      --set pullSecret.kcs-pullsecret.username="user" \

      --set pullSecret.kcs-pullsecret.password="pass"

      Если вы планируете развертывание системы с использованием реестра "Лаборатории Касперского", необходимо указать учетные данные, переданные вам при покупке Kaspersky Security для контейнеров. Если вы планируете использовать частный реестр или прокси-реестр, требуется указать учетные данные вашего реестра.

    • Конфигурационные параметры хранилища секретов HashiCorp Vault:
      • enabled – флаг включения интеграции с хранилищем. Значение переменной vault.enabled = true указывает на то, что интеграция с HashiCorp Vault осуществлена, значения переменных окружения получаются из хранилища.
      • mountPath – путь до директории с секретами в хранилище.
      • role – роль, под которой будет осуществляться аутентификация в хранилище.

    Мы рекомендуем не менять состав основных параметров установки.

  3. В случае использования внешней СУБД PostgresSQL, укажите следующее:

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

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

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

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

    Также у администратора СУБД PostgresSQL необходимо уточнить требования к проверке сертификатов сервера СУБД. 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.

    Если требуется проверять сертификат внешней СУБД PostgresSQL, выполните следующие действия:

    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 для создания секрета.
  4. Сохраните файл с параметрами установки и переходите к установке решения.

В начало
[Topic 300052]

Требования к сертификатам

Для работы Kaspersky Security для контейнеров требуются SSL-сертификаты. Способ создания сертификатов при развертывании решения указывается в конфигурационном файле values.yaml в блоке default.certSource. Вы можете выбрать один из следующих способов создания сертификатов:

  • helm – способ, при котором решение автоматически создает необходимые сертификаты (используется по умолчанию).
  • vault – способ, который используется, если вы планируете интегрировать решение с внешним хранилищем HashiCorp Vault. Вам требуется сгенерировать все необходимые сертификаты и загрузить их в HashiCorp Vault.
  • files – способ для создания сертификатов вручную, например, с использованием корпоративного удостоверяющего центра. Скрипты для создания сертификатов вручную хранятся в папке "certs/" пакета Helm Chart решения.

    Созданные сертификаты должны соответствовать ожидаемому имени сертификатов в файле values.yaml в блоке secret. При необходимости вы можете раскомментировать и переопределить ожидаемые имена файлов сертификатов в блоке secret.

К сертификатам предъявляются следующие требования:

  • Длина ключа – 4096 бит RSA.
  • В поле CN указывается под компонента, к которому привязан сертификат (kcs-licenses, kcs-middleware, kcs-mw-grpc, kcs-panel, kcs-postgres, kcs-scanner, kcs-scanner-api, kcs-updates, kcs-memcached, kcs-ab, kcs-s3, kcs-clicklickhouse, kcs-eb).
В начало
[Topic 300053]