Содержание
Подготовка к установке решения
Перед установкой Kaspersky Security для контейнеров необходимо установить все обязательные для корпоративной сети сертификаты и настроить прокси-серверы.
Решение может развертываться в закрытом или открытом контуре корпоративной сети.
Перед установкой Kaspersky Security для контейнеров требуется обеспечить наличие следующих компонентов и доступов:
- Виртуальной или физической машины с доступом в интернет и к кластеру.
- Установленного менеджера пакетов Helm для упаковки, настройки и развертывания приложений и служб в кластерах.
Kaspersky Security для контейнеров поддерживает Helm версии 3.10.0 или выше.
- Доступа в интернет для скачивания пакетов Helm Chart.
- Инструмента управления оркестратором, например, kubectl для Kubernetes или oc для Openshift.
- Доступа к кластеру с помощью файла kubeconfig.
Для установки решения в закрытом контуре корпоративной сети также требуется настроить репозиторий для образов контейнеров, обращающийся к репозиторию производителя Kaspersky Security для контейнеров с учетными данными, предоставленными производителем решения.
Подготовка к установке в закрытом контуре корпоративной сети
Чтобы подготовиться к установке решения в закрытом контуре корпоративной сети:
- Подключите 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
предоставляются производителем. - Заполните файл с параметрами установки (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 –
роль, под которой будет осуществляться аутентификация в хранилище.
Мы рекомендуем не менять состав основных параметров установки.
- В случае использования внешней СУБД 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, выполните следующие действия:
- Загрузите открытую часть CA-сертификата в папку, в которой находится пакет Helm Chart, по маске
certs/pgsql-ca.crt
. - Укажите параметр проверки
--set configmap.infraconfig.envs.postgres_root_ca_path="/etc/ssl/certs/pgsql-ca.crt"
. - Раскомментируйте блок
secret.cert-pgsql-ca
в конфигурационном файле values.yaml для создания секрета.
- Сохраните файл с параметрами установки и переходите к установке решения.
Требования к сертификатам
Для работы 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
).