Настройка Snowflake для автоматического управления учетными записями пользователей с помощью Microsoft Entra ID

В этой статье показаны шаги, которые необходимо выполнить в Snowflake и Microsoft Entra ID, чтобы настроить Microsoft Entra ID для автоматического создания и удаления пользователей и групп в Snowflake. Важные сведения о том, что делает эта служба, как она работает, и часто задаваемые вопросы см. в статье "Что такое автоматическая подготовка пользователей приложения SaaS в идентификаторе Microsoft Entra ID?".

Поддерживаемые возможности

  • Создание пользователей в Snowflake
  • Удаление пользователей в Snowflake, когда они больше не требуют доступа
  • Синхронизация атрибутов пользователей между идентификатором Microsoft Entra и Snowflake
  • Управление группами и членством в них в Snowflake
  • Разрешить единый вход в Snowflake (рекомендуется)
  • Поддерживается аутентификация с использованием долгоживущих токенов типа носителя.

Предпосылки

В сценарии, описанном в этой статье, предполагается, что у вас уже есть следующие условия:

Шаг 1. Планирование развертывания снабжения

  1. Узнайте, как работает служба предоставления.
  2. Определите, кто находится в области подготовки.
  3. Определите, какие данные необходимо сопоставить между идентификатором Microsoft Entra и Snowflake.

Шаг 2. Настройка Snowflake для поддержки предоставления ресурсов с помощью Microsoft Entra ID

Перед тем как настроить Snowflake для автоматического предоставления учетных записей пользователей с помощью Microsoft Entra ID, необходимо включить обеспечивание System for Cross-domain Identity Management (SCIM) в Snowflake.

  1. Войдите в Snowflake от имени администратора и выполните следующие действия из интерфейса листа Snowflake или SnowSQL.

    use role accountadmin;
    
     create role if not exists aad_provisioner;
     grant create user on account to role aad_provisioner;
     grant create role on account to role aad_provisioner;
    grant role aad_provisioner to role accountadmin;
     create or replace security integration aad_provisioning
         type = scim
         scim_client = 'azure'
         run_as_role = 'AAD_PROVISIONER';
     select system$generate_scim_access_token('AAD_PROVISIONING');
    
  2. Используйте роль ACCOUNTADMIN.

    Снимок экрана: лист в интерфейсе Snowflake с выделенным маркером доступа SCIM.

  3. Создайте настраиваемую роль AAD_PROVISIONER. Все пользователи и роли в Snowflake, созданные с помощью идентификатора Microsoft Entra, принадлежат роли AAD_PROVISIONER с ограниченной сферой действия.

    Снимок экрана, показывающий пользовательскую роль.

  4. Позвольте роли ACCOUNTADMIN создать интеграцию безопасности с помощью пользовательской роли AAD_PROVISIONER.

    Снимок экрана: интеграция безопасности.

  5. Создайте и скопируйте маркер авторизации в буфер обмена и безопасно сохраните его для последующего использования. Используйте этот маркер для каждого запроса REST API SCIM и поместите его в заголовок запроса. Срок действия маркера доступа истекает через шесть месяцев, а новый маркер доступа можно создать с помощью этой инструкции.

    Снимок экрана, показывающий генерацию токена.

Добавьте Snowflake из коллекции приложений Microsoft Entra, чтобы начать управление предоставлением полномочий в Snowflake. Если вы ранее настроили Snowflake для единого входа, можно использовать то же приложение. Однако рекомендуется создать отдельное приложение при первоначальном тестировании интеграции. Дополнительные сведения о добавлении приложения из галереи.

Шаг 4. Определение того, кто подлежит обеспечению

Служба подготовки Microsoft Entra позволяет определить, кто подготовлен на основе назначения приложению или на основе атрибутов пользователя или группы. Если вы решите определить, кто будет предоставлен доступ к вашему приложению на основе назначения, можно использовать действия для назначения пользователей и групп приложению. При определении области, основанной исключительно на атрибутах пользователя или группы, можно использовать фильтр области.

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

  • Если вам нужны дополнительные роли, можно обновить манифест приложения , чтобы добавить новые роли.

Шаг 5. Настройка автоматической подготовки пользователей в Snowflake

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

