Плагин: Yandex Cloud
Облако из хаба nkt: ВМ, диски и снимки, группы безопасности, Object Storage, Cloud DNS, управляемые PostgreSQL и MySQL, баланс. ВМ можно добавить и как хост nkt — с находками и действиями.

| Раздел | Что |
|---|---|
| ВМ | каталог, зона, состояние, ресурсы, адреса; включить, выключить, перезагрузить, снимок загрузочного диска |
| Диски и снимки | к чему подключены; снимок любого диска; удалить снимок |
| Группы безопасности | входящие правила, открытые всему интернету (0.0.0.0/0); опасные порты (22, 3389, БД) — ⚠ |
| Object Storage | бакеты: публичный ли (чтение, список) и размер |
| Cloud DNS | зоны и записи; для хаба — provides: dns: имена Traffic Fly, сайтов, автоимена (чужие значения у тех же имён не трогаются) |
| Базы данных | Managed PostgreSQL и MySQL: окружение, состояние, здоровье |
| Баланс | платёжного аккаунта (если задан) |
ВМ как хост nkt: «Хосты» → «Добавить устройство» → «ВМ Yandex Cloud» → имя ВМ. Находки: ВМ выключена, прерываемая, порт 22/3389/БД открыт всему интернету, публичный адрес без групп безопасности, у загрузочного диска нет снимка за 7 дней. Конфигурация (ресурсы, платформа, диски, группы, метки, имена ключей метаданных — без значений) хранится версиями с диффом.
Сценарии: yc vm start|stop|restart ИМЯ, yc snapshot ИМЯ-ВМ, yc dns set ИМЯ ТИП ЗНАЧЕНИЕ[,…] [ttl N], yc dns rm ИМЯ ТИП. MCP: yc_*.
Доступ
yc iam service-account create --name nkt
yc resource-manager folder add-access-binding <каталог> --role viewer --service-account-name nkt # смотреть
yc resource-manager folder add-access-binding <каталог> --role editor --service-account-name nkt # и управлять
yc iam key create --service-account-name nkt -o key.json
base64 -w0 key.jsonДля DNS достаточно dns.editor, для баланса — billing.accounts.viewer на платёжный аккаунт. Чем меньше ролей, тем лучше: viewer — только смотреть.
Поставить
«О системе» → «Плагины» → «Установить на хост» → Yandex Cloud — машина хаба или любой хост с интернетом (нужен openssl: им плагин подписывает JWT для входа). Настройки: ключ (строка base64 из base64 -w0 key.json, секрет), каталоги (id через запятую), платёжный аккаунт (по желанию). Служба nkt-plugin-yc, 127.0.0.1:9240.
Ключ хранится только в настройках службы (0600) на её хосте; IAM-токен — в памяти плагина, не дольше часа.
Проверка
python3 -I examples/yandex-cloud/deploy/test_plugin.py — плагин против поддельного API Yandex Cloud; подпись JWT (PS256) проверяет настоящий openssl по открытому ключу. Его же запускает go test ./examples.