Перейти к содержанию

kubernetes-mcp-server: доступ агента к кластеру только на чтение

ИИ-инструменты · Kubernetes
Не изучено

Добавлено 2026-10-29.

Проблема

ИИ-агенту дают свой kubeconfig с правами администратора. Логи и ресурсы кластера могут содержать инструкции для модели — и агент с правом записи их выполнит.

Решение

Подключать агента через kubernetes-mcp-server: нативная реализация на Go через Kubernetes API, а не обёртка над kubectl. Режим read_only, запрет на чтение Secret и отдельный ServiceAccount с ролью view.

Пример

ServiceAccount с правами на чтение в одном namespace и короткоживущий токен:

kubectl create namespace mcp
kubectl create serviceaccount mcp-viewer -n mcp
kubectl create rolebinding mcp-viewer-rb -n mcp \
  --clusterrole=view --serviceaccount=mcp:mcp-viewer
TOKEN="$(kubectl create token mcp-viewer --duration=2h -n mcp)"
kubectl auth can-i delete pods -n mcp --as=system:serviceaccount:mcp:mcp-viewer   # ожидаем "no"

view — встроенная ClusterRole, поэтому в RoleBinding нужен --clusterrole.

config.toml сервера:

read_only = true
toolsets = ["core"]

[[denied_resources]]
group = ""
version = "v1"
kind = "Secret"
kubernetes-mcp-server --config config.toml

Когда применять

Для разбора проблем в кластере с помощью ИИ — только на тестовом стенде или с правами на чтение.

Ограничения

Версия 0.0.x — интерфейс меняется. Роль view не даёт читать Secret, но даёт читать логи и ConfigMap — там тоже бывают чувствительные данные.

Источник

Как применить у себя

  1. Поднять kind-кластер и ServiceAccount по примеру.
  2. Подключить агента с read_only = true.
  3. Убедиться, что попытка записи и чтения Secret отклоняется.
  4. Отметить «Изучено» после разбора одной реальной проблемы через агента.