🧩 MCP配置规范——统一的可观察性和策略配置
这 MCPConfiguration 是一个声明性的YAML规范,用于配置:
- ✅ 日志摄取 跨Splunk、Elasticsearch和SumoLogic等提供商
- 📊 指标收集 普罗米修斯、Datadog等。
- 🔐 秘密管理 使用Akeyless
- 🚦 API速率限制 每条路线
- 🛡️ 策略执行 与OPA(Rego)进行合规性和验证
______________________________________________________________________
📁 结构
apiVersion: mcp.open/v1
kind: MCPConfiguration
metadata:
name: example-mcp-config
description: Unified configuration for logging, metrics, secrets, and policy in MCP
version: 0.1.0
spec:
logProviders: [...]
metricsProviders: [...]
secrets: {...}
rateLimiting: {...}
policy: {...}______________________________________________________________________
🔍 现场细分
🧾 元数据
| 字段 | 类型 | 描述 |
|---|---|---|
name | string | 配置的唯一名称 |
description | string | 配置用途的描述 |
version | string | 配置的语义版本 |
______________________________________________________________________
🪵 logProviders[]
配置一个或多个日志目标:
| 字段 | 类型 | 描述 |
|---|---|---|
name | string | 日志提供程序的名称 |
type | enum | 其中之一 splunk, elasticsearch, sumologic |
endpoint | string | 目标端点URL |
token | string | Splunk的令牌 |
authToken | string | SumoLogic的令牌 |
auth | object | Elasticsearch的基本身份验证 |
index | string | 索引或目标位置 |
sourcetype | string | (Splunk)源类型标签 |
______________________________________________________________________
📊 metricsProviders[]
设置指标收集服务:
| 字段 | 类型 | 描述 |
|---|---|---|
name | string | 指标提供者的名称 |
type | enum | 其中之一 prometheus, datadog |
endpoint | string | 抓取或推送位置的URL |
scrapeInterval | string | (Prometheus)用于抓取指标的间隔 |
apiKey | string | (Datadog)API键 |
appKey | string | (Datadog)应用程序密钥 |
region | string | (Datadog)区域(例如。, us, eu) |
______________________________________________________________________
🔐 secrets
基于无孔的秘密注射:
secrets:
provider: akeyless
config:
accessId: ${AKEYLESS_ACCESS_ID}
accessKey: ${AKEYLESS_ACCESS_KEY}
apiUrl: https://api.akeyless.io
secretsMapping:
SPLUNK_TOKEN: path/to/splunk/token
ELASTIC_USER: path/to/elastic/user| 字段 | 类型 | 描述 |
|---|---|---|
provider | string | 秘密管理器类型(例如。, akeyless) |
accessId | string | 无密钥访问ID |
accessKey | string | 无密钥 |
apiUrl | string | Akeyless API端点 |
secretsMapping | map | 来自env var的键值映射→ 秘密路径 |
______________________________________________________________________
🚦 rateLimiting
rateLimiting:
globalLimit:
requestsPerMinute: 10000
perRouteLimits:
- route: /api/v1/logs
limit: 1000| 字段 | 类型 | 描述 |
|---|---|---|
globalLimit.requestsPerMinute | integer | 每分钟全局请求上限 |
perRouteLimits[] | 列表 | 路线特定费率限制 |
route | string | neneneba API路由路径 |
limit | integer | 该路由的每分钟请求数 |
______________________________________________________________________
🛡️ policy
基于OPA(Rego)的验证和执行:
policy:
format: opa
engine: rego
policies:
- id: enforce-namespace-is-set
description: Require all log entries to have a `namespace` label
type: validation
rule: |
package mcp.policies
default allow = false
allow {
input.namespace != ""
}| 字段 | 类型 | 描述 |
|---|---|---|
format | string | 策略格式引擎(例如。, opa) |
engine | string | 执行语言(例如。, rego) |
policies[] | array | 策略规则定义列表 |
id | string | 策略的唯一标识符 |
description | string | 人类可读的描述 |
type | enum | 其中之一 validation, enforcement |
rule | string | 注册策略脚本(OPA DSL) |
______________________________________________________________________
✅ 包括PCI-DSS合规政策
| 策略ID | 描述 |
|---|---|
disallow-sensitive-data-in-logs | 防止日志消息包含PCI敏感术语,如卡号 |
enforce-strict-access-logging | 需要以下人员在场 user_id, ip_address,以及 timestamp 在日志中 |
这些规则支持PCI-DSS第10.2.x和10.3.x节。
______________________________________________________________________
📌 未来路线图
- \[\]添加Vault、AWS Secrets Manager支持
- \[\]扩展以支持CEL或CUE策略格式
- \[\]用于可观察性堆栈的动态提供程序插件
______________________________________________________________________
📂 目录结构示例
.
├── config/
│ └── mcp.yaml
├── policies/
│ ├── pci_access.rego
│ └── sensitive_logs.rego
├── main.go
└── README.md______________________________________________________________________
📣 贡献
我们欢迎增强功能和提供商插件!打开问题或提交PR。
