kube审计mcp
英语| 简体中文
kube-audit-mcp是一个模型上下文协议(mcp)服务器, 聊天机器人能够查询Kubernetes审计日志。
目录
- 克劳德代码 - 克劳德桌面 - Gemini CLI - VS代码 - kubectl ai
- 配置示例 - 提供者 - 阿里云日志服务 - AWS CloudWatch日志 - 谷歌云日志
- query_audit.log - list_cluster - list_common_resource_types
安装
- 首先,从下载并安装最新版本 发布页面.
- 您也可以通过docker进行安装:
docker pull quay.io/mozillazg/kube-audit-mcp:latest- 然后,配置Kubernetes审计日志的提供者。看 配置 了解详情。
MCP客户端
理论上,任何MCP客户端都应该使用kube-audit-MCP。
标准配置 适用于大多数客户:
{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "kube-audit-mcp",
"args": [
"mcp"
]
}
}
}Run with 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 CLI添加kube审计mcp:
claude mcp add kube-audit kube-audit-mcp mcp克劳德桌面
遵循MCP安装 指南,使用上面的标准配置。
Gemini CLI
遵循MCP安装 指南, 使用上面的标准配置。
VS代码
遵循MCP安装 指南, 使用上面的标准配置。您还可以使用VS Code CLI安装kube audit mcp mcp服务器:
# For VS Code
code --add-mcp '''{"name":"kube-audit","command":"kube-audit-mcp","args":["mcp"]}'''安装后,kube-audit-mcp-mcp服务器将可用于VS Code中的GitHub Copilot代理。
kubectl ai
Follow the MCP install guide, use the config like below:
servers:
# Local MCP server (stdio-based)
- name: kube-audit
command: kube-audit-mcp
args:
- mcp运输选项
STDIO传输(默认)
默认传输模式使用标准输入/输出进行通信。 这是大多数客户端(如Claude Desktop)使用的标准MCP传输。
# Run with default stdio transport
kube-audit-mcp mcp
# Or explicitly specify stdio
kube-audit-mcp mcp --transport stdio配置
kube-audit-mcp需要一个配置文件来指定Kubernetes审计日志的提供者。 配置文件通常位于 ~/.config/kube-audit-mcp/config.yaml 或通过指定 --config 旗帜。
配置示例
您可以通过以下命令获取示例配置:
kube-audit-mcp sample-configHere is a sample configuration file
default_cluster: prod # The default cluster to use
clusters: # List of clusters
- name: prod # Name of the cluster
provider: # Provider configuration, see below for details
name: aws-cloudwatch-logs # Use CloudWatch Logs as the provider
aws_cloudwatch_logs:
log_group_name: /aws/eks/test/cluster # Replace with your CloudWatch Logs log group name
- name: dev # Name of the cluster
provider:
name: alibaba-sls # Use Alibaba Cloud Log Service as the provider
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com # Replace with your Log Service endpoint
project: k8s-log-cxxx # Replace with your Log Service project
logstore: audit-cxxx # Replace with your Log Service logstore
- name: test
provider:
name: gcp-cloud-logging # Use Google Cloud Logging as the provider
gcp_cloud_logging:
project_id: test-233xxx # Replace with your Project ID
cluster_name: test-cluster # Replace with your GKE cluster name (optional)或者将示例配置保存到默认配置文件位置:
kube-audit-mcp sample-config --save提供者
阿里云日志服务
先决条件:
- 使用凭据安装和配置阿里云CLI
- 确保您的阿里云用户或角色具有从指定的日志服务项目和日志存储中读取的必要权限。
以下策略可用于授予必要的权限:
RAM permissions
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs"
],
"Resource": "*"
}
]
}配置:
name: alibaba-sls
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com # Replace with your Log Service endpoint
logstore: ${log_store} # Replace with your Log Service logstore
project: ${project_name} # Replace with your Log Service projectAWS CloudWatch日志
先决条件:
- 使用凭据安装和配置AWS CLI
- 确保您的AWS IAM用户或角色具有从指定的CloudWatch日志组读取的必要权限。
以下策略可用于授予必要的权限:
IAM permissions
{
"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 # Replace with your CloudWatch Logs log group name谷歌云日志
先决条件:
- 使用应用程序默认凭据安装和配置Google Cloud CLI
- 确保您的Google Cloud IAM用户或服务帐户具有从指定的Cloud Logging日志桶读取的必要权限。
以下角色可用于授予必要的权限: roles/logging.viewer.
配置:
name: gcp-cloud-logging
gcp_cloud_logging:
project_id: ${project_id} # Replace with your Project ID
cluster_name: ${cluster_name} # Replace with your GKE cluster name (optional)可用工具
此MCP服务器向AI代理公开以下工具:
query_audit_log
从配置的提供程序查询Kubernetes审计日志。这是调查集群中活动的主要工具。
参数:
cluster_name(字符串,可选):要查询的集群的名称。您可以通过以下方式查看可用的集群list_clusters工具。默认为已配置default_cluster.start_time(字符串,可选):查询的开始时间。可以是ISO 8601格式(2024-01-01T10:00:00)或相对时间(7d,1h,30m).默认为7d.end_time(字符串,可选):查询的结束时间。如果省略,则默认为当前时间。limit(number,可选):要返回的最大日志条目数。默认为10,最多为20.namespace(string,可选):按特定命名空间筛选日志。支持后缀通配符(例如。,kube-*).resource_types(字符串数组,可选):按一个或多个Kubernetes资源类型过滤(例如。,pods,deployments).支持短名称(例如。,po,deploy).使用list_common_resource_types以发现可用类型。resource_name(字符串,可选):按特定资源名称筛选。支持后缀通配符。verbs(字符串数组,可选):按一个或多个动作动词过滤(例如。,create,delete,update).user(string,可选):按执行操作的用户进行筛选。支持后缀通配符。
list_clusters
列出在中配置的所有集群 config.yaml 文件。这对于发现可以针对哪些集群进行查询非常有用。
参数: 无
list_common_resource_types
返回按类别分组的常见Kubernetes资源类型列表(例如,“核心资源”、“应用资源”)。这有助于找到正确的值 resource_types 参数在 query_audit_log 工具。
参数: 无
