mirror of
https://gitverse.ru/kpa39l/openspec-lab.git
synced 2026-09-29 09:15:01 +00:00
49 lines
2.4 KiB
Markdown
49 lines
2.4 KiB
Markdown
# Design: Grafana read-only user — ручное создание (OSS-совместимо)
|
|
|
|
## Файлы
|
|
|
|
| Файл | Действие | Назначение |
|
|
|---|---|---|
|
|
| `/opt/monitoring/grafana-data/grafana.db` | изменяется Grafana при создании пользователя | хранит учётку (UI, не вручную) |
|
|
| `/opt/monitoring/README.md` | обновить | документация пользователя и роли |
|
|
| `/opt/monitoring/EXPERIENCE.md` | обновить | вывод: OSS 11.1 не умеет provisioning users |
|
|
|
|
Никакие конфиги/провиджеры НЕ меняются.
|
|
|
|
## Почему не provisioning
|
|
|
|
- `grafana/provisioning/access-control/users.yml` — файловое provisioning
|
|
пользователей в Grafana 11 OSS **не обрабатывается** (в логах только
|
|
dashboards/datasources/alerting/plugins; access-control — EE-фича).
|
|
- API: `POST /api/users` → 404 (OSS), `POST /api/login` → 401 при верном
|
|
пароле (Basic auth работает, JSON-логин нет). Доступно только создание
|
|
пользователя в **UI**.
|
|
|
|
## Создание в UI
|
|
|
|
1. Открыть `http://grafana.nixg.ru` (или `http://127.0.0.1:3001`), войти
|
|
как `estorozhenko` (admin).
|
|
2. Administration → Users → **New user**:
|
|
- Email: `it@vinogorod.ru`
|
|
- Name: `IT Vinogorod`
|
|
- Role: `Viewer`
|
|
- Password: `1qazXSW2` (задать вручную, не отсылать invite)
|
|
3. Сохранить.
|
|
|
|
## Проверка (после создания)
|
|
|
|
```bash
|
|
# 1. логин рабочий
|
|
curl -s -u 'it@vinogorod.ru:1qazXSW2' http://127.0.0.1:3001/api/user
|
|
# 2. роль Viewer в орге
|
|
curl -s -u 'estorozhenko:...' http://127.0.0.1:3001/api/orgs/1/users
|
|
# 3. read-only: админ-ручка недоступна
|
|
curl -s -u 'it@vinogorod.ru:1qazXSW2' http://127.0.0.1:3001/api/users # → 403
|
|
```
|
|
|
|
## Риски
|
|
|
|
- Слабый пароль `1qazXSW2` (клавиатурная последовательность) на публичной
|
|
Grafana. Рекомендовать смену или ограничение доступа по IP (caddy/VPN).
|
|
- Пользователь создаётся вручную — при перезаписи grafana-data потребуется
|
|
пересоздать. Продублировать в README. |