Документация

Yandex Cloud

Полная интеграция: Managed Kubernetes, Compute, Network, Billing.

Обзор

Коннектор Yandex Cloud обеспечивает глубокую интеграцию платформы Oopps.ai с инфраструктурой Yandex Cloud. После подключения платформа автоматически обнаруживает и анализирует ресурсы в указанном каталоге (folder).

Поддерживаемые возможности:

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

Для работы коннектора необходимо назначить сервисному аккаунту минимальный набор ролей. Все роли — только на чтение, Oopps.ai не изменяет и не удаляет ресурсы.

Роль Область Назначение
viewer Каталог (folder) Чтение ресурсов Compute, Network, Storage
compute.viewer Каталог (folder) Чтение виртуальных машин, дисков, образов
k8s.cluster-api.cluster-admin Каталог (folder) Доступ к K8s API кластера для аудита (ноды, поды, метрики). Альтернатива — Oopps Agent в кластере
billing.accounts.editor Billing Account Чтение данных о расходах
Внимание

Роль billing.accounts.editor назначается отдельно на уровне Billing Account, а не на каталоге (folder). Откройте Все сервисы → Cloud Center → Billing → платёжный аккаунт → Управление доступом, чтобы добавить сервисный аккаунт.

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

Найти Folder ID

Откройте Yandex Cloud Console, выберите нужный каталог. На странице Дашборд каталога Folder ID отображается в шапке под названием каталога (формат: b1g...). Нажмите на ID, чтобы скопировать.

Альтернативно через CLI:

yc config list

В выводе найдите строку folder-id — это и есть идентификатор каталога.

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

  1. В левом меню консоли нажмите Все сервисы.
  2. Прокрутите вниз до раздела «Управление ресурсами» и выберите Identity and Access Management.
  3. В левом меню нажмите Сервисные аккаунты.
  4. Нажмите Создать сервисный аккаунт (кнопка в правом верхнем углу).
  5. Укажите имя, например oopps-reader. Описание — «Read-only service account for Oopps.ai audit».
  6. В поле Роли в каталоге нажмите + Добавить роль и добавьте три роли: viewer, k8s.cluster-api.cluster-admin, compute.viewer.
  7. Нажмите Создать.

Или через CLI:

# Создать сервисный аккаунт
yc iam service-account create \
  --name oopps-reader \
  --description "Read-only SA for Oopps.ai"

# Назначить роли на каталоге (подставьте свои folder_id и sa_id)
yc resource-manager folder add-access-binding \
  --id <folder_id> --role viewer --service-account-id <sa_id>
yc resource-manager folder add-access-binding \
  --id <folder_id> --role k8s.cluster-api.cluster-admin --service-account-id <sa_id>
yc resource-manager folder add-access-binding \
  --id <folder_id> --role compute.viewer --service-account-id <sa_id>

Назначить роль для биллинга и скопировать Billing Account ID

  1. В левом меню консоли нажмите Все сервисы.
  2. В верхней части выберите Cloud CenterBilling (Потребление и оплата).
  3. Выберите нужный платёжный аккаунт.
  4. Скопируйте Billing Account ID — он отображается под названием аккаунта (формат: dn...). Он понадобится при настройке коннектора.
  5. В левом меню нажмите Управление доступом.
  6. Нажмите кнопку Назначить роли (в правом верхнем углу). Откроется диалог Выдача доступа.
  7. В левой колонке выберите Сервисные аккаунты, найдите oopps-reader и выберите его.
  8. В поле Роли добавьте billing.accounts.editor и нажмите Сохранить.
Примечание

Billing Account ID и назначение ролей на биллинг доступны только через консоль — в yc CLI нет команды billing.

Создать ключ авторизации

Yandex Cloud поддерживает три способа аутентификации сервисного аккаунта. Выберите подходящий:

a) IAM-токен (для тестирования)

yc iam create-token

Токен действует 12 часов. Подходит для быстрой проверки, но не для постоянной работы.

b) OAuth-токен (долгоживущий)

Получите токен на oauth.yandex.ru. Подходит для тестирования и небольших сред, где допустимо хранить долгоживущий токен.

c) Service Account Key (JSON) — рекомендуется для прода

Через консоль:

  1. Все сервисыIdentity and Access ManagementСервисные аккаунты.
  2. Нажмите на аккаунт oopps-reader.
  3. Сверху нажмите Создать новый ключСоздать авторизованный ключ.
  4. В диалоге нажмите Создать и скачайте JSON-файл с ключом.

Через CLI:

yc iam key create \
  --service-account-id <sa_id> \
  --output key.json

Файл key.json содержит авторизованный ключ. Это наиболее безопасный и надёжный способ аутентификации для production-среды.

Рекомендация

Для production-окружения всегда используйте Service Account Key. IAM-токен истекает через 12 часов, а OAuth-токен привязан к пользователю, а не к сервисному аккаунту.

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

Откройте платформу Oopps.ai → КоннекторыДобавить → выберите Yandex Cloud.

Заполните поле folder_id и выберите способ аутентификации из списка. Вставьте соответствующий ключ или токен. Нажмите Подключить.

После успешного подключения Oopps.ai начнёт обнаружение кластеров и сбор инвентаря в течение нескольких минут.

Поля формы

Поле Обязательное Где взять Формат
folder_id Да Console → Каталог → Дашборд → ID в шапке b1gxxxxxxxxxx
cloud_id Нет Console → Облако → ID в шапке b1gxxxxxxxxxx
billing_account_id Нет (нужен для биллинга) Cloud Center → Billing → ID под названием аккаунта dnxxxxxxxxxx
auth_method Да Выбор из списка iam_token | oauth_token | service_account_key
iam_token Только при auth_method=iam_token yc iam create-token Строка токена
oauth_token Только при auth_method=oauth_token oauth.yandex.ru Строка токена
service_account_key Только при auth_method=service_account_key yc iam key create --output key.json JSON целиком (содержимое key.json)

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

Ошибка Причина Решение
403 Forbidden Нет роли viewer на каталоге Назначьте роль viewer через Права доступа каталога
401 Unauthorized Истёк IAM-токен (срок жизни — 12 часов) Обновите токен командой yc iam create-token или переключитесь на Service Account Key
Биллинг пуст Не указан billing_account_id или нет роли Добавьте billing_account_id в настройках коннектора и назначьте billing.accounts.editor
Кластеры не найдены Нет роли viewer на каталоге Роль viewer покрывает листинг кластеров Managed Kubernetes
Аудит K8s пуст (403 на ноды) Нет доступа к K8s API кластера (ноды, поды) Назначьте k8s.cluster-api.cluster-admin на каталоге — она открывает доступ к нодам, подам и метрикам через K8s API.

Если выдать kubeconfig наружу невозможно по политике безопасности — установите Oopps Agent прямо в кластер (Helm-чарт). Агент работает изнутри: собирает метрики, формирует рекомендации по rightsizing и может применять оптимизации автоматически — но только с явным подтверждением (approve) через UI, Telegram или webhook. Без вашего разрешения никакие изменения в кластере не выполняются.
Ресурсы без стоимости Yandex Billing API не возвращает поресурсные данные для вашего аккаунта Oopps.ai автоматически использует данные по SKU и распределяет затраты по типам ресурсов. Убедитесь, что роль billing.accounts.editor назначена
Нет связи с API Сетевая проблема (DNS, firewall, VPN) Проверьте доступность api.cloud.yandex.net, настройки DNS и VPN

Ограничения

Примечание

Если у вас возникли вопросы по настройке коннектора, обратитесь в раздел FAQ или напишите в поддержку через платформу.