Closed mreiger closed 3 years ago
Why do we need another audit forwarding to a very specific implementation of log backend. Does the actual log forwarding not work, and if not why not fixing this
The mechanism for forwarding the audit data to splunk was changed: Now we pass a config file to the fluent-bit in the auditforwarder that sends copies of the audit events directly from the seed to splunk. We do need the splunk connection because of compliance requirements for our gardener-operated clusters.
After some internal discussion i would like to clarify the following aspects:
After some internal discussion i would like to clarify the following aspects:
* logging to splunk should be configurable per shoot in terms of: * enabled/disabled * target host * credentials * this must be possible also for already created shoots * by default we should only consider prod clusters (aka purpose)
Current state of discussion:
* what happens with the logs if the splunk endpoint is not reachable? Spool to local PV or drop these events. If spooling how much space should be held for spooling ? What happens to audit logs if spooling area is full?
Auditforwarder buffers into memory; the current version has implemented a memory buffer limit; once this is full, further audit events will be dropped.
The default memory buffer limit is 200 Mbyte which is enough for some hours of log files.
Also there auditforwarder container now gets deployed with limits so that it can not grow indefinitely anyway.
I hope this addresses most concerns.
Today we had a discussion on how we could achieve logging on a per-shoot configuration basis + falling back to a default audit logging. I want to keep these ideas for future reference.
Technically possible:
audit
) in his shoot cluster, GEPM picks up the secret and starts logging, default config provided through GEPM controller registration
Not possible:
Record of the decisions made today:
audit
namespace, it will be used instead of the default one. This is variant 4 in the comment above. (But the default splunk endpoint is not written to the shoot, to prevent leaking of credentials.)
Pass a config file to the auditforwarder fluent-bit that forwards copies of all audit events to splunk. (Also set kube-apiserver service externalTrafficPolicy to local so that the clients' real ip addresses appear in the audit events.)