Commit Graph

1685 Commits

Author SHA1 Message Date
emelinda
df3840e70d remove {topic: security.k8s-audit, kind: k8s_audit} 2026-11-07 20:27:40 +03:00
emelinda
772cef5cef security-audit: fix pipelines placement in processor config — top-level key
config.Pipelines is a root-level key in k8s-audit; nested under kafka: it
was ignored and the service fell back to the single kafka.topic fallback.
2026-11-07 20:18:47 +03:00
emelinda
d0bed7033a security-audit: enable mesh-access pipeline, audit-processor pinned by digest
Config: pipelines security.k8s-audit (k8s_audit) + security.mesh-access
(mesh_access); kafka.topic kept for rollback (pre-pipelines image ignores
the pipelines key). Image pinned to digest sha256:56a23bec… (k8s-audit@05a186a,
pipelines support) per repo policy п.38. Kafka ACL and MinIO policy need no
changes (no ACLs; bucket user has s3:* on the whole bucket). Companion
terraform change: ILM rule expire-mesh-access-90d.
2026-11-07 20:12:54 +03:00
emelinda
a2da49804a security-audit: audit-processor 47297469, flush_interval 1m
Bump processor image and deliver events to MinIO within a minute
(more small parquet files; compaction is stage 3 of k8s-audit).
2026-11-07 18:46:32 +03:00
emelinda
ff931e1708 security-audit: audit-processor flush_interval 5m -> 1m
Deliver audit events to MinIO within a minute for near-real-time
investigation; trade-off is more small parquet files (compaction
is planned in stage 3 of k8s-audit).
2026-11-07 18:07:36 +03:00
emelinda
a6a176d6c5 security-audit: audit-processor af50e663, drop retention config section
New image removes the bucket lifecycle check (retention is owned by terraform
minio-buckets lifecycle_rules), so the retention section is dropped from the
processor config map.
2026-11-07 17:24:47 +03:00
emelinda
a60b171bea security-audit: IsMap guards in transform/audit delete_key statements
Some events (e.g. deletecollection) carry requestObject as a slice, not a map:
indexing it with "metadata" failed with "unable to resolve an integer index in
slice" and spammed the collector log (error_mode: ignore — events were not lost).
IsMap chains rely on OTTL short-circuit `and` evaluation (verified against
v0.121 sources).
2026-11-07 16:23:46 +03:00
emelinda
cf2689aea0 security-audit: fix filter/audit config key — log_record (singular), filterprocessor 0.121
The processor rejected "log_records": LogFilters.LogConditions is mapstructure
"log_record" in v0.121 (collector failed to start: failed to get config).
2026-11-07 16:00:24 +03:00
emelinda
0b8318f547 security-audit: drop flux-system read polling from apiserver audit pipeline
filter/audit in audit-collector drops get/list/watch events from
system:serviceaccount:flux-system:* (helm/kustomize/source controllers polling
fluxcd resources every few seconds — the bulk of the topic volume). GitOps
mutations are kept: they are the actual trail of cluster changes.
2026-11-07 15:45:37 +03:00
emelinda
508f18d2a5 Merge remote-tracking branch 'origin/master' 2026-11-07 14:54:15 +03:00
emelinda
1960ef495c security-audit: add audit-processor — ship apiserver audit from Kafka to MinIO (Parquet)
base/processor-*.yaml: Deployment (1 replica, image k8s-audit-processor:394b6f9d),
ConfigMap with config.yaml, ServiceAccount, NetworkPolicy (DNS, kafka:9092,
external MinIO 10.133.0.245:9000). Contour-specific values for uralkal are set
via env patch in the overlay (K8S_AUDIT_*), same pattern as the collectors.
Credentials reuse the static Secrets (security-audit-kafka, kafka-ca,
security-audit-minio) via a projected volume at /vault/secrets.

