Настройка управления доступом для рабочей области Azure Synapse

В этой статье рассказывается, как управлять доступом к рабочей области Microsoft Azure Synapse. Для этого мы будем использовать комбинацию ролей Azure, ролей Azure Synapse, разрешений SQL и разрешений Git.

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

Управление доступом Synapse можно упростить, согласовав роли и персоны в организации с группами безопасности. Это позволяет управлять доступом к группам безопасности, просто добавляя и удаляя пользователей.

Прежде чем приступить к выполнению этого пошагового руководства, ознакомьтесь с обзором управления доступом Azure Synapse , чтобы ознакомиться с механизмами управления доступом, используемыми Synapse Analytics.

Механизмы контроля доступа

Замечание

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

Чтобы защитить рабочую область Synapse, настройте следующие элементы:

  • Группы безопасности, чтобы сгруппировать пользователей с аналогичными требованиями к доступу.
  • Роли Azure позволяют управлять тем, кто может создавать пулы SQL, пулы Apache Spark и среды выполнения интеграции и управлять ими, а также получать доступ к хранилищу ADLS 2-го поколения.
  • Роли Synapse для управления доступом к опубликованным артефактам кода, использованием вычислительных ресурсов Apache Spark и сред выполнения интеграции.
  • Разрешения SQL для управления административным доступом и доступом к SQL-пулам в плоскости данных.
  • Разрешения Git для управления доступом к артефактам кода в системе управления версиями, если вы настроили поддержку Git для рабочих областей.

Действия по обеспечению безопасности рабочей области Synapse

В этом документе используются стандартные названия для упрощения инструкций. Замените их именами по вашему выбору.

Настройки Стандартное наименование Описание
Рабочая область Synapse workspace1 Имя, которое будет иметь рабочая область Azure Synapse.
ADLSGEN2 аккаунт storage1 Учетная запись ADLS для использования с рабочим пространством.
Контейнер container1 Контейнер в хранилище1, который рабочая область будет использовать по умолчанию.
Клиент идентификатора Microsoft Entra ID contoso Имя клиента идентификатора Microsoft Entra.
Управляющий службой SERVICEPRINCIPAL Субъект-служба в клиенте Microsoft Entra ID.

Шаг 1: Настройте группы безопасности

Подсказка

Рекомендуется использовать детализированные параметры для управления доступом к рабочему пространству, предоставляя разработчикам доступ к отдельным ресурсам, а не ко всему рабочему пространству. Узнайте больше о Synapse RBAC.

Создайте следующие группы безопасности для рабочей области:

  • workspace1_SynapseAdministratorsдля пользователей, которым требуется полный контроль над рабочим пространством. Добавьте себя в эту группу безопасности, по крайней мере, на начальном этапе.
  • workspace1_SynapseContributorsдля разработчиков, которым необходимо разрабатывать, отлаживать и публиковать код в службе.
  • workspace1_SynapseComputeOperatorsдля пользователей, которым необходимо управлять пулами Apache Spark и средами выполнения интеграции и отслеживать их.
  • workspace1_SynapseCredentialUsersдля пользователей, которым необходимо отлаживать и запускать конвейеры оркестрации с использованием учетных данных MSI (удостоверение управляемой службы) рабочей области и отменять запуски конвейера.

В ближайшее время вы назначите роли Synapse этим группам в области рабочей области.

Также создайте эту группу безопасности:

  • workspace1_SQLAdmins, группа для пользователей, которым требуются права администратора SQL Active Directory, в пулах SQL в рабочей области.

Группа workspace1_SQLAdmins для настройки разрешений SQL при создании пулов SQL.

Этих пяти групп достаточно для базовой конфигурации. Позже можно добавить группы безопасности для работы с пользователями, которым требуется более специализированный доступ, или ограничить доступ только к отдельным ресурсам.

Замечание

Подсказка

Отдельные пользователи Synapse могут использовать идентификатор Microsoft Entra на портале Azure для просмотра своего членства в группах. Это позволяет им определить, какие роли им были предоставлены.

Шаг 2: Подготовка учетной записи хранения ADLS 2-го поколения

Рабочие области Synapse используют контейнеры хранилища по умолчанию для:

  • Хранение файлов резервных данных для таблиц Spark
  • Журналы выполнения для заданий Spark
  • Управление библиотеками, которые вы выбираете для установки

