Настройка защиты репозитория Git
Чтобы Git Sync работал корректно, необходимо настроить права доступа на двух уровнях:
- На уровне вашего Git-провайдера — для защиты репозитория, как описано в этом документе.
- На уровне Grafana — для управления репозиториями и доступа к ресурсам. Дополнительную информацию см. в разделе Права доступа и контроль доступа Git Sync.
Когда вы используете Git Sync, конфигурации дашбордов хранятся в виде кода в репозитории Git. Вы можете настроить защиту репозитория Git, чтобы контролировать, кто имеет доступ к этому исходному коду и кто может его изменять. Защита репозитория работает как дополнительный уровень безопасности после внутренних прав доступа Grafana.
Требуемые права на уровне Git-провайдера
Учётные данные для аутентификации Git Sync должны иметь определённые права у вашего Git-провайдера:
Требуется для всех конфигураций:
- Доступ на чтение содержимого репозитория
- Доступ на чтение информации о ветках
Требуется для записи изменений:
- Доступ на запись для создания коммитов
- Право на создание pull request (когда включена защита веток)
- Право на отправку в feature-ветки (для создания pull request)
Необязательно для мгновенной синхронизации:
- Право на создание вебхуков и управление ими
Инструкции по настройке аутентификации для вашего Git-провайдера см. в документации по настройке Git Sync.
Контроль доступа к исходному коду дашбордов
Доступ к исходному коду дашбордов возможен по двум путям, каждый из которых имеет собственный механизм защиты:
-
Конечная точка files в Grafana: пользователи могут просматривать и редактировать исходный код дашбордов через конечную точку files API Grafana. Используйте права доступа к папкам и дашбордам Grafana, чтобы контролировать этот доступ. Дополнительную информацию см. в разделе Управление доступом к исходному коду дашбордов через API.
-
Репозиторий Git: пользователи с доступом к репозиторию могут просматривать и изменять файлы дашбордов напрямую в Git. Права доступа к репозиторию можно контролировать у вашего Git-провайдера. Дополнительную информацию см. в разделе Контроль доступа к вашему репозиторию Git.
Защитите обе точки доступа, чтобы обезопасить конфигурации ваших дашбордов.
Управление доступом к исходному коду дашбордов через API
Просмотр исходного кода дашборда
Вы можете просматривать исходный код дашборда через конечную точку files, если у вас есть право Viewer или выше на дашборд или его родительскую папку. Это позволяет вам:
- Просматривать список файлов в выделенных папках и ветках
- Читать содержимое JSON дашборда
- Просматривать структуру и организацию папок
Редактирование исходного кода дашборда
Вы можете изменять исходный код дашборда через конечную точку files, если у вас есть право Editor или Admin на дашборд или его родительскую папку. Это позволяет вам:
- Создавать новые файлы дашбордов
- Обновлять содержимое существующих дашбордов
- Удалять дашборды
- Изменять структуру папок
Когда вы сохраняете изменения через эту конечную точку, Git Sync фиксирует эти изменения в репозитории Git (или создаёт pull request, если включена защита веток), в зависимости от прав доступа к репозиторию Git.
Подробную информацию о настройке прав доступа к папкам и дашбордам в Grafana см. в разделе Права доступа и контроль доступа Git Sync.
Контроль доступа к вашему репозиторию Git
Контроль доступа на уровне Git-провайдера определяет, кто может просматривать и изменять исходный код ваших дашбордов. Настройте доступ к репозиторию исходя из ваших требований к безопасности и соответствию нормативным требованиям.
Доступ на чтение (видимость репозитория)
Доступ на чтение определяет, кто может просматривать исходный код дашбордов, хранящийся в вашем репозитории. Сюда входят JSON-файлы дашбордов, структура папок и любые другие файлы в репозитории.
Публичные репозитории: любой может просматривать содержимое репозитория, включая конфигурации дашбордов и любые содержащиеся в них данные или запросы. Используйте публичные репозитории только в том случае, если ваши дашборды не содержат конфиденциальной информации.
Приватные репозитории: только авторизованные пользователи могут просматривать содержимое репозитория. Это защищает конфигурации дашбордов, запросы и любые встроенные учётные данные или конфиденциальные данные от публичного доступа.
Чтобы Git Sync работал, учётные данные для аутентификации, настроенные в Grafana, должны иметь доступ на чтение, чтобы забирать изменения дашбордов из Git в Grafana.
Доступ на запись (права на push)
Доступ на запись определяет, кто может отправлять изменения в ваш репозиторий. Это определяет, кто может изменять исходный код дашбордов — напрямую или через pull request.
Прямой доступ на запись: пользователи с правом на запись могут отправлять коммиты напрямую в ветки. Чтобы Git Sync мог отправлять изменения дашбордов из Grafana в Git, учётные данные для аутентификации должны иметь доступ на запись в репозиторий.
Защищённые ветки: правила защиты веток могут ограничивать прямую запись и требовать, чтобы изменения проходили через pull request с проверкой и одобрением, даже для пользователей с правом на запись.
Инструкции по настройке аутентификации для вашего Git-провайдера см. в документации по настройке Git Sync.
Контроль способа записи изменений в Git Sync
Git Sync поддерживает разные режимы записи изменений дашбордов в ваш репозиторий: от разрешения прямых коммитов до требования формальных процессов проверки.
Режим только для чтения
Настройте репозиторий как доступный только для чтения в Grafana, чтобы предотвратить любую запись в Git из интерфейса Grafana. Дашборды синхронизируются из Git в Grafana, но пользователи не могут сохранять изменения обратно в Git.
Когда использовать: когда Git является единственным источником истины и все изменения должны вноситься через прямые коммиты в Git или процессы CI/CD.
Режим прямых коммитов
Когда репозиторий допускает запись и защита веток не включена, Git Sync фиксирует изменения дашбордов напрямую в настроенную ветку без проверки.
Когда использовать: когда требуется быстрая итерация и изменения не нуждаются в формальной проверке, например в средах разработки.
Режим pull request
Когда у вашего Git-провайдера включена защита веток, Git Sync предлагает вам создать pull request в вашем репозитории Git вместо прямого коммита. Изменения требуют проверки и одобрения перед слиянием в основную ветку.
Когда использовать: когда изменения требуют проверки и одобрения, например в продуктивных средах или когда несколько команд совместно работают над дашбордами.
Защита вашей ветки
Правила защиты веток у вашего Git-провайдера определяют, как вносятся изменения в конкретные ветки. Когда они включены для ветки, на которую нацелен Git Sync, эти правила требуют, чтобы Git Sync создавал pull request вместо прямой отправки коммитов.
Типичные сценарии использования защиты веток:
- Продуктивные среды, требующие одобрения изменений
- Требования соответствия для аудита и проверки
- Среды с несколькими командами, где изменения должны быть видимы
Защита веток может обеспечивать различные механизмы контроля, такие как требование pull request перед слиянием, установка требований к одобрению проверяющими, запуск автоматических проверок, запрет принудительных push и ограничение того, кто может отправлять напрямую в защищённые ветки.
Конкретные инструкции по настройке правил защиты веток см. в документации вашего Git-провайдера.
Назначение проверяющих на код
Многие Git-провайдеры поддерживают файлы CODEOWNERS, которые автоматически назначают проверяющих на pull request в зависимости от того, какие файлы изменены. Когда Git Sync создаёт pull request, Git-провайдер может использовать файл CODEOWNERS, чтобы назначить подходящую команду или пользователей для проверки.
Это гарантирует, что изменения дашбордов проверяются командами, ответственными за эти дашборды, на основе пути к папке или шаблонов файлов.
Инструкции по настройке файлов CODEOWNERS см. в документации вашего Git-провайдера.
Устранение неполадок
По вопросам устранения неполадок с правами доступа см. раздел Устранение неполадок с правами доступа в документации по правам доступа Git Sync.