如何在Falco中启用Kubernetes审计规则
启用Falco Kubernetes审计规则操作步骤
1. 开启Falco审计日志接收配置
默认Helm安装Falco时不会自动开启K8s审计日志接收能力,需先确认对应配置已生效:
- 查看Falco配置ConfigMap:
kubectl get cm -l app.kubernetes.io/name=falco -o yaml,检查falco.yaml中的配置是否符合以下要求:webserver: enabled: true listen_port: 8765 k8s_audit_endpoint: /k8s-audit k8s_audit_enabled: true - 若配置未生效,可通过Helm升级开启对应能力:
helm upgrade --install falco falcosecurity/falco --namespace falco --create-namespace --set falco.webserver.enabled=true --set falco.webserver.k8s_audit_enabled=true
2. 配置Minikube Kubernetes Apiserver审计规则与转发
Falco的K8s审计规则依赖Apiserver的审计日志主动推送,需修改Apiserver启动配置:
- 首先创建审计策略文件
audit-policy.yaml(适配你使用的K8s v1.17.17版本,使用v1beta1版本API):apiVersion: audit.k8s.io/v1beta1
kind: Policy
rules:- level: RequestResponse
resources:- group: ""
resources: ["pods", "services", "secrets", "configmaps", "serviceaccounts"] - group: "apps"
resources: ["deployments", "daemonsets", "statefulsets"] - group: "rbac.authorization.k8s.io"
resources: ["roles", "clusterroles", "rolebindings", "clusterrolebindings"]
- group: ""
- level: Metadata
omitStages:- "RequestReceived"
- level: RequestResponse
- 再创建审计webhook配置文件
audit-webhook.yaml,用于指定审计日志转发到Falco的地址:apiVersion: v1
kind: Config
clusters:- name: falco
cluster:
server: http://<替换为Falco服务的ClusterIP>:8765/k8s-audit
contexts: - context:
cluster: falco
user: ""
name: default-context
current-context: default-context
preferences: {}
users: []
- name: falco
- 将上述两个文件存入Minikube节点的固定目录,比如
/var/lib/minikube/audit/路径下。 - 重启Minikube并加载审计相关配置:
minikube start --extra-config=apiserver.audit-policy-file=/var/lib/minikube/audit/audit-policy.yaml --extra-config=apiserver.audit-webhook-config-file=/var/lib/minikube/audit/audit-webhook.yaml --extra-config=apiserver.audit-webhook-mode=batch
3. 确认K8s审计规则文件已加载
默认Falco的K8s审计规则存放在独立的规则文件中,需确认该文件已被加载:
- 查看Falco配置ConfigMap中的
rules_file配置项,确保包含/etc/falco/k8s_audit_rules.yaml路径。 - 若未加载,可通过Helm升级添加规则文件路径:
helm upgrade --install falco falcosecurity/falco --namespace falco --set "falco.rules_file={/etc/falco/falco_rules.yaml,/etc/falco/falco_rules.local.yaml,/etc/falco/k8s_audit_rules.yaml}"
4. 效果验证
配置全部生效后,执行违反审计规则的操作,比如创建特权容器、修改集群角色绑定,执行kubectl logs -n falco -l app.kubernetes.io/name=falco即可查看对应的K8s审计规则告警日志。
内容的提问来源于stack exchange,提问作者Sathya
相关产品推荐
相关产品推荐

