Kube Audit Mcp

Kube Audit Mcp

🚀 kube-audit-mcp

kube-audit-mcp 是一个模型上下文协议(MCP)服务器,它赋予 AI 代理、助手和聊天机器人查询 Kubernetes 审计日志的能力。

🚀 快速开始

安装

  1. 首先,从 发布页面 下载并安装最新版本。
    • 你也可以通过 Docker 进行安装:
docker pull quay.io/mozillazg/kube-audit-mcp:latest
  1. 然后,配置 Kubernetes 审计日志的提供者。详细信息请参考 配置 部分。

MCP 客户端

理论上,任何 MCP 客户端都可以与 kube-audit-mcp 配合使用。

标准配置 在大多数客户端中都适用:

{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "kube-audit-mcp",
"args": [
"mcp"
]
}
}
}
使用 Docker 运行

你也可以通过 Docker 运行 kube-audit-mcp,使用以下配置:

{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/etc/kube-audit-mcp/config.yaml:/etc/kube-audit-mcp/config.yaml:ro",
"quay.io/mozillazg/kube-audit-mcp:latest",
"mcp",
"--config",
"/etc/kube-audit-mcp/config.yaml"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "needed_if_you_use_alibaba_sls_provider",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "needed_if_you_use_alibaba_sls_provider",
"AWS_ACCESS_KEY_ID": "needed_if_you_use_aws_cloudwatch_logs_provider",
"AWS_SECRET_ACCESS_KEY": "needed_if_you_use_aws_cloudwatch_logs_provider",
"GOOGLE_APPLICATION_CREDENTIALS": "needed_if_you_use_gcp_cloud_logging_provider"
}
}
}
}

Claude Code

使用 Claude Code CLI 添加 kube-audit-mcp:

claude mcp add kube-audit kube-audit-mcp mcp

Claude Desktop

遵循 MCP 安装 指南,使用上述标准配置。

Gemini CLI

遵循 MCP 安装 指南,使用上述标准配置。

VS Code

遵循 MCP 安装 指南,使用上述标准配置。你也可以使用 VS Code CLI 安装 kube-audit-mcp MCP 服务器:

# 对于 VS Code
code --add-mcp '''{"name":"kube-audit","command":"kube-audit-mcp","args":["mcp"]}'''

安装完成后,kube-audit-mcp MCP 服务器将可在 VS Code 中与你的 GitHub Copilot 代理一起使用。

kubectl-ai

遵循 MCP 安装 [指南](https://github.com/GoogleCloudPlatform/kubectl-ai/blob/main/pkg/mcp/README.md#local-stdio-based-server-configuration),使用如下配置: ```yaml servers: # 本地 MCP 服务器(基于标准输入输出) - name: kube-audit command: kube-audit-mcp args: - mcp ```

传输选项

标准输入输出传输(默认)

默认的传输模式使用标准输入输出来进行通信。这是大多数客户端(如 Claude Desktop)使用的标准 MCP 传输方式。

# 使用默认的标准输入输出传输运行
kube-audit-mcp mcp

# 或者显式指定标准输入输出
kube-audit-mcp mcp --transport stdio

配置

kube-audit-mcp 需要一个配置文件来指定 Kubernetes 审计日志的提供者。配置文件通常位于 ~/.config/kube-audit-mcp/config.yaml,或者可以通过 --config 标志指定。

示例配置

你可以通过以下命令获取示例配置:

kube-audit-mcp sample-config
以下是一个示例配置文件 ```yaml default_cluster: prod # 要使用的默认集群 clusters: # 集群列表 - name: prod # 集群名称 provider: # 提供者配置,详情见下文 name: aws-cloudwatch-logs # 使用 CloudWatch Logs 作为提供者 aws_cloudwatch_logs: log_group_name: /aws/eks/test/cluster # 替换为你的 CloudWatch Logs 日志组名称 - name: dev # 集群名称 provider: name: alibaba-sls # 使用阿里云日志服务作为提供者 alibaba_sls: endpoint: cn-hangzhou.log.aliyuncs.com # 替换为你的日志服务端点 project: k8s-log-cxxx # 替换为你的日志服务项目 logstore: audit-cxxx # 替换为你的日志服务日志库 - name: test provider: name: gcp-cloud-logging # 使用 Google Cloud Logging 作为提供者 gcp_cloud_logging: project_id: test-233xxx # 替换为你的项目 ID cluster_name: test-cluster # 替换为你的 GKE 集群名称(可选) ```

或者将示例配置保存到默认配置文件位置:

kube-audit-mcp sample-config --save

提供者

阿里云日志服务

前提条件:

  • 安装并使用凭证配置阿里云 CLI
  • 确保你的阿里云用户或角色具有从指定的日志服务项目和日志库读取数据的必要权限。可以使用以下策略来授予必要的权限:
RAM 权限 ```json { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetLogStoreLogs" ], "Resource": "*" } ] } ```

配置:

name: alibaba-sls
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com  # 替换为你的日志服务端点
logstore: ${log_store}                  # 替换为你的日志服务日志库
project: ${project_name}                # 替换为你的日志服务项目
AWS CloudWatch Logs

前提条件:

  • 安装并使用凭证配置 AWS CLI
  • 确保你的 AWS IAM 用户或角色具有从指定的 CloudWatch Logs 日志组读取数据的必要权限。可以使用以下策略来授予必要的权限:
IAM 权限 ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:GetQueryResults" ], "Resource": "*" } ] } ```

配置:

name: aws-cloudwatch-logs
aws_cloudwatch_logs:
log_group_name: /aws/eks/${cluster_name}/cluster # 替换为你的 CloudWatch Logs 日志组名称
Google Cloud Logging

前提条件:

配置:

name: gcp-cloud-logging
gcp_cloud_logging:
project_id: ${project_id}         # 替换为你的项目 ID
cluster_name: ${cluster_name}     # 替换为你的 GKE 集群名称(可选)

可用工具

此 MCP 服务器向 AI 代理公开了以下工具:

query_audit_log

从配置的提供者处查询 Kubernetes 审计日志。这是调查集群活动的主要工具。

参数:

  • cluster_name(字符串,可选):要查询的集群名称。你可以使用 list_clusters 工具查看可用的集群。默认为配置的 default_cluster
  • start_time(字符串,可选):查询的开始时间。可以是 ISO 8601 格式(2024-01-01T10:00:00)或相对时间(7d1h30m)。默认为 7d
  • end_time(字符串,可选):查询的结束时间。如果省略,默认为当前时间。
  • limit(数字,可选):要返回的最大日志条目数。默认为 10,最大为 20
  • namespace(字符串,可选):按特定命名空间过滤日志。支持后缀通配符(例如,kube-*)。
  • resource_types(字符串数组,可选):按一个或多个 Kubernetes 资源类型过滤(例如,podsdeployments)。支持短名称(例如,podeploy)。使用 list_common_resource_types 来发现可用的类型。
  • resource_name(字符串,可选):按特定资源名称过滤。支持后缀通配符。
  • verbs(字符串数组,可选):按一个或多个操作动词过滤(例如,createdeleteupdate)。
  • user(字符串,可选):按执行操作的用户过滤。支持后缀通配符。

list_clusters

列出 config.yaml 文件中配置的所有集群。这有助于发现你可以针对哪些集群进行查询。

参数:

list_common_resource_types

返回常见的 Kubernetes 资源类型列表,按类别分组(例如,“核心资源”、“应用资源”)。这有助于为 query_audit_log 工具中的 resource_types 参数找到正确的值。

参数:

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-29 19:33

相似服务问题