Руководство. Предоставление пользователю доступа к ресурсам 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 "[email protected]" -AccountEnabled:$true -MailNickName "rbacuser"
DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- RBAC Tutorial User 11111111-1111-1111-1111-111111111111 [email protected]
Создание или изменение группы ресурсов
Используйте группу ресурсов, чтобы показать, как назначить роль в области действия группы ресурсов.
Получите список расположений в регионе с помощью команды 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/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
Предоставление доступа
Чтобы предоставить доступ пользователю, воспользуйтесь командой New-AzRoleAssignment для назначения роли. Необходимо указать субъект безопасности, определение роли и область действия.
Получите идентификатор подписки с помощью команды Get-AzSubscription.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : 22222222-2222-2222-2222-222222222222 State : Enabled
Сохраните область действия подписки в переменной.
$subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
Назначьте пользователю роль Читатель в области действия подписки.
New-AzRoleAssignment -SignInName [email protected] ` -RoleDefinitionName "Reader" ` -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : [email protected] RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Назначьте роль Участник в области действия группы ресурсов.
New-AzRoleAssignment -SignInName [email protected] ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : [email protected] RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
Вывод списка доступа
Чтобы проверить доступ для подписки, используйте команду Get-AzRoleAssignment, которая отобразит список назначений ролей.
Get-AzRoleAssignment -SignInName [email protected] -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : [email protected] RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
В выходных данных вы увидите, что роль "Читатель" была назначена пользователю из руководства по RBAC в пределах области действия подписки.
Чтобы проверить доступ для группы ресурсов, используйте команду Get-AzRoleAssignment, которая отобразит список назначений ролей.
Get-AzRoleAssignment -SignInName [email protected] -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : [email protected] RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : [email protected] RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
В выходных данных вы увидите, что обе роли — и "Читатель", и "Участник" — были назначены пользователю, созданному при работе с руководством по RBAC. Роль "Участник" находится в области действия группы ресурсов из руководства по RBAC, а роль "Читатель" наследуется в области действия подписки.
(Необязательно.) Вывод списка доступа с помощью портала Azure
Чтобы увидеть, как выглядят назначения ролей на портале Azure, просмотрите колонку Управление доступом (IAM) для подписки.
Просмотрите колонку Управление доступом (IAM) для группы ресурсов.
Отмена доступа
Чтобы лишить прав доступа пользователей, группы и приложения, используйте команду Remove-AzRoleAssignment для удаления назначений ролей.
Используйте следующую команду, чтобы удалить назначение роли участника для пользователя в области действия группы ресурсов.
Remove-AzRoleAssignment -SignInName [email protected] ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Используйте следующую команду, чтобы удалить назначение роли читателя для пользователя в области действия подписки.
Remove-AzRoleAssignment -SignInName [email protected] ` -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