Определите следующую информацию о вашем хранилище:

  • Учетная запись ADLS 2-го поколения для использования в рабочей области. В этом документе он storage1называется . storage1 считается "основной" учетной записью хранения для рабочей области.

  • Контейнер внутри storage1 , который будет использоваться рабочей областью Synapse по умолчанию. В этом документе он container1называется .

  • Выберите Управление доступом (IAM).

  • Нажмите Добавить>Добавить назначение роли, чтобы открыть страницу назначения роли.

  • Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

    Настройки Ценность
    Должность Вкладчик данных хранилища BLOB
    Предоставить доступ к SERVICEPRINCIPAL
    Члены workspace1_SynapseAdministrators, workspace1_SynapseContributors и workspace1_SynapseComputeOperators

    Добавьте страницу назначения ролей на портале Azure.

Шаг 3: Создайте и настройте рабочую область Synapse

На портале Azure создайте рабочую область Synapse:

  • Выбор подписки

  • Выберите или создайте группу ресурсов, для которой у вас есть роль владельца Azure.

  • Присвоение имени рабочему пространству workspace1

  • Выберите storage1 для учетной записи хранения

  • Выберите container1 для контейнера, который используется в качестве "файловой системы".

  • Открыть workspace1 в Synapse Studio

  • В Synapse Studio перейдите в раздел Управление>доступом. В области рабочей области назначьте роли Synapse группам безопасности следующим образом:

    • Назначьте роль администратора Synapseworkspace1_SynapseAdministrators
    • Назначьте роль участника Synapseworkspace1_SynapseContributors
    • Назначьте роль оператора вычислений Synapseworkspace1_SynapseComputeOperators

Шаг 4: Предоставьте MSI доступ к контейнеру хранилища по умолчанию

Для запуска конвейеров и выполнения системных задач Azure Synapse требуется доступ к container1 удостоверению управляемой службы (MSI) в учетной записи ADLS 2-го поколения по умолчанию для рабочей области. Дополнительные сведения см. в статье Управляемое удостоверение рабочей области Azure Synapse.

  • Откройте портал Azure

  • Найдите учетную запись хранения, storage1, а затем container1.

  • Выберите Управление доступом (IAM).

  • Чтобы открыть страницу Добавить назначение роли , выберите Добавить>Добавить назначение роли .

  • Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

    Настройки Ценность
    Должность Вкладчик данных хранилища BLOB
    Предоставить доступ к Управляемая идентичность
    Члены имя управляемой идентичности

    Замечание

    Имя управляемого удостоверения совпадает с именем рабочей области.

    Добавьте страницу назначения ролей на портале Azure.

Шаг 5: Предоставьте администраторам Synapse роль участника Azure для рабочей области

Чтобы создать пулы SQL, пулы Apache Spark и среды выполнения интеграции, пользователям требуется как минимум роль участника Azure для рабочей области. Роль участника также позволяет пользователям управлять ресурсами, включая приостановку и масштабирование. Чтобы использовать портал Azure или Synapse Studio для создания пулов SQL, пулов Apache Spark и сред выполнения интеграции, требуется роль участника на уровне группы ресурсов.

  • Откройте портал Azure

  • Найдите рабочее пространство, workspace1

  • Выберите Управление доступом (IAM).

  • Чтобы открыть страницу Добавить назначение роли , выберите Добавить Добавить>назначение роли.

  • Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

    Настройки Ценность
    Должность Участник (указан в разделе "Роли привилегированных администраторов")
    Предоставить доступ к SERVICEPRINCIPAL
    Члены workspace1_SynapseAdministrators

    Добавьте страницу назначения ролей на портале Azure.

Шаг 6: Назначьте роль администратора SQL Active Directory

Создатель рабочей области автоматически назначается администратором SQL Active Directory для рабочей области. Эта роль может быть предоставлена только одному пользователю или группе. На этом шаге администратор SQL Active Directory для рабочей области workspace1_SQLAdmins назначается группе безопасности. Это предоставляет группе доступ администратора с высокими привилегиями ко всем пулам SQL и базам данных в рабочей области.

  • Откройте портал Azure
  • Перейдите на workspace1
  • В разделе Параметры выберите Microsoft Entra ID
  • Выберите Установить администратора и выберите workspace1_SQLAdmins

Замечание

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

Шаг 7: Предоставьте доступ к пулам SQL

Администратору Synapse по умолчанию также предоставлена роль SQL db_owner для бессерверных пулов SQL в рабочей области.

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

  1. Предоставить пользователям доступ к бессерверному SQL-пулу, «Встроенному» и его базам данных.

  2. Предоставление пользователям доступа к выделенным базам данных пула SQL. Примеры SQL-скриптов включены далее в эту статью.

  3. Чтобы предоставить доступ к выделенной базе данных пула SQL, создатель рабочей области или любой член workspace1_SynapseAdministrators группы может запускать скрипты.

  4. Чтобы предоставить доступ к бессерверному SQL-пулу, 'Built-in', скрипты могут быть запущены любым членом workspace1_SQLAdmins группы или группы workspace1_SynapseAdministrators .

Подсказка

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

Шаг 7a: Бессерверный пул SQL, встроенный

Примеры скриптов в этом разделе можно использовать, чтобы предоставить пользователям разрешение на доступ к отдельной базе данных или ко всем базам данных в бессерверном пуле SQL. Built-in

Замечание

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

Настройка разрешений на уровне базы данных

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

  1. Создайте логин. Изменение контекста master базы данных.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Создайте пользователя в вашей базе данных. Измените контекст базы данных.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Добавьте пользователя в качестве участника указанной роли в вашей базе данных (в данном случае роли db_owner ).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

Настройка разрешений на уровне рабочей области

Вы можете предоставить полный доступ ко всем бессерверным пулам SQL в рабочей области. Запустите скрипт в этом примере в master базе данных:

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

Шаг 7b: настройка выделенных пулов SQL

Вы можете предоставить доступ к одной выделенной базе данных пула SQL. Выполните следующие действия в редакторе скриптов SQL Azure Synapse:

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

    --Create user in the database
    CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER;
    -- For Service Principals you would need just the display name and @domain.com is not required
    
  2. Предоставьте пользователю роль для доступа к базе данных:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

Это важно

db_datareader и db_datawriter роли базы данных могут предоставлять разрешения на чтение и запись, если вы не хотите предоставлять db_owner разрешения. Тем не менее, пользователям Spark требуется db_owner разрешение на чтение и запись непосредственно из Spark в пул SQL или из него.

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

Шаг 8: Добавьте пользователей в группы безопасности

Первоначальная настройка системы контроля доступа завершена.

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

Шаг 9: Сетевая безопасность

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

Шаг 10: Завершение

Теперь ваше рабочее пространство полностью настроено и защищено.

Поддержка более сложных сценариев

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

Включите поддержку Git для рабочей области для более сложных сценариев разработки, включая CI/CD. В режиме Git разрешения Git и Synapse RBAC определяют, может ли пользователь фиксировать изменения в своей рабочей ветви. Публикация в службе происходит только из ветви совместной работы. Рассмотрите возможность создания группы безопасности для разработчиков, которым необходимо разрабатывать и отлаживать обновления в рабочей ветви, но которым не нужно публиковать изменения в действующей службе.

Ограничьте доступ разработчиков к определенным ресурсам. Создавайте другие более детальные группы безопасности для разработчиков, которым нужен доступ только к определенным ресурсам. Назначьте этим группам соответствующие роли Azure Synapse, которые ограничены определенными пулами Spark, средами выполнения интеграции или учетными данными.

Ограничьте операторам доступ к артефактам кода. Создавайте группы безопасности для операторов, которым необходимо отслеживать рабочее состояние вычислительных ресурсов Synapse и просматривать журналы, но которым не требуется доступ к коду или публикации обновлений в службе. Назначьте этим группам роль оператора вычислений, ограниченную определенными пулами Spark и средами выполнения интеграции.

Отключите локальную аутентификацию. Разрешив только проверку подлинности Microsoft Entra, вы можете централизованно управлять доступом к ресурсам Azure Synapse, таким как пулы SQL. Локальная проверка подлинности для всех ресурсов в рабочей области может быть отключена во время или после создания рабочей области. Дополнительные сведения о проверке подлинности, доступной только для Microsoft Entra, см. в разделе "Отключение локальной проверки подлинности в Azure Synapse Analytics".