О правах доступа на уровне окружения
Разрешения на уровне окружения позволяют администраторам dbt предоставлять группам и сервисным токенам права на запись для определённых типов окружений в рамках проекта. Предоставление доступа к окружению даёт пользователям доступ ко всем действиям и ресурсам уровня окружения, требующим прав на запись и предусмотренным назначенными им ролями. Например, пользователи с ролью Developer могут создавать и запускать задания в окружениях, к которым у них есть доступ. Во всех остальных окружениях эти же пользователи будут иметь доступ только для чтения.
В рамках одной группы можно настроить несколько строк для одного и того же набора разрешений, если строки различаются областью действия на уровне проектов и/или доступом на запись к окружениям.
Инструкции по настройке приведены на странице настройки.
Текущие ограничения
Разрешения на уровне окружения предоставляют администраторам dbt больше возможностей для защиты своих окружений, но важно понимать, что у этой функции есть некоторые ограничения, чтобы администраторы могли принимать обоснованные решения о предоставлении доступа.
- Разрешения на уровне окружения не позволяют создавать пользовательские роли и разрешения для каждого типа ресурсов в dbt.
- Можно выбирать только типы окружений, но нельзя указать конкретное окружение в проекте.
- Нельзя выбирать отдельные ресурсы внутри окружений. Задания и запуски dbt — это ресурсы окружения.
- Например, нельзя указать, что пользователь имеет доступ только к заданиям, но не к запускам. Доступ к определённому окружению предоставляет пользователю доступ ко всему внутри этого окружения.
Окружения и роли
В каждом проекте dbt есть четыре типа сред:
- Production — Основное окружение развертывания. Только одно уникальное Production окружение на проект.
- Development — Окружение для тестирования разработчиками. Только одно уникальное Development окружение на проект.
- Staging — Предпродакшн окружение, находящееся между разработкой и продакшном. Только одно уникальное Staging окружение на проект.
- General — Окружения общего назначения. Нет ограничений на количество на проект.
Права на запись в среде (Environment write permissions)
Права на запись в окружении применяются только к перечисленным ниже наборам разрешений. Эти наборы отмечены звёздочкой в таблице наборов разрешений проекта.
Для этих наборов данная настройка предоставляет участникам группы права на создание, редактирование и удаление заданий и запусков в выбранных вами типах окружений. Она не позволяет создавать или удалять сами окружения. Для этих действий требуется набор разрешений с повышенными привилегиями, например Admin или Job admin.
Права на запись в среде могут быть заданы для следующих ролей:
- Analyst
- Database admin
- Developer*
- Git admin
- Job creator**
- Team admin
* В таблице корпоративных разрешений роль Developer имеет доступ к настройкам окружения только для чтения, но при добавлении в группу поле Environment write access по умолчанию принимает значение All environments, что предоставляет более широкие разрешения для окружений, чем указано в таблице. Роли Analyst, Database admin, Git admin и Team admin по умолчанию получают Read-only environment access, если для этой группы не задан другой уровень доступа в поле Environment write access.
** В таблице корпоративных разрешений роль Job creator имеет доступ к окружениям только для чтения. Пользователи могут создавать, редактировать и запускать задания только в тех типах окружений, для которых у группы есть Environment write access. См. раздел Настройка разрешений на уровне окружения.
В зависимости от текущих сопоставлений групп вам может потребоваться обновить роли, чтобы предоставить пользователям нужный уровень доступа к окружениям.
Определите, какие персоны нуждаются в обновленном доступе к окружениям и к каким ролям они должны быть привязаны. Ниже приведены несколько сценариев для прав доступа к окружениям:
- Developer — Доступ на запись для создания и запуска jobs в непроизводственных средах
- Testing/QA — Доступ на запись к средам staging и development для тестирования
- Production deployment — Доступ на запись ко всем средам, включая production, для выполнения развертываний
- Analyst — Не требуется доступ на запись к средам, но нужен доступ только на чтение для исследования данных и устранения проблем
- Other admins — Этим администраторам может потребоваться доступ на запись для создания и запуска jobs или настройки интеграций в любом количестве сред
Проекты и окружения
Права доступа на уровне окружения могут быть применены к одному или нескольким проектам с различным доступом к самим окружениям.
Окружения одного проекта
Если вы работаете с одним проектом, мы рекомендуем ограничить доступ к окружению Production и обеспечить доступ групп к окружениям Development, Staging или General, где они могут безопасно создавать и запускать задания. Пример того, как персоны могут быть сопоставлены с ролями:
- Разработчик: Роль разработчика с доступом на запись к окружениям Development и General
- Тестирование/QA: Роль разработчика с доступом на запись к окружениям Development, Staging и General
- Развертывание в продакшн: Роль разработчика с доступом на запись ко всем окружениям или роль Job Admin, которая имеет доступ ко всем окружениям по умолчанию.
- Аналитик: Роль аналитика без доступа на запись и с доступом только для чтения к окружениям.
- Другие администраторы: Зависит от потребностей администратора. Например, если они управляют развертыванием в продакшн, предоставьте доступ ко всем окружениям.
Несколько проектов
Предположим, что в компании Acme есть 12 проектов, из которых 3 принадлежат Финансам, 3 - Маркетингу, 4 - Производству и 2 - Технологиям.
С различным доступом по проектам:
- Разработчик: Если у пользователя есть роль Разработчика и доступ к Проектам A, B, C, то ему нужен доступ только к окружениям Dev и General.
- Тестирование/QA: Если у них есть роль Разработчика и доступ к Проектам A, B, C, то им нужен доступ только к окружениям Development, Staging и General.
- Развертывание в продакшн: Если у пользователя есть роль Администратора или Разработчика и доступ к Проектам A, B, C, то ему нужен доступ ко всем окружениям.
- Аналитик: Если у пользователя есть роль Аналитика, то ему не нужен доступ на запись ни к одному окружению.
- Другие администраторы: Пользователь (не Администратор) может иметь доступ к нескольким проектам в зависимости от требований.
Если у пользователя одинаковые роли в разных проектах, вы можете применить доступ к окружениям ко всем проектам.