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


Управление ролями служебного принципала с помощью Azure CLI

Чтобы ограничить доступ к ресурсам Azure, можно использовать сервисный принципал для управления назначениями ролей. Каждая роль предоставляет различные разрешения, разрешенные пользователем при доступе к ресурсам Azure. В этом руководстве объясняется, как создавать и удалять служебные роли.

Azure CLI содержит следующие команды для управления назначениями ролей:

Создание или удаление назначения роли

Роль участника имеет полные разрешения на чтение и запись в учетную запись Azure. Роль читателя более ограничена доступом только для чтения. Всегда используйте принцип наименьшей привилегии. Полный список доступных ролей в Azure RBAC см. в статье Встроенные роли Azure.

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

az role assignment create --assignee myServicePrincipalID \
                          --role Reader \
                          --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName

az role assignment delete --assignee myServicePrincipalID \
                          --role Contributor \
                          --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName

Выходная консоль:

{
  "condition": null,
  "conditionVersion": null,
  "createdBy": null,
  "createdOn": "yyyy-mm-ddT00:00:00.000000+00:00",
  "delegatedManagedIdentityResourceId": null,
  "description": null,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "00000000-0000-0000-0000-000000000000",
  "principalType": "ServicePrincipal",
  "roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
  "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroupName",
  "type": "Microsoft.Authorization/roleAssignments",
  "updatedBy": "00000000-0000-0000-0000-000000000000",
  "updatedOn": "yyyy-mm-ddT00:00:00.000000+00:00"
}

Как получить значение параметра области

Один из возможных вопросов, который может у вас возникнуть: "Как узнать --scope значение параметра?" Ответ заключается в том, чтобы найти и скопировать идентификатор ресурса Azure, к которому должен получить доступ субъект-служба. Обычно эта информация находится на странице Свойства или Конечные точки каждого ресурса в портале Azure. Вот распространенные --scope примеры, но опирайтесь на ваш идентификатор ресурса, чтобы получить фактический формат и значение.

Область действия Пример
Подписка /subscriptions/mySubscriptionID
Группа ресурсов /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Виртуальная машина /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Служба файлового хранилища учетной записи /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Фабрика данных /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName

Дополнительные примеры областей см. в статье "Общие сведения о области" для Azure RBAC.

Проверка изменений

Изменения можно проверить, перечислив назначенные роли:

# list all role assignments for the current subscription
az role assignment list --output table

# list role assignments for a user
az role assignment list --assignee [email protected]

# list role assignments for a subscription
az role assignment list --subscription mySubscriptionID

Вы также можете перейти на портал Azure и вручную назначить роль субъекту-службе из меню управления доступом (IAM). Дополнительные примеры перечисления назначений ролей см. в разделе "Список назначений ролей Azure" с помощью Azure CLI.

Дальнейшие шаги

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