Version-2.0
cr.yandex/sol/k8s-events-siem-worker:1.1.0
Решение из "коробки" выполняет следующее:
Решение "Сбор, мониторинг и анализ аудит логов в Yandex Managed Service for Elasticsearch (ELK)" содержит информацию о том, как установить Yandex Managed Service for Elasticsearch (ELK) и собирать в него логи Audit Trails
Подробное описание объектов по ссылке
Решение состоит из 2-х модулей Terraform: 1) security-events-to-storage-exporter (экспортирует логи в s3)
Принимает на вход:
folder_id
- id каталога, в котором расположен кластерcluster_name
- имя кластера Kuberneteslog_bucket_service_account_id
- id сервисного аккаунта, который может писать в бакет и имеет роль ymq.adminlog_bucket_name
- имя бакета, куда нужно сохранять логиfunction_service_account_id
- (опционально) id сервисного аккаунта, который будет запускать фукнцию, если не указан, то используется log_bucket_service_account_id
Выполняет:
2) security-events-to-siem-importer (импортирует логи в ELK)
Принимает на вход:
security-events-to-storage-exporter
)auditlog_enabled
- true или false (отправлять ли аудит логи k8s в ELK)falco_enabled
- true или false (отправлять ли алерты falco в ELK)kyverno_enabled
- true или false (отправлять ли алерты kyverno в ELK)Выполняет:
См. Пример вызова модулей в /example/main.tf
//Вызов модуля security-events-to-storage-exporter
module "security-events-to-storage-exporter" {
source = "../security-events-to-storage-exporter/" # путь до модуля
folder_id = "xxxxxx" // folder-id кластера k8s yc managed-kubernetes cluster get --id <ID кластера> --format=json | jq .folder_id
cluster_name = "k8s-cluster" // имя кластера
log_bucket_service_account_id = "xxxxxx" // id sa (должен обладать ролями: ymq.admin, write to bucket)
log_bucket_name = "k8s-bucket" // можно подставить из конфига развертывания
# function_service_account_id = "чч" // опциоанальный id сервисного аккаунта который вызывает функции - если не выставлен то функция вызывается от имени log_bucket_service_account_id
}
//Вызов модуля security-events-to-siem-importer
module "security-events-to-siem-importer" {
source = "../security-events-to-siem-importer/" # путь до модуля
folder_id = module.security-events-to-storage-exporter.folder_id
service_account_id = module.security-events-to-storage-exporter.service_account_id
auditlog_enabled = true //отправлять k8s auditlog в elk
falco_enabled = true // установить falco и отправлять его алерты в elk
kyverno_enabled = true // установить kyverno и отправлять его алерты в elk
log_bucket_name = module.security-events-to-storage-exporter.log_bucket_name
elastic_server = "https://c-xxx.rw.mdb.yandexcloud.net" // url ELK "https://c-xxx.rw.mdb.yandexcloud.net" (можно подставить из модуля module.yc-managed-elk.elk_fqdn)
coi_subnet_id = "xxxxxx" // subnet id в которой будет развернута ВМ с контейнером (обязательно включить NAT)
elastic_pw = var.elk_pw // выполнить команду: export TF_VAR_elk_pw=<ELK PASS> (заменить ELK PASS на ваше значение) // пароль учетной записи ELK (можно подставить из модуля module.yc-managed-elk.elk-pass)
elastic_user = "admin" // имя учетной записи ELK
}
Рекомендуем подписаться на данный репозиторий для получения уведомлений об обновлениях.
Для того, чтобы использовать самую актуальную версию контента, необходимо
В части обновления контента, необходимо убедиться, что вы используете последнюю доступную версию образа:
cr.yandex/sol/k8s-events-siem-worker:latest
Обновление контейнера можно выполнить следующим образом:
terraform apply
)falco-worker-*
, kyverno-worker-*
, audit-worker-*
), удалить образ k8s-events-siem-worker
, перезапустить COI Instance — после запуска будет скачан новый образ и созданы новые контейнерыОбновление Security контента в Kibana (dashboards, detection rules, searches) — можно выполнить через запуск контейнера elk-updater
:
docker run -it --rm -e ELASTIC_AUTH_USER='admin' -e ELASTIC_AUTH_PW='password' -e KIBANA_SERVER='https://xxx.rw.mdb.yandexcloud.net' --name elk-updater cr.yandex/sol/elk-updater:latest
В случае, если вы предпочитаете OPA Gatekeeper вместо Kyverno то выставите значение kyverno_enabled
- false при вызове модуля и выполните установку вручную