Чтобы настроить автоматическое предоставление пользователей для Snowflake в Microsoft Entra ID, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.

  2. Перейдите к Entra ID>Корпоративные приложения.

    Снимок экрана: область корпоративных приложений.

  3. В списке приложений выберите Snowflake.

    Снимок экрана: список приложений.

  4. Перейдите на вкладку "Подготовка ".

    Снимок экрана: параметры управления с выделенной опцией обеспечения.

  5. Выберите + Новая конфигурация.

    Автоматический снимок экрана вкладки

  6. В разделе "Учетные данные администратора" введите базовый URL-адрес SCIM 2.0 и маркер проверки подлинности, полученный ранее в полях "URL-адрес клиента " и "Секретный маркер " соответственно.

    Замечание

    Конечная точка SCIM Snowflake состоит из URL-адреса учетной записи Snowflake, который заканчивается на /scim/v2/. Например, если имя вашей учетной записи Snowflake — это acme, и ваша учетная запись Snowflake находится в регионе Azure east-us-2, то значение URL-адреса клиента равно https://acme.east-us-2.azure.snowflakecomputing.com/scim/v2.

  7. Выберите "Проверить подключение", чтобы убедиться, что идентификатор Microsoft Entra может подключиться к Snowflake. Если подключение завершается ошибкой, убедитесь, что учетная запись Snowflake имеет необходимые разрешения администратора и повторите попытку.

    Скриншот тестового подключения службы управления.

  8. Нажмите кнопку "Создать", чтобы создать конфигурацию.

  9. Выберите "Свойства " на странице обзора .

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

    Скриншот свойств Provisioning.

  11. Выберите сопоставление атрибутов на левой панели и выберите пользователей.

  12. Просмотрите атрибуты пользователя, которые синхронизированы из Microsoft Entra ID в Snowflake в разделе "Сопоставление атрибутов". Атрибуты, выбранные в качестве свойств сопоставления , используются для сопоставления учетных записей пользователей в Snowflake для операций обновления. Нажмите кнопку "Сохранить ", чтобы зафиксировать любые изменения.

    Свойство Тип
    активный Булев
    отображаемое имя Струна
    Электронные письма[тип eq "работа"].значение Струна
    userName Струна
    имя.имяОтчество Струна
    имя_фамилия Струна
    externalId (внешний идентификатор) Струна
    urn:ietf:params:scim:schemas:extension:2.0:User:type Управление пользователями — Документация Snowflake Струна

    Замечание

    Изменение отображаемого имени группы теперь разблокировано. Ранее отображаемое имя группы в Snowflake не могло быть изменено, что препятствовало клиентам редактировать сопоставление. Теперь он редактируется.

    Замечание

    Snowflake поддерживает пользовательские атрибуты расширений при предоставлении SCIM.

    • роль по умолчанию
    • DEFAULT_WAREHOUSE
    • Роли по умолчанию
    • ИМЯ SNOWFLAKE И ПОЛЯ LOGIN_NAME ДОЛЖНЫ БЫТЬ РАЗНЫМИ.

    Как настроить настраиваемые атрибуты расширения Snowflake в подготовке пользователей Microsoft Entra SCIM , описано здесь.

  13. Выберите Группы.

  14. Просмотрите атрибуты группы, которые синхронизируются из Microsoft Entra ID в Snowflake в разделе "Сопоставление атрибутов". Атрибуты, выбранные в качестве свойств сопоставления , используются для сопоставления групп в Snowflake для операций обновления. Нажмите кнопку "Сохранить ", чтобы зафиксировать любые изменения.

    Свойство Тип
    отображаемое имя Струна
    члены Справка
  15. Чтобы настроить фильтры области, ознакомьтесь со следующими инструкциями, приведенными в статье о фильтре области.

  16. Используйте подготовку по запросу для проверки синхронизации с небольшим количеством пользователей перед развертыванием в организации.

  17. Когда вы будете готовы к подготовке, выберите "Начать подготовку " на странице обзора .

Шаг 6. Мониторинг развертывания

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

  1. Используйте журналы подготовки для определения успешной или неудачной подготовки пользователей.
  2. Проверьте индикатор хода выполнения, чтобы увидеть статус цикла подготовки и насколько он близок к завершению.
  3. Если конфигурация предоставления ресурсов кажется неисправной, приложение переходит в режим изоляции. Узнайте больше о состоянии карантина из статьи о состоянии карантина подготовки приложений .

