Cloud.ru

Cloud.ru Evolution: Managed Kubernetes, Compute, Billing. Аутентификация через API-ключ.

Обзор

Коннектор Cloud.ru использует Cloud.ru Evolution IAM. Аутентификация выполняется через API-ключ (Key ID + Secret). Project ID автоматически извлекается из JWT-токена.

Поддерживаемые операции:

Необходимые права

Сервисному аккаунту нужно назначить роли на уровне проекта. Oopps.ai работает в режиме read-only — достаточно минимальных прав.

Роли внутри проекта

Роль Зачем
Наблюдатель проекта Read-only доступ к ресурсам проекта: VM, диски

Роли в сервисах (Evolution) — K8s-аудит

Сервис Роль Зачем
Evolution Managed Kubernetes k8s.admin Список кластеров, kubeconfig, чтение nodes/pods/metrics через K8s API
Почему k8s.admin, а не k8s.user?

Роль k8s.user даёт доступ только к API управления кластерами (список кластеров, скачивание kubeconfig). Но K8s-аудит подключается к API самого кластера и читает nodes, pods, workloads и metrics-server — для этого нужен cluster-level read access, который предоставляет k8s.admin.

Oopps.ai работает в режиме read-only — не создаёт и не изменяет ресурсы. Project ID определяется автоматически из JWT-токена.

Альтернатива для безопасников

Если политика безопасности запрещает роль k8s.admin, назначьте k8s.user и вручную создайте ClusterRoleBinding в каждом кластере:

kubectl create clusterrolebinding oopps-view \
  --clusterrole=view \
  --user=<service-account-id>

Роль view — встроенная в Kubernetes read-only роль, которая даёт доступ к nodes, pods, deployments, metrics и другим объектам без права изменения.

Биллинг

Роль Наблюдатель проекта достаточна для получения данных о расходах через Consumption API. Дополнительные роли на уровне организации не требуются.

API-ключи vs Ключи доступа

В Cloud.ru у сервисного аккаунта есть два типа учётных данных: API-ключи и Ключи доступа. API-ключи ограничены набором сервисов (Managed Kubernetes там нет). Для Oopps.ai используйте Ключи доступа — они дают полный доступ к сервисам проекта.

Пошаговая инструкция

Войти в Console Cloud.ru

Откройте console.cloud.ru и авторизуйтесь в своём аккаунте Cloud.ru Evolution.

Создать сервисный аккаунт

Перейдите в Пользователи → Сервисные аккаунты → Создать. Укажите имя и описание, например oopps-viewer.

Назначить роли

Откройте сервисный аккаунт → Роли:

  • Роль в проекте: Наблюдатель проекта
  • Роль в сервисе Evolution → Managed Kubernetes: k8s.admin

Создать ключ доступа

Откройте созданный сервисный аккаунт. В разделе Учётные данные доступа перейдите на вкладку Ключи доступаСоздать ключ. Укажите описание.

Важно

Сохраните Key ID и Secret сразу после создания. Secret показывается только один раз!

Вставить credentials в Oopps.ai

Перейдите в Коннекторы → Добавить → Cloud.ru. Вставьте Key ID и Secret. Нажмите «Проверить подключение».

Поля формы

Поле Обязательное Где взять Формат
key_id да Ключи доступа сервисного аккаунта 1c3700fa55e2111a...
secret да Ключи доступа сервисного аккаунта (показывается один раз) edffac8a80138199...
project_id нет (определяется автоматически) Console → Project UUID
kubeconfig_raw нет (fallback) Console → MK8S → кластер → kubectl config YAML

Возможные проблемы

Ошибка Причина Решение
Cloud.ru IAM не вернул токен Неверный Key ID или Secret Проверить значения, при необходимости пересоздать ключ
one or more fields have invalid values: projectId Project ID не определился автоматически Укажите вручную в поле project_id
Кластеры не найдены Нет роли в сервисе Managed Kubernetes Назначить роль k8s.user или k8s.admin в Evolution
nodes is forbidden (403) Роль k8s.user не даёт доступ к K8s API кластера Сменить на k8s.admin или создать ClusterRoleBinding с ролью view
Billing 0 ₽ / «Billing API не ответил» Сервисный аккаунт не имеет доступа к Consumption API Проверить, что назначена роль «Наблюдатель проекта» или выше

Ограничения