Перейти к основному содержимому

О правах доступа на уровне окружения

Разрешения на уровне окружения позволяют администраторам 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, то ему нужен доступ ко всем окружениям.
  • Аналитик: Если у пользователя есть роль Аналитика, то ему не нужен доступ на запись ни к одному окружению.
  • Другие администраторы: Пользователь (не Администратор) может иметь доступ к нескольким проектам в зависимости от требований.

Если у пользователя одинаковые роли в разных проектах, вы можете применить доступ к окружениям ко всем проектам.

Связанная документация​

Нашли ошибку?

0
Loading