Contenido
Conexión con recursos externos de almacenamiento de datos
Además de los componentes de Kaspersky Container Security incluidos en el kit de distribución, la solución también puede trabajar con los siguientes recursos externos de almacenamiento de datos:
- Base de datos de PostgreSQL
- DBMS ClickHouse
- Almacenamiento de archivos MinIO compatible con S3
La conexión con recursos de almacenamiento de datos externos se configura mediante el archivo de configuración values.yaml.
Crear un usuario para una base de datos externa de PostgreSQL
En Kaspersky Container Security, puede usar las bases de datos de PostgreSQL incluidas en la solución con su propia base de datos de PostgreSQL. Para instalar una base de datos de PostgreSQL externa que no funcione en un esquema con Kaspersky Container Security, debe crear otro usuario. Para ello, puede instalar el paquete de Helm Chart con los parámetros del esquema especificados para la base de datos de PostgreSQL externa.
Para crear un usuario con un esquema personalizado para una base de datos de PostgreSQL externa:
- Ejecute el siguiente comando para crear un espacio de nombres independiente para la base de datos de PostgreSQL externa:
kubectl create ns kcspg
donde
kcspg
es el espacio de nombres de la base de datos de PostgreSQL externa. - Para desplegar una base de datos de PostgreSQL externa:
- Especifique en el archivo de configuración pg.yaml los parámetros para desplegar la base de datos de PostgreSQL externa.
Parámetros para desplegar la base de datos de PostgreSQL externa
Los parámetros especifican la contraseña de la base de datos. Luego, debe especificar esta contraseña en la sección
infraconfig
del archivo de configuración values.yaml, que forma parte del paquete de Helm Chart incluido en el kit de distribución de la solución. - Ejecute el siguiente comando:
kubectl apply -f pg.yaml -n kcspg
El nombre de la base de datos está compuesto de la siguiente manera:
<
nombre_del_pod
>.<
espacio_de_nombres
>.<
servicio
>.cluster.local
Por ejemplo:
postgres.kcspg.svc.cluster.local
. - Especifique en el archivo de configuración pg.yaml los parámetros para desplegar la base de datos de PostgreSQL externa.
- Para desplegar un objeto Service en un clúster:
- Especifique los parámetros del despliegue de un objeto Service en el archivo de configuración svc.yaml.
- Ejecute el siguiente comando:
kubectl apply -f svc.yaml -n kcspg
- Para crear un usuario, un esquema y una relación usuario-esquema:
- Inicie sesión en el pod con el elemento postgres expandido del paso 2b.
- Inicie la terminal interactiva psql:
psql -h localhost -U postgres -d api
- Ejecute los siguientes comandos:
CREATE ROLE kks LOGIN PASSWORD 'kks' NOINHERIT CREATEDB;
CREATE SCHEMA kks AUTHORIZATION kks;
GRANT USAGE ON SCHEMA kks TO PUBLIC;
- En el archivo de configuración values.yaml, especifique los parámetros necesarios para usar una base de datos de PostgreSQL externa.
Parámetros en el archivo values.yaml
Los valores de los parámetros especificados en el archivo values.yaml deben coincidir con los valores de los parámetros correspondientes en los archivos de configuración pg.yaml y svc.yaml.
- Actualice la solución.
Ejemplo de los comandos usados para crear un usuario para una base de datos de PostgreSQL externa
Usar ClickHouse, el DBMS externo
Además del DBMS ClickHouse (componente de Kaspersky Container Security incluido en el kit de distribución), la solución también puede funcionar con los recursos del DBMS externo ClickHouse. Para ello, debe realizar las siguientes acciones:
- Cree una base de datos para Kaspersky Container Security, añada y configure usuarios, y defina una directiva de disco si se utilizan diferentes discos para el almacenamiento de datos de corto y largo plazo.
- Especifique las variables necesarias en el archivo de configuración values.yaml para el DBMS externo ClickHouse.
Kaspersky Container Security funciona con ClickHouse 22.6 o posterior.
Inicio de páginaCrear una base de datos para Kaspersky Container Security
Para crear una base de datos para Kaspersky Container Security, realice lo siguiente:
En ClickHouse, en la estación de trabajo, ejecute el siguiente comando:
CREATE DATABASE IF NOT EXISTS kcs
donde kcs
es el nombre de la base de datos para Kaspersky Container Security.
Para configurar la base de datos creada para Kaspersky Container Security:
- Añada usuarios y defina el método de autorización. Para ello, debe realizar las siguientes acciones:
- Añada los siguientes usuarios:
- un usuario con derechos para leer los datos que recibe el núcleo de Kaspersky Container Security (lectura)
<roles>
<kcs_reader_role>
<grants>
<query>GRANT SELECT ON kcs.*</query>
</grants>
</kcs_reader_role>
- un usuario con derechos para escribir datos a partir de solicitudes de agentes externos (escritura)
<roles>
<kcs_writer_role>
<grants>
<query>GRANT CREATE TABLE, INSERT, ALTER, UPDATE ON kcs.*</query>
<query>GRANT SELECT (source_ip, source_port, source_alias, dest_ip, dest_port, dest_alias, protocol, severity, action, event_time, count, type) ON kcs.node_agent_events</query>
</grants>
</kcs_writer_role>
- un usuario con derechos para leer los datos que recibe el núcleo de Kaspersky Container Security (lectura)
- Especifique el método para autorizar usuarios: con una contraseña o mediante un certificado.
Ejemplo de configuración de usuarios con autenticación mediante contraseña
Ejemplo de configuración de usuarios con autenticación mediante certificados
- Añada los siguientes usuarios:
- Especifique los discos para el almacenamiento de datos a corto y largo plazo. Al trabajar con ClickHouse, Kaspersky Container Security puede almacenar grandes cantidades de datos con diversos períodos de retención. De forma predeterminada, la mayoría de los eventos se almacenan durante 30 minutos como máximo, mientras que la información sobre incidentes se almacena durante 90 días como máximo. Dado que la grabación de eventos requiere una cantidad considerable de recursos, para garantizar una velocidad de grabación alta y suficiente espacio en disco, se recomienda usar diferentes discos para el almacenamiento de datos a corto y largo plazo.
Configuración del DBMS externo ClickHouse
Para configurar el uso del DBMS externo ClickHouse en Kaspersky Container Security:
- En el archivo de configuración values.yaml, especifique que la solución usará el DBMS externo ClickHouse:
default:
kcs-clickhouse:
external: true
- Especifique las variables para usar el DBMS externo ClickHouse:
configmap:
infraconfig:
type: fromEnvs
envs:
...<
variables para usar el DBMS externo ClickHouse
>
En esta sección, debe especificar las siguientes variables:
EXT_CLICKHOUSE_PROTOCOL
: protocolo para conectarse con el DBMS externo ClickHouseEXT_CLICKHOUSE_HOST
: host de la conexión con el DBMS externo ClickHouse externoEXT_CLICKHOUSE_PORT
: puerto para conectarse con el DBMS externo ClickHouseEXT_CLICKHOUSE_DB_NAME
: nombre de la base de datos preparada para usarse con Kaspersky Container SecurityEXT_CLICKHOUSE_COLD_STORAGE_NAME
: nombre del disco donde ClickHouse almacenará a largo plazo datos sobre incidentesEXT_CLICKHOUSE_STORAGE_POLICY_NAME
: nombre de la directiva de almacenamiento de datos según la que ClickHouse transferirá al disco los datos sobre incidentes para su almacenamiento a largo plazoSi usa el mismo disco para el almacenamiento de datos a corto y a largo plazo, no deberá especificar los valores de
EXT_CLICKHOUSE_COLD_STORAGE_NAME
ni deEXT_CLICKHOUSE_STORAGE_POLICY_NAME
.EXT_CLICKHOUSE_SSL_AUTH
: variable de la autenticación SSL para los usuarios de ClickHouse Si se especifica el valortrue
, la autenticación se realiza sin contraseñas, pero mediante certificados de clientes.Si
TLS_INTERNAL
tiene el valorfalse
,EXT_CLICKHOUSE_SSL_AUTH
también debe tener el valorfalse
.EXT_CLICKHOUSE_ROOT_CA_PATH
: ruta al certificado de CA, que se especifica si se usa el protocolo https para conectarse a ClickHouse (EXT_CLICKHOUSE_PROTOCOL: https
). Puede especificar la ruta de las siguientes maneras:- Coloque el certificado de CA de ClickHouse en el directorio que determina la ruta. En ese caso, debe quitar las marcas de comentarios del bloque
the secret.cert-kcs-clickhouse-ca
. - Use Vault para almacenar los datos del certificado. En este caso, debe quitar las marcar de comentarios del bloque
cert-kcs-clickhouse-ca
en la secciónvault.certificate
.
- Coloque el certificado de CA de ClickHouse en el directorio que determina la ruta. En ese caso, debe quitar las marcas de comentarios del bloque
- Especifique los valores de los secretos para usar el DBMS externo ClickHouse:
configmap:
secret:
infracreds:
type: fromEnvs
envs:
...<
secretos para usar el DBMS externo ClickHouse
>
En esta sección, debe especificar lo siguiente:
EXT_CLICKHOUSE_WRITE_USER
: nombre de un usuario con permisos de escritura, que se creó para usarse con Kaspersky Container SecurityCLICKHOUSE_WRITE_PASSWORD
: contraseña de un usuario con permisos de escritura, que se creó para usarse con Kaspersky Container SecurityEXT_CLICKHOUSE_READ_USER
: nombre de un usuario con permisos de lectura, que se preparó para usarse con Kaspersky Container SecurityCLICKHOUSE_READ_PASSWORD
: contraseña de un usuario con permisos de lectura, que se creó para usarse con Kaspersky Container SecurityLas variables
CLICKHOUSE_READ_PASSWORD
yCLICKHOUSE_WRITE_PASSWORD
no se usan si el valor deEXT_CLICKHOUSE_SSL_AUTH
estrue
.
Los nombres de usuario y contraseñas también pueden especificarse al usar el almacenamiento de secretos Vault.
Configuración del almacenamiento externo MinIO
Para configurar el uso del almacenamiento de archivos externo MinIO compatible con S3 en Kaspersky Container Security:
- En el archivo de configuración values.yaml, especifique que la solución usa el almacenamiento de archivos externo MinIO:
default:
kcs-s3:
external: true
- Especifique los valores de las variables para usar MinIO:
configmap:
infraconfig:
type: fromEnvs
envs:
...
<variables para usar el almacenamiento de archivos externo MinIO
>
En esta sección, debe especificar las siguientes variables:
MINIO_HOST
: host que se conectará con MinIOMINIO_PORT
: puerto de la conexión con MinIOMINIO_BUCKET_NAME
: nombre de la sección en MinIO asignada para los datos de Kaspersky Container SecurityMINIO_SSL
: variable de la conexión SSL con MinIO (incluye el uso del protocolo https)Si
TLS_INTERNAL
tiene el valorfalse
,MINIO_SSL
también debe tener el valorfalse
.MINIO_ROOT_CA_PATH
: ruta al certificado de CA, que se especifica si se usa el protocolo https para conectarse con MinIO (MINIO_SSL: true
). Puede especificar la ruta de las siguientes maneras:- Coloque el certificado de CA de MinIO en el directorio que determina la ruta. En ese caso, debe quitar las marcas de comentarios del bloque
secret.cert-minio-ca
. - Use Vault para almacenar los datos del certificado. En este caso, debe quitar las marcar de comentarios del bloque
cert-minio-ca
en la secciónvault.certificate
.
- Coloque el certificado de CA de MinIO en el directorio que determina la ruta. En ese caso, debe quitar las marcas de comentarios del bloque
- Especifique los valores de los secretos para usar el almacenamiento de archivos externo MinIO:
configmap:
secret:
infracreds:
type: fromEnvs
envs:
...
<secretos para usar el almacenamiento de archivos externo MinIO
>
En esta sección, debe especificar lo siguiente:
MINIO_ROOT_USER
: nombre del usuario de MinIO especificado para Kaspersky Container SecurityMINIO_ROOT_PASSWORD
: contraseña del usuario de MinIO especificado para Kaspersky Container Security
Los nombres de usuario y contraseñas también pueden especificarse al usar el almacenamiento de secretos Vault.
Ejemplo de la configuración del almacenamiento de archivos externo MinIO