Ограничения соединителя

Срок действия маркеров SCIM, созданных snowflake, истекает через 6 месяцев. Помните, что необходимо обновить эти маркеры до истечения срока их действия, чтобы разрешить синхронизации подготовки продолжать работать.

Оперативный (JIT) доступ к приложениям с помощью PIM для групп

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

Настройте корпоративное приложение для единого входа (SSO) и подготовки учетных записей

Чтобы настроить постоянный, неадминистраторный доступ в Snowflake, выполните следующие действия:

  1. Добавьте Snowflake в клиент, настройте его для подготовки, как описано в предыдущих шагах этого руководства, и запустите подготовку.
  2. Настройка единого входа для Snowflake.
  3. Создайте группу, которая предоставляет всем пользователям доступ к приложению.
  4. Назначьте группу приложению Snowflake.
  5. Назначьте тестового пользователя в качестве прямого члена группы, созданной для доступа всех пользователей, или предоставьте доступ к группе через пакет доступа. Эта группа предоставляет постоянный, неадминистраторный доступ в Snowflake.

Включение PIM для групп

Чтобы предоставить своевременный доступ администратора, выполните следующие действия:

  1. Создайте вторую группу в Microsoft Entra ID. Эта группа предоставляет доступ к разрешениям администратора в Snowflake.
  2. Переведите группу под управление в Microsoft Entra PIM.
  3. Назначьте тестового пользователя как подходящего для группы в PIM с ролью участника.
  4. Назначьте вторую группу приложению Snowflake.
  5. Используйте подготовку по запросу для создания группы в Snowflake.
  6. Войдите в Snowflake и назначьте второй группе необходимые разрешения для выполнения задач администратора.

Теперь любой конечный пользователь, который в PIM получил право на участие в группе, может получить JIT-доступ к группе в Snowflake, активировав свое членство в группе.

Основные рекомендации

  • Сколько времени требуется для подготовки пользователя к приложению?
    • Когда пользователь добавляется в группу в Microsoft Entra ID без активации членства в группе через Microsoft Entra Управление Привилегированными Идентификационными Данными (PIM):
      • Членство в группе включается в приложении во время следующего цикла синхронизации. Цикл синхронизации выполняется каждые 40 минут.
    • Когда пользователь активирует членство в группе в Microsoft Entra ID PIM:
      • Членство в группе подготавливается через 2–10 минут. В периоды высокой нагрузки запросы ограничиваются до пяти запросов каждые 10 секунд.
      • Для первых пяти пользователей в течение 10-секундного периода активации членства в группе для определенного приложения членство в группах подготавливается в приложении в течение 2–10 минут.
      • Для шестого и последующих пользователей, активировавших членство в группе для определенного приложения в течение 10 секунд, членство в группе предоставляется приложению в следующем цикле синхронизации. Цикл синхронизации выполняется каждые 40 минут. Ограничения пропускной способности устанавливаются на каждое корпоративное приложение.
  • Если пользователь не может получить доступ к необходимой группе в Snowflake, просмотрите раздел "Советы по устранению неполадок ", журналы PIM и журналы подготовки, чтобы убедиться, что членство в группе успешно обновлено. В зависимости от того, как создается целевое приложение, может потребоваться дополнительное время для вступления в силу членства в группе в приложении.
  • Вы можете создавать оповещения о сбоях с помощью Azure Monitor.
  • Деактивация выполняется во время регулярного инкрементного цикла. Он не обрабатывается немедленно при помощи поставки по запросу.

Советы по устранению неполадок

Служба подготовки Microsoft Entra в настоящее время работает в определенных диапазонах IP-адресов. При необходимости можно ограничить другие диапазоны IP-адресов и добавить эти определенные диапазоны IP-адресов в список разрешенных приложений. Этот метод обеспечит поток трафика из службы управления Microsoft Entra в ваше приложение.

Журнал изменений

  • 21.07.2020: включено мягкое удаление для всех пользователей (с помощью атрибута active).
  • 10.12.2022: обновленная конфигурация SCIM Snowflake.

Дополнительные ресурсы