app.env=stand: the contour's external MinIO has no TLS, so strict validation
(minio.secure) would fail. log.s3_echo=true is temporary for flow verification
(per security req. 20: disable after debugging).
2026-11-07 14:54:08 +03:00
491c0462cd ++ proctmp only uralkal 2026-11-07 11:37:41 +03:00
aa0ba4097c ++ engine low proctmp 2026-11-07 11:22:11 +03:00
emelinda
9cb62ea9f0 security-audit: nil-guards в transform/audit — удаление managedFields/annotations
У части событий requestObject есть, а metadata/annotations в нём nil —
statement падал с "expected pcommon.Map but got nil" и засорял лог
(error_mode: ignore, события не терялись).
2026-11-06 18:03:30 +03:00
emelinda
d4bbc5fd14 security-audit: отложить события Zitadel — отключить Job idp-actions-bootstrap
PAT machine user'а security-audit-bootstrap не заведён (ни Vault-роль, ни статический
Secret), Job не сможет настроить Target/Execution'ы. Пайплайн logs/idp в access-collector
оставлен и инертен: без Target'а Zitadel ничего не отправляет. Обратное включение:
раскомментировать idp-actions-bootstrap в base/kustomization.yaml и его патч в оверлее
uralkal, добавить ключ zitadel_pat в Secret security-audit-kafka.
2026-11-06 17:34:05 +03:00
emelinda
3162679524 security-audit: креды Kafka и PAT Zitadel — из статических Secret'ов вместо Vault Agent
В контуре uralkal роли Vault (security-audit, security-audit-bootstrap) не заведены.
Коллекторы и Job idp-actions-bootstrap монтируют Secret'ы namespace (security-audit-kafka,
kafka-ca) projected volume'ом в /vault/secrets под теми же именами файлов — конфиг
коллекторов (${file:...}, ca_file) не меняется. Из NetworkPolicy убран egress в Vault,
из оверлея uralkal — dependsOn на HelmRelease vault.
2026-11-06 17:22:20 +03:00
emelinda
f0014c5d00 uralkal: подключить security-audit — аудит apiserver, журнал доступа шлюза, события Zitadel
DaemonSet audit-collector на control-plane (журнал kube-apiserver → security.k8s-audit),
Deployment access-collector (OTLP :4317 — журнал доступа ingress-шлюза → security.mesh-access,
webhookevent :8088 — события Zitadel Actions v2 → security.idp-events, otlp :4319 — журнал
аудита Vault → security.vault-audit), Job idp-actions-bootstrap (Target + Execution'ы в Zitadel),
NetworkPolicy/AuthorizationPolicy, EnvoyFilter strip-audit-headers и Telemetry шлюза
на провайдер audit-access (уже раскатан в istio-pilot/uralkal).

Предусловия выполнены вне репозитория: аудит apiserver на мастерах (INFRA-3057),
топики security.* и SCRAM-пользователь в Kafka, бакет security-audit в MinIO,
секреты и роли Vault (terraform, vault-platform-secrets).
2026-11-06 16:47:32 +03:00
emelinda
509926a108 uralkal: отключить postgres-tls-test и istio-mtls-check от кластера
Оверлеи убраны из clusters/uralkal/kustomization.yaml, манифесты
apps/postgres-tls-test/ и infrastructure/istio-mtls-check/ сохранены
для возможного повторного подключения.
2026-11-06 15:35:36 +03:00
Дмитрий Лавренчук
31d469a847 Merge branch 'task/PDM-2711_brusnika_Ws' into 'master'
fix: documentaiton_host in brusnika

See merge request infra/iac!18
2026-11-06 11:19:36 +00:00
Дмитрий Лавренчук
c746a0181c Merge branch 'fix/wb' into 'master'
fix: disabke cde api wb

See merge request infra/iac!17
2026-11-06 11:18:54 +00:00
diamondrigido
6d388eef11 fix: documentaiton_host in brusnika 2026-11-06 13:18:21 +02:00
diamondrigido
150f22ae59 fix: disabke cde api wb 2026-11-06 09:16:51 +02:00
ivan
7b42b02915 ++ 2026-11-05 23:19:00 +05:00
Дмитрий Лавренчук
c7e33b74b6 Merge branch 'task/PDM-2655_ugmk_move' into 'master'
fix: обновил образы для документации

See merge request infra/iac!16
2026-11-05 13:22:36 +00:00
diamondrigido
b98109047f fix: обновил образы для документации 2026-11-05 15:22:01 +02:00
ivan
857bd4a675 uralkal: upload-oblako-las — креды и хост MinIO из documentations_s3_service_account_json 2026-11-05 17:31:39 +05:00
ivan
1c1b866331 uralkal: upload-oblako-las — curl без проверки сертификата (TLS-инспекция в сети Уралкалия) 2026-11-05 17:18:42 +05:00
ivan
142b28be80 uralkal: django — Job upload-oblako-las скачивает Облако.las и кладёт в MinIO бакет django 2026-11-05 17:11:13 +05:00
ivan
297f4b0adf uralkal: zitadel-action — при 403 на admin API берёт организацию токена через /management/v1/orgs/me 2026-11-05 16:26:29 +05:00
ivan
59a02bc7dc uralkal: django — Job создаёт в Zitadel action createUser на External Authentication / Pre Creation 2026-11-05 16:15:10 +05:00
ivan
1fc4742931 uralkal: kc-sync-users — синхронизация из realm sarex 2026-11-05 15:48:45 +05:00
ivan
4dac264303 uralkal: camunda keycloak — debug-логи org.keycloak.storage.ldap 2026-11-05 15:12:24 +05:00
ivan
b9c73a2d28 uralkal: kc-sync-users — привязка пользователей к компании id 1 (--sync-users-def-company-id 1) 2026-11-05 15:01:37 +05:00
ivan
e5a0419545 uralkal: django — CronJob kc-sync-users, синхронизация пользователей из Keycloak camunda каждые 10 минут 2026-11-05 14:37:08 +05:00
ivan
0398df0901 uralkal: camunda keycloak — Secret keycloak-keytab из sarex.keytab через secretGenerator 2026-11-05 12:50:53 +05:00
ivan
6855db88b8 uralkal: camunda keycloak — доверие корневому CA BER-CA1 для LDAPS к AD
ConfigMap uralkali-ca с PEM BER-CA1 монтируется в /opt/uralkali-ca,
KC_TRUSTSTORE_PATHS=/opt/uralkali-ca/ber-ca1.crt добавляет его в Truststore SPI
Keycloak 25 поверх системных корней, без пересборки образа.
2026-11-05 11:39:25 +05:00
ivan
b456e8a5da uralkal: zitadel — доверие корневому CA BER-CA1 для LDAPS к AD
ConfigMap uralkali-ca с PEM BER-CA1 (DC=local,DC=uralkali,DC=com) монтируется
в /etc/ssl/uralkali, SSL_CERT_DIR=/etc/ssl/uralkali:/etc/ssl/certs. Образ на
scratch без пересборки: Go берёт доп. корни из SSL_CERT_DIR. Чинит
"x509: certificate signed by unknown authority" при входе через AD.
2026-11-05 11:18:07 +05:00
emelinda
49040e0da8 Enable plain client manifest for istio-mtls-check 2026-11-05 09:01:41 +03:00
emelinda
919253808b add istio-mtls-check deployments 2026-11-05 08:50:25 +03:00
emelinda
ad28069436 Add Istio mTLS check manifests to uralkal cluster 2026-11-05 03:23:43 +03:00
emelinda
67985010ce Fix uralkal Istio EnvoyFilter patch target for HTTP routes 2026-11-05 02:26:55 +03:00
emelinda
fa989aafdc Add istio-config-contour chart and enforce HTTPS/TLS/HSTS for uralkal ingress 2026-11-04 23:38:14 +03:00
ivan
e6392cbbfe uralkal: camunda keycloak — keytab из Secret keycloak-keytab и krb5.conf для LOCAL.URALKALI.COM 2026-11-03 17:09:50 +05:00
ivan
81bf9d17d1 uralkal: s3.sarex.local.uralkali.com напрямую в MinIO 10.133.0.245:9000 через ServiceEntry 2026-11-03 14:36:05 +05:00
ivan
7b6a285741 uralkal: pm — один блок deployment в патчах backend и celery
Второй ключ deployment в патче отбрасывался, и args из оверлея не применялись:
/vault/secrets/pm-kafka инжектился, но не source-ился, pm ходил в Kafka с
дефолтными user/password. makemigrations из оверлея не включён.
2026-11-02 15:31:18 +05:00
ivan
7cacd5a03f uralkal: kafka-scram-users — automountServiceAccountToken для Vault injector 2026-11-02 15:19:13 +05:00
ivan
654803c2af uralkal: Job заводит SCRAM-пользователей Kafka из Vault kafka/apps/{pm,issues,flows}
Логин и пароль берутся из тех же путей Vault, что читают pm/message-hub и
issues/flows; пароль администратора — inter_broker_user из kafka/bootstrap
(роль Vault kafka, SA kafka-kafka-contour). После создания проверяется вход
каждого пользователя по SASL_SSL на 9092, пароли в лог не пишутся.
2026-11-02 15:11:03 +05:00
ivan
b9022560f3 ++ 2026-11-02 14:32:11 +05:00
ivan
10c04ba32b uralkal: pg-tls — пробы pg_isready с -U notes (п.31, INFRA-3062)
Без -U libpq ищет имя для UID 1001, которого нет в passwd вне nss-wrapper,
pg_isready падает и liveness убивает под через 90 с.
2026-11-02 14:05:14 +05:00
ivan
32e4bc657a uralkal: pg-tls — TLS и pg_hba аргументами postgres, writable root (п.31, INFRA-3062)
Образ contour/postgresql — официальный postgres с обёрткой contour, bitnami-переменные
TLS и extended-конфиг он игнорирует: ssl, сертификат, ssl_min_protocol_version и
hba_file передаются через -c; readOnlyRootFilesystem: false и пробы pg_isready как у
infrastructure/postgresql/uralkal.
2026-11-02 13:34:09 +05:00