You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AKS中Falco k8s-audit插件无日志及Webhook配置咨询

问题1:Falco未生成K8s审计事件排查

检查点1:确认K8s审计Webhook已配置指向Falco

AKS不会自动将审计事件发送到Falco,需手动配置审计策略和Webhook:

  • 创建审计策略文件audit-policy.yaml,定义需收集的事件:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: RequestResponse
    resources:
    - group: ""
      resources: ["pods", "services", "secrets"]
  - level: Metadata
    resources:
    - group: "*"
      resources: ["*"]
  • 创建Webhook配置ConfigMap,指向Falco的NodePort服务:
apiVersion: v1
kind: ConfigMap
metadata:
  name: audit-webhook-config
  namespace: kube-system
data:
  webhook-config.yaml: |
    apiVersion: v1
    kind: Config
    clusters:
    - cluster:
        server: http://<AKS_NODE_IP>:30007/k8s-audit
      name: falco-audit
    contexts:
    - context:
        cluster: falco-audit
        user: ""
      name: default-context
    current-context: default-context
    preferences: {}
    users: []

替换<AKS_NODE_IP>为集群任意节点的内网/公网IP。

  • 用Azure CLI更新AKS审计配置:
az aks update -g <RESOURCE_GROUP> -n <AKS_CLUSTER_NAME> --enable-audit-logging --audit-policy-file audit-policy.yaml --audit-webhook-config-file audit-webhook-config.yaml

检查点2:验证Falco插件加载状态

  • 查看Falco Pod日志,确认k8saudit插件初始化成功:
kubectl logs -n falco <FALCO_POD_NAME> | grep k8saudit

若出现Loaded plugin: k8saudit则正常;若有错误,检查插件库路径:

kubectl exec -n falco <FALCO_POD_NAME> -- ls /usr/lib/falco/

确认libk8saudit.so文件存在。

检查点3:确认Falco服务可达性

  • 在集群内测试Webhook端点:
kubectl run -it --rm --image=curlimages/curl curl-test -- curl http://falco-k8saudit-webhook.falco.svc.cluster.local:9765/k8s-audit

返回405 Method Not Allowed为正常(仅接受POST请求);若连接超时,检查Service的selector是否匹配Falco Pod标签、端口是否正确。

检查点4:验证审计规则有效性

  • 确认审计规则文件已挂载:
kubectl exec -n falco <FALCO_POD_NAME> -- ls /etc/falco/

查看规则内容是否包含审计相关配置:

kubectl exec -n falco <FALCO_POD_NAME> -- grep -A 5 -B 5 "k8s_audit" /etc/falco/k8s_audit_rules.yaml

问题2:云Kubernetes部署中Webhook配置文件的使用

在云K8s(AKS/EKS/GKE)中,Webhook用于将K8s审计事件转发到外部服务,通用步骤如下:

  1. 定义审计策略
    创建audit-policy.yaml,根据业务需求指定事件级别和监控资源,比如仅收集敏感操作(创建Secret、删除Pod)的RequestResponse级事件,减少日志量。

  2. 编写Webhook配置文件
    采用K8s Config格式,指定事件接收服务地址:

  • 集群内Service地址格式:http://<SERVICE_NAME>.<NAMESPACE>.svc.cluster.local:<PORT>/<PATH>
  • NodePort/LoadBalancer地址需确保K8s控制平面网络可达(云厂商控制平面通常能访问集群内NodePort)
  • 若启用HTTPS,需配置CA证书,确保控制平面信任Webhook证书。
  1. 更新集群审计配置
  • AKS:使用az aks update命令,指定审计策略和Webhook配置文件(参考问题1的步骤)
  • EKS:通过eksctl或控制台更新集群审计配置,添加审计策略和Webhook目标
  • GKE:创建集群时或使用gcloud container clusters update命令启用审计日志并配置Webhook
  1. 验证Webhook工作
    执行K8s操作(如创建Pod、删除Secret),查看目标服务(如Falco)日志,确认是否收到审计事件。

内容的提问来源于stack exchange,提问作者Ajinkya16

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:15:18