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

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

Разрешения на уровне окружения дают администраторам dbt возможность предоставлять права на запись группам и сервисным токенам для определённых типов окружений внутри проекта. Предоставление доступа к окружению даёт пользователям доступ ко всем действиям и ресурсам уровня окружения, требующим прав на запись, в соответствии с назначенными им ролями. Например, пользователи с ролью Developer могут создавать и запускать задания в тех окружениях, к которым у них есть доступ. Во всех остальных окружениях эти же пользователи будут иметь доступ только для чтения.

Для инструкций по настройке ознакомьтесь со страницей настройки.

Текущие ограничения

Разрешения на уровне окружения дают администраторам dbt больше гибкости для защиты своих окружений. Однако важно понимать, что у этой функции есть определённые ограничения, чтобы администраторы могли принимать осознанные решения при предоставлении доступа.

  • Разрешения на уровне окружения не позволяют создавать пользовательские роли и разрешения для каждого типа ресурса в dbt.
  • Вы можете выбирать только типы окружений и не можете указать конкретное окружение внутри проекта.
  • Вы не можете выбирать отдельные ресурсы внутри окружений. Jobs и runs в dbt считаются ресурсами окружения.
    • Например, нельзя указать, что пользователь имеет доступ только к jobs, но не к runs. Доступ к конкретному окружению автоматически даёт пользователю доступ ко всему, что находится внутри этого окружения.

Окружения и роли

dbt имеет четыре различных типа окружений для каждого проекта:

  • Production — Основное окружение развертывания. Только одно уникальное Production окружение на проект.
  • Development — Окружение для тестирования разработчиками. Только одно уникальное Development окружение на проект.
  • Staging — Предпродакшн окружение, находящееся между разработкой и продакшном. Только одно уникальное Staging окружение на проект.
  • General — Окружения общего назначения. Нет ограничений на количество на проект.

Права на запись в среде (Environment write permissions)

Права на запись в среде предоставляют доступ к созданию, редактированию и удалению запусков (runs) и заданий (jobs) внутри среды. Однако они не дают пользователям права создавать или удалять сами среды. Дополнительную информацию о расширенных наборах прав см. в разделе Enterprise permissions.

Права на запись в среде могут быть заданы для следующих ролей:

  • Analyst
  • Database admin
  • Developer (Ранее — доступ на запись по умолчанию для всех сред. Новый вариант по умолчанию — доступ только на чтение для сред, если доступ явно не указан)
  • Git admin
  • Team admin

В зависимости от текущих сопоставлений групп, возможно, вам придется обновить роли, чтобы гарантировать, что пользователи имеют правильный уровень доступа к окружениям.

Определите, какие персоны нуждаются в обновленном доступе к окружениям и к каким ролям они должны быть привязаны. Ниже приведены несколько сценариев для прав доступа к окружениям:

  • 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