Роли для управления субъектами-службами

В этой статье описывается управление ролями субъектов-служб в учетной записи Azure Databricks.

Субъект-служба — это удостоверение, которое вы создаете в Azure Databricks для использования с автоматизированными инструментами, заданиями и приложениями. Субъекты-службы предоставляют автоматические средства и скрипты с доступом к ресурсам Azure Databricks только с помощью API, которые обеспечивают большую безопасность, чем использование пользователей или групп.

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

Общие сведения о субъектах-службах см. в разделе "Управление субъектами-службами".

Роли субъекта-службы

Роли субъекта-службы — это роли уровня учетной записи. Это означает, что они должны быть определены только один раз в учетной записи и применяться во всех рабочих областях. Существует две роли, которые можно предоставить субъекту-службе: диспетчеру субъектов-служб и пользователю субъекта-службы.

  • Диспетчер субъектов-служб позволяет управлять ролями субъекта-службы. Создатель субъекта-службы имеет роль диспетчера субъектов-служб в субъекте-службе. Администраторы учетных записей имеют роль диспетчера субъектов-служб для всех субъектов-служб в учетной записи.

Примечание.

Если субъект-служба была создана до 13 июня 2023 года, создатель субъекта-службы по умолчанию не имеет роли диспетчера субъектов-служб. Если вам нужно быть менеджером, попросите администратора учетной записи предоставить вам роль диспетчера субъектов-служб .

  • Пользователь субъекта-службы позволяет пользователям рабочей области выполнять задания в качестве субъекта-службы. Задание будет выполняться с удостоверением субъекта-службы вместо удостоверения владельца задания.

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

Примечание.

Роли субъекта-службы Azure Databricks не перекрываются с ролями Azure или ролями Microsoft Entra ID (ранее — Azure Active Directory). Эти роли охватывают только учетную запись Azure Databricks.

Управление ролями субъекта-службы с помощью консоли учетной записи

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

Просмотр ролей в субъекте-службе

  1. Войдите в консоль учетной записи с правами администратора учетных записей.
  2. На боковой панели щелкните " Управление пользователями".
  3. На вкладке "Субъекты-службы" найдите и щелкните имя.
  4. Выберите вкладку Разрешения .

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

Предоставление ролей субъекту-службе

  1. Войдите в консоль учетной записи с правами администратора учетных записей.

  2. На боковой панели щелкните " Управление пользователями".

  3. На вкладке "Субъекты-службы" найдите и щелкните имя.

  4. Выберите вкладку Разрешения .

  5. Щелкните Предоставить доступ.

  6. Найдите и выберите пользователя, субъекта-службы или группу и выберите роль или роли (субъект-служба: Диспетчер или субъект-служба: пользователь).

    Примечание.

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

  7. Нажмите кнопку Сохранить.

Отмена ролей в субъекте-службе

  1. Войдите в консоль учетной записи с правами администратора учетных записей.
  2. На боковой панели щелкните " Управление пользователями".
  3. На вкладке "Субъекты-службы" найдите и щелкните имя.
  4. Выберите вкладку Разрешения .
  5. Найдите пользователя, субъекта-службы или группу, чтобы изменить свои роли.
  6. В строке с субъектом щелкните меню Вертикальный многоточие кебаб и нажмите кнопку "Изменить". Кроме того, выберите "Удалить ", чтобы отозвать все роли субъекта.
  7. Выберите Изменить.
  8. Щелкните X рядом с ролями, которые требуется отозвать.
  9. Нажмите кнопку Сохранить.

Управление ролями субъекта-службы с помощью страницы параметров администратора рабочей области

Администраторы рабочей области могут управлять ролями субъектов-служб для субъектов-служб, на которых они имеют роль Диспетчера субъектов-служб , на странице параметров администратора.

Просмотр ролей в субъекте-службе

  1. Войдите в рабочую область Azure Databricks как администратор рабочей области.
  2. Щелкните имя пользователя в верхней строке рабочей области Azure Databricks и выберите Параметры.
  3. Щелкните вкладку "Удостоверение" и "Доступ ".
  4. Рядом с субъектами-службами нажмите кнопку "Управление".
  5. Найдите и щелкните имя.
  6. Выберите вкладку Разрешения .

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

Предоставление ролей субъекту-службе

Для предоставления ролей необходимо иметь роль диспетчера субъектов-служб в субъекте-службе.

  1. Войдите в рабочую область Azure Databricks как администратор рабочей области.

  2. Щелкните имя пользователя в верхней строке рабочей области Azure Databricks и выберите Параметры.

  3. Щелкните вкладку "Удостоверение" и "Доступ ".

  4. Рядом с субъектами-службами нажмите кнопку "Управление".

  5. Найдите и щелкните имя.

  6. Выберите вкладку Разрешения .

  7. Щелкните Предоставить доступ.

  8. Найдите и выберите пользователя, субъекта-службы или группу и выберите роль или роли (субъект-служба: Диспетчер или субъект-служба: пользователь).

    Примечание.

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

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

  9. Нажмите кнопку Сохранить.

Отмена ролей в субъекте-службе

Для отзыва ролей необходимо иметь роль диспетчера субъектов-служб в субъекте-службе.

  1. Войдите в рабочую область Azure Databricks как администратор рабочей области.
  2. Щелкните имя пользователя в верхней строке рабочей области Azure Databricks и выберите Параметры.
  3. Щелкните вкладку "Удостоверение" и "Доступ ".
  4. Рядом с субъектами-службами нажмите кнопку "Управление".
  5. Найдите и щелкните имя.
  6. Выберите вкладку Разрешения .
  7. Найдите пользователя, субъекта-службы или группу, чтобы изменить свои роли.
  8. В строке с субъектом щелкните меню Вертикальный многоточие кебаб и нажмите кнопку "Изменить". Кроме того, выберите "Удалить ", чтобы отозвать все роли субъекта.
  9. Выберите Изменить.
  10. Щелкните X рядом с ролями, которые требуется отозвать.
  11. Нажмите кнопку Сохранить.

Управление ролями субъекта-службы с помощью интерфейса командной строки Databricks

Для управления ролями субъекта-службы в субъекте-службе необходимо иметь роль диспетчера субъектов-служб. Для управления ролями можно использовать интерфейс командной строки Databricks. Сведения об установке и проверке подлинности в интерфейсе командной строки Databricks см. в разделе "Что такое интерфейс командной строки Databricks?".

Вы также можете управлять ролями субъекта-службы с помощью API учетных записей контроль доступа. Api учетных записей контроль доступа поддерживается с помощью учетной записи Azure Databricks и рабочих областей.

Администраторы учетных записей вызывают API в accounts.azuredatabricks.net ({account-domain}/api/2.0/preview/accounts/{account_id}/access-control).

Пользователи с ролью диспетчера субъектов-служб , которые не являются администраторами учетных записей, вызывают API в домене рабочей области ({workspace-domain}/api/2.0/preview/accounts/access-control/).

Предоставление ролей субъекту-службе с помощью интерфейса командной строки Databricks

API учетных записей контроль доступа использует etag поле для обеспечения согласованности. Чтобы предоставить или отозвать роли субъекта-службы через API, сначала выполните GET команду набора правил и получите etag ответ. Затем вы можете применить изменения локально и, наконец, выдать PUT набор правил с помощью etag.

Например, создайте GET правило для субъекта-службы, которому требуется предоставить доступ, выполнив следующую команду:

databricks account access-control get-rule-set accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default <etag>

Замена:

  • <account-id> с идентификатором учетной записи.
  • <application-id> с идентификатором приложения субъекта-службы.
  • <etag> с ""

Пример ответа:

{
  "etag":"<etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.manager"
    },
    {
      "principals": [
        "users/user@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"<name>"
}

etag Скопируйте поле из текста ответа для последующего использования.

Затем вы можете выполнить обновления локально, когда вы решите окончательное состояние правил, а затем обновить набор правил с помощью etag. Чтобы предоставить субъекту-службе роль пользователяuser2@example.com, выполните следующие действия:

databricks account access-control update-rule-set --json '{
  "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
  "rule_set": {
      "name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
      "grant_rules": [
        {
            "role": "roles/servicePrincipal.user",
            "principals": ["users/user2@example.com"]
        }
      ],
      "etag": "<etag>"
  }
}'

Замена:

  • <account-id> с идентификатором учетной записи.
  • <application-id> с идентификатором приложения субъекта-службы.
  • <etag> с тегом etag, скопированным из последнего ответа.

Пример ответа:

{
  "etag":"<new-etag>",
  "grant_rules": [
    {
      "principals": [
        "users/user2@example.com"
      ],
      "role":"roles/servicePrincipal.user"
    }
  ],
  "name":"accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default"
}

Внимание

Так как это PUT метод, все существующие роли перезаписываются. Чтобы сохранить все существующие роли, их необходимо добавить в grant_roles массив.

Вывод списка субъектов-служб, которые можно использовать

Используя API субъектов-служб рабочей области, вы можете перечислить субъекты-службы, на которые у вас есть роль пользователя, отфильтровав его servicePrincipal/use.

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

databricks service-principals list -p WORKSPACE --filter "permission eq 'servicePrincipal/use'"

Вы также можете перечислить субъекты-службы с помощью API субъектов-служб рабочей области.