iac/infrastructure/vault/uralkal-audit/vault-audit-patch.yaml

71 lines
3.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Журнал аудита Vault: том /vault/audit, общий PID namespace и два sidecar'а.
# Чарт vault-contour 0.2.3: auditStorage → volumeClaimTemplates "audit" + mount в контейнер vault;
# extraContainers/volumes/shareProcessNamespace — values (toYaml, без tpl).
#
# Vault — fail-closed: включённый audit device, который не может записать событие, останавливает обслуживание
# запросов. Поэтому сеть в пути записи нет (файл + sidecar), а объём на диске ограничен ротацией и очередью.
- op: add
path: /spec/values/server/auditStorage
value:
enabled: true
size: 5Gi # TODO(verify): по замеру объёма журнала (KEEP × MAX_BYTES + очередь + запас)
storageClass: local-path
accessMode: ReadWriteOnce
mountPath: /vault/audit
# Нужен audit-rotate для SIGHUP процессу vault. Побочный эффект: sidecar'ы с UID vault видят его процесс
# (/proc/<pid>/environ; память — при разрешающем kernel.yama.ptrace_scope). См. README, «Решения с последствиями».
- op: add
path: /spec/values/server/shareProcessNamespace
value: true
- op: add
path: /spec/values/server/volumes
value:
- name: audit-shipper-config
configMap: {name: audit-shipper-config}
- name: audit-rotate-script
configMap: {name: audit-rotate-script}
- op: add
path: /spec/values/server/extraContainers
value:
# filelog → OTLP в access-collector. Чекпоинты и очередь отправки — на том же PVC.
# Кредов Kafka здесь нет: Vault Agent в поде Vault невозможен (Vault стартует запечатанным).
- name: audit-shipper
image: cr.yandex/crp3ccidau046kdj8g9q/opentelemetry-collector/opentelemetry-collector-contrib:0.121.0-amd64
args: ["--config=/conf/config.yaml"]
env:
- {name: CONTOUR, value: uralkal}
- name: MY_POD_IP
valueFrom: {fieldRef: {fieldPath: status.podIP}}
- {name: GOMEMLIMIT, value: 200MiB}
securityContext: &audit-sidecar-security
# UID/GID процесса vault (podSecurityContext чарта: 100/1000): файл журнала 0600, владелец — vault.
runAsUser: 100
runAsGroup: 1000
runAsNonRoot: true
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities: {drop: [ALL]}
seccompProfile: {type: RuntimeDefault}
resources:
requests: {cpu: 25m, memory: 64Mi}
limits: {cpu: 200m, memory: 256Mi}
volumeMounts:
- {name: audit, mountPath: /vault/audit}
- {name: audit-shipper-config, mountPath: /conf, readOnly: true}
# Ротация по размеру + SIGHUP vault (file device по SIGHUP переоткрывает файл).
- name: audit-rotate
# busybox 1.37.0 из registry контура (helperImage local-path-provisioner); тег latest закреплён digest'ом.
image: cr.yandex/crp3ccidau046kdj8g9q/contour/local-path-provisioner-nn/busybox@sha256:11f85134f388cff5f4c66f9bb4c5942249c1f6f7eb8b3889948d953487b5f7a8
command: ["/bin/sh", "/scripts/rotate.sh"]
env:
- {name: MAX_BYTES, value: "104857600"}
- {name: KEEP, value: "5"}
- {name: INTERVAL, value: "30"}
securityContext: *audit-sidecar-security # тот же UID: иначе нельзя отправить сигнал vault
resources:
requests: {cpu: 5m, memory: 16Mi}
limits: {cpu: 50m, memory: 32Mi}
volumeMounts:
- {name: audit, mountPath: /vault/audit}
- {name: audit-rotate-script, mountPath: /scripts, readOnly: true}