Поделиться через


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

Из этой статьи вы узнаете, как управлять доступом к рабочей области Synapse Microsoft Azure. Для этого мы будем использовать сочетание ролей 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 Контейнер в STG1, который будет использоваться по умолчанию рабочей областью.
Клиент Active Directory contoso Имя клиента Active Directory.

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

Примечание.

В рамках предварительной версии вам было рекомендовано создавать группы безопасности с привязкой к следующим ролям Azure Synapse: Администратор Synapse SQL и Администратор Synapse Apache Spark. После появления новых специальных ролей и областей Synapse RBAC с лучшей детализацией рекомендуется использовать эти новые возможности для контроля доступа к рабочей области. Эти возможности обеспечивают большую гибкость при настройке и учитывают то, что разработчики часто используют сочетание SQL и Spark для создания приложений аналитики. Поэтому разработчикам может потребоваться доступ к отдельным ресурсам, а не ко всей рабочей области. Узнайте подробнее о Synapse RBAC.

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

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

Вы добавите этим группам роли Synapse при выполнении последующих шагов.

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

  • workspace1_SQLAdmins — группа для пользователей, которым нужны права доступа администратора Active Directory для SQL в пределах пулов 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

    Страница

Шаг 3. Создание и настройка рабочей области Synapse

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

  • Выберите свою подписку.

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

  • Имя рабочей области workspace1

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

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

  • Откройте WS1 в Synapse Studio.

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

    • Роль Администратор Synapse для workspace1_SynapseAdministrators
    • Роль Администратор Synapse для workspace1_SynapseContributors
    • Роль Оператор вычислительной среды Synapse для workspace1_SynapseComputeOperators

Шаг 4. Предоставление msi-файлам рабочей области доступа к контейнеру хранилища по умолчанию

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

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

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

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

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

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

    Параметр Значение
    Роль Участник данных хранилища BLOB-объектов
    Назначить доступ для MANAGEDIDENTITY
    Участники имя управляемого удостоверения

    Примечание.

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

    Страница

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

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

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

  • Найдите рабочую область workspace1.

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

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

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

    Параметр Значение
    Роль Участник
    Назначить доступ для SERVICEPRINCIPAL
    Участники workspace1_SynapseAdministrators

    Страница

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

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

  • Откройте портал Azure.
  • Перейдите на страницу workspace1.
  • В разделе "Параметры" выберите идентификатор Microsoft Entra
  • Нажмите Задать администратора и выберите 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 и встроенным службам, эти скрипты может выполнить любой участник группы workspace1_SQLAdmins или workspace1_SynapseAdministrators.

Совет

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

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

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

Примечание.

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

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

Вы можете предоставить пользователям доступ к одной бессерверной базе данных 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. Выполните следующие действия в редакторе скриптов Azure Synapse SQL:

  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_owner, то можете воспользоваться ролями базы данных db_datareader и db_datawriter, чтобы предоставить разрешения на чтение и запись. Однако для чтения и записи напрямую из Spark в пул SQL или из пула SQL пользователям Spark потребуется разрешение db_owner.

После создания пользователей вы можете выполнить запросы, чтобы убедиться в том, что бессерверные пулы 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".

Следующие шаги