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


Руководство. Предоставление пользователю доступа к ресурсам Azure с помощью Azure PowerShell

Управление доступом на основе ролей Azure (Azure RBAC) — это способ управления доступом к ресурсам в Azure. В этом руководстве вы предоставляете пользователю доступ на просмотр всех элементов в подписке и управление всеми элементами в группе ресурсов с помощью Azure PowerShell.

В этом руководстве описано, как:

  • Предоставление доступа для пользователя в разных областях
  • Доступ к списку
  • Удалить доступ

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.

Предпосылки

Для выполнения этого руководства потребуется следующее:

Назначения ролей

Чтобы предоставить доступ, создайте назначение ролей в Azure RBAC. Назначение ролей состоит из трех элементов: субъект безопасности, определение роли и область действия. В этом руководстве вам предстоит исполнить две роли:

Принцип безопасности Определение роли Область действия
Пользователь
(Пользователь руководства по RBAC)
Читатель Подписка
Пользователь
(Пользователь руководства по RBAC)
Участник Группа ресурсов
(rbac-tutorial-resource-group)

Назначения ролей для пользователя

Создание пользователя

Чтобы назначить роль, требуется пользователь, группа или сервисный принципал. Если у вас еще нет пользователя, его можно создать.

  1. В Azure Cloud Shell создайте пароль, соответствующий требованиям к сложности паролей.

    $PasswordProfile = @{ Password = "<Password>" }
    
  2. Создайте нового пользователя для домена с помощью команды New-MgUser .

    New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile `
       -UserPrincipalName "[email protected]" -AccountEnabled:$true -MailNickName "rbacuser"
    
    DisplayName        Id                                   Mail UserPrincipalName
    -----------        --                                   ---- -----------------
    RBAC Tutorial User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb      [email protected]
    

Создайте группу ресурсов

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

  1. Получите список расположений регионов с помощью команды Get-AzLocation.

    Get-AzLocation | select Location
    
  2. Выберите расположение рядом с вами и назначьте его переменной.

    $location = "westus"
    
  3. Создайте новую группу ресурсов с помощью команды New-AzResourceGroup.

    New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
    
    ResourceGroupName : rbac-tutorial-resource-group
    Location          : westus
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    

Предоставление доступа

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

  1. Получите идентификатор подписки с помощью команды Get-AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee
    State    : Enabled
    
  2. Сохраните область подписки в переменной.

    $subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
    
  3. Назначьте роль читателя пользователю на уровне подписки.

    New-AzRoleAssignment -SignInName [email protected] `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : [email protected]
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    
  4. Назначьте роль Участника пользователю в области группы ресурсов.

    New-AzRoleAssignment -SignInName [email protected] `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : [email protected]
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

Доступ к списку

  1. Чтобы проверить доступ к подписке, используйте команду Get-AzRoleAssignment для перечисления назначений ролей.

    Get-AzRoleAssignment -SignInName [email protected] -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : [email protected]
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

    В выходных данных вы увидите, что роль 'Читатель' назначена пользователю руководства по RBAC на уровне подписки.

  2. Чтобы проверить доступ для группы ресурсов, используйте команду Get-AzRoleAssignment для перечисления назначений ролей.

    Get-AzRoleAssignment -SignInName [email protected] -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial User
    SignInName         : [email protected]
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    
    RoleAssignmentId   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0
    Scope              : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    DisplayName        : RBAC Tutorial User
    SignInName         : [email protected]
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType         : User
    CanDelegate        : False
    

    В выходных данных вы увидите, что роли участника и читателя были назначены пользователю руководства по RBAC. Роль Contributor назначена для области группы ресурсов rbac-tutorial-resource-group, а роль Reader наследуется из области подписки.

(Необязательно) Получение списка доступа с помощью портала Azure

  1. Чтобы узнать, как выглядят назначения ролей на портале Azure, просмотрите панель управления доступом (IAM) для подписки.

    Назначения ролей для пользователя в области подписки

  2. Просмотрите панель управления доступом (IAM) для группы ресурсов.

    Назначения ролей для пользователя на уровне группы ресурсов

Удалить доступ

Чтобы удалить доступ для пользователей, групп и приложений, используйте Remove-AzRoleAssignment для удаления назначения ролей.

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

    Remove-AzRoleAssignment -SignInName [email protected] `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Используйте следующую команду, чтобы удалить назначение роли 'Читатель' для пользователя в рамках подписки.

    Remove-AzRoleAssignment -SignInName [email protected] `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

Очистка ресурсов

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

  1. Удалите группу ресурсов с помощью команды Remove-AzResourceGroup.

    Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
    
    Confirm
    Are you sure you want to remove resource group 'rbac-tutorial-resource-group'
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  2. При запросе подтверждения введите Y. Удаление займет несколько секунд.

  3. Удалите пользователя с помощью команды Remove-MgUser .

    $User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'"
    Remove-MgUser -UserId $User.Id
    

Дальнейшие действия