如何从 azure kubernetes 集群中获取审计日志?稍后我想用它来定义使用 audit2rbac 工具
how to fetch audit log from a azure kubernetes cluster? later i want to use it to define using audit2rbac tool
需要根据审计日志定义RBAC。这可以是加入团队并提供访问权限的常规流程。
我发现 audit2rbac 工具简单易用。
需要关于 Azure 上的 kubernetes 服务的指导。
控制平面日志流(包括审核日志)可通过 Azure 诊断日志获得。看这里:
这是从 Azure Log Analytics 获取审核日志的示例查询。
它消除了一些噪音以尝试仅提供用户在 Kubernetes 中修改资源时的日志。 requestURI 和 requestObject 字段将为您提供有关用户正在做什么的最多信息。
AzureDiagnostics
| where Category == "kube-audit"
| extend log_j=parse_json(log_s)
| extend requestURI=log_j.requestURI
| extend verb=log_j.verb
| extend username=log_j.user.username
| extend requestObject = parse_json(log_j.requestObject)
| where verb !in ("get", "list", "watch", "")
| where username !in ("aksService", "masterclient", "nodeclient")
| where username !startswith "system:serviceaccount:kube-system"
| where requestURI startswith "/api/"
| where requestURI !startswith "/api/v1/nodes/"
| where requestURI !startswith "/api/v1/namespaces/kube-system/"
| where requestURI !startswith "/api/v1/namespaces/ingress-basic/"
需要根据审计日志定义RBAC。这可以是加入团队并提供访问权限的常规流程。
我发现 audit2rbac 工具简单易用。
需要关于 Azure 上的 kubernetes 服务的指导。
控制平面日志流(包括审核日志)可通过 Azure 诊断日志获得。看这里:
这是从 Azure Log Analytics 获取审核日志的示例查询。
它消除了一些噪音以尝试仅提供用户在 Kubernetes 中修改资源时的日志。 requestURI 和 requestObject 字段将为您提供有关用户正在做什么的最多信息。
AzureDiagnostics
| where Category == "kube-audit"
| extend log_j=parse_json(log_s)
| extend requestURI=log_j.requestURI
| extend verb=log_j.verb
| extend username=log_j.user.username
| extend requestObject = parse_json(log_j.requestObject)
| where verb !in ("get", "list", "watch", "")
| where username !in ("aksService", "masterclient", "nodeclient")
| where username !startswith "system:serviceaccount:kube-system"
| where requestURI startswith "/api/"
| where requestURI !startswith "/api/v1/nodes/"
| where requestURI !startswith "/api/v1/namespaces/kube-system/"
| where requestURI !startswith "/api/v1/namespaces/ingress-basic/"