Руководство. Предоставление пользователю доступа к ресурсам Azure с помощью Azure PowerShell
Управление доступом на основе ролей Azure (Azure RBAC) — это способ управления доступом к ресурсам в Azure. В этом руководстве описано, как предоставлять пользователям доступ для просмотра любого содержимого в рамках подписки и обеспечивать полное управление в группе ресурсов с помощью Azure PowerShell.
В этом руководстве описано следующее:
- Предоставление доступа пользователям в разных областях
- Вывод списка доступа
- Отмена доступа
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Необходимые компоненты
Для выполнения этого руководства потребуется следующее:
- Разрешения на создание пользователей в идентификаторе Microsoft Entra (или существующего пользователя)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
Назначения ролей
При использовании Azure RBAC для предоставления доступа нужно создать назначение ролей. Назначение ролей состоит из трех элементов: субъект безопасности, определение роли и область действия. Ниже приведены два варианта назначения роли, которые мы выполним в ходе работы с этим руководством.
Субъект безопасности | Определение роли | Область |
---|---|---|
User (Пользователь из руководства по RBAC) |
Читатель | Отток подписок |
User (Пользователь из руководства по RBAC) |
Участник | Группа ресурсов (группа-ресурсов-из-руководства-по-rbac) |
Создание пользователя
Чтобы назначить роль, нам нужен пользователь, группа или субъект-служба. Если у вас еще нет пользователя, создайте его.
В Azure Cloud Shell создайте пароль, соответствующий требованиям к сложности.
$PasswordProfile = @{ Password = "<Password>" }
Создайте нового пользователя для домена с помощью команды New-MgUser .
New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile ` -UserPrincipalName "rbacuser@example.com" -AccountEnabled:$true -MailNickName "rbacuser"
DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- RBAC Tutorial User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb rbacuser@example.com
Создание или изменение группы ресурсов
Используйте группу ресурсов, чтобы показать, как назначить роль в области действия группы ресурсов.
Получите список расположений в регионе с помощью команды Get-AzLocation.
Get-AzLocation | select Location
Выберите расположение недалеко от вас и присвойте его переменной.
$location = "westus"
Создайте группу ресурсов с помощью команды 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 для назначения роли. Необходимо указать субъект безопасности, определение роли и область действия.
Получите идентификатор подписки с помощью команды Get-AzSubscription.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : Enabled
Сохраните область действия подписки в переменной.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
Назначьте пользователю роль Читатель в области действия подписки.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -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 : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
Назначьте роль Участник в области действия группы ресурсов.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -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 : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
Вывод списка доступа
Чтобы проверить доступ для подписки, используйте команду Get-AzRoleAssignment, которая отобразит список назначений ролей.
Get-AzRoleAssignment -SignInName rbacuser@example.com -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 : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
В выходных данных вы увидите, что роль "Читатель" была назначена пользователю из руководства по RBAC в пределах области действия подписки.
Чтобы проверить доступ для группы ресурсов, используйте команду Get-AzRoleAssignment, которая отобразит список назначений ролей.
Get-AzRoleAssignment -SignInName rbacuser@example.com -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 : rbacuser@example.com 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 : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
В выходных данных вы увидите, что обе роли — и "Читатель", и "Участник" — были назначены пользователю, созданному при работе с руководством по RBAC. Роль "Участник" находится в области действия группы ресурсов из руководства по RBAC, а роль "Читатель" наследуется в области действия подписки.
(Необязательно.) Вывод списка доступа с помощью портала Azure
Чтобы увидеть, как выглядят назначения ролей на портале Azure, просмотрите колонку Управление доступом (IAM) для подписки.
Просмотрите колонку Управление доступом (IAM) для группы ресурсов.
Отмена доступа
Чтобы лишить прав доступа пользователей, группы и приложения, используйте команду Remove-AzRoleAssignment для удаления назначений ролей.
Используйте следующую команду, чтобы удалить назначение роли участника для пользователя в области действия группы ресурсов.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Используйте следующую команду, чтобы удалить назначение роли читателя для пользователя в области действия подписки.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
Очистка ресурсов
Чтобы очистить ресурсы, созданные при работе с этим руководством, удалите группу ресурсов и пользователя.
Удалите группу ресурсов с помощью команды 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"):
При запросе на подтверждение введите Y. Удаление займет несколько секунд.
Удалите пользователя с помощью команды Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id