【发布时间】:2021-05-05 05:37:05
【问题描述】:
我正在使用运行时检测工具 Falco 分析容器行为至少 40 秒,使用检测新生成和执行进程的过滤器存储包含检测到的事件的事件文件 art /opt/falco-incident.txt。我尝试将输出结果格式化为每行一个,格式为 [timestamp],[uid],[user-name],[processName]
我创建了 yaml 文件 audit.yaml
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
namespace: ""
verb: ""
resources:
- group: ""
resource: ""
- name: audit
hostPath:
path: /etc/kubernetes/audit.yaml
type: File
- name: audit-log
hostPath:
path: /var/log/all-resources.log
type: FileOrCreate
- mountPath: /etc/kubernetes/audit.yaml
name: audit
readOnly: true
- mountPath: /var/log/all-resources.log
name: audit-log
readOnly: false
我通过添加这 3 行来编辑 kube-apiserver
- --audit-policy-file=/etc/kubernetes/audit.yaml
- --audit-log-path=/var/log/all-resources.log
- --audit-log-maxage=1
主要问题是:如何以及在何处定义应如下所示的所需输出?
[时间戳],[uid],[用户名],[进程名]
[时间戳],[uid],[用户名],[进程名]
....
【问题讨论】:
-
请提供更多细节。您是否在问如何将 falco 的默认输出格式化为所需的格式?还是你问的是k8s审计策略配置?
-
是的,我需要编辑 falce 的默认输出并将其格式化为 [timestamp],[uid],[user-name],[processName]
-
看来您的审核策略不正确,请参考Audit policy,尤其是[Log backend]、[Webhook backend]。在 audit.k8s.io/v1 我们没有这样的参数:mountPath, hostPath 它应该在 kube-apiserver yaml 文件中指定。请提供使用过的 yaml/部署、当前审计事件、falco 事件 - 首选 json 格式。您是否在 falco config 中尝试过 [program_output] 并将输出通过管道传输到 jq
-
有没有办法以这种格式打印输出
标签: kubernetes falco