Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Управление доступом на основе ролей Azure (Azure RBAC) — это способ управления доступом к ресурсам в Azure. В этом руководстве вы предоставляете пользователю доступ на просмотр всех элементов в подписке и управление всеми элементами в группе ресурсов с помощью Azure PowerShell.
В этом руководстве описано, как:
- Предоставление доступа для пользователя в разных областях
- Доступ к списку
- Удалить доступ
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
Предпосылки
Для выполнения этого руководства потребуется следующее:
- Разрешения на создание пользователей в Microsoft Entra ID (или на управление существующими пользователями)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
Назначения ролей
Чтобы предоставить доступ, создайте назначение ролей в Azure RBAC. Назначение ролей состоит из трех элементов: субъект безопасности, определение роли и область действия. В этом руководстве вам предстоит исполнить две роли:
| Принцип безопасности | Определение роли | Область действия |
|---|---|---|
| Пользователь (Пользователь руководства по RBAC) |
Читатель | Подписка |
| Пользователь (Пользователь руководства по RBAC) |
Участник | Группа ресурсов (rbac-tutorial-resource-group) |
Создание пользователя
Чтобы назначить роль, требуется пользователь, группа или сервисный принципал. Если у вас еще нет пользователя, его можно создать.
В 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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb [email protected]
Создайте группу ресурсов
Вы используете группу ресурсов для демонстрации того, как назначать роль в пределах области группы ресурсов.
Получите список расположений регионов с помощью команды Get-AzLocation.
Get-AzLocation | select LocationВыберите расположение рядом с вами и назначьте его переменной.
$location = "westus"Создайте новую группу ресурсов с помощью команды New-AzResourceGroup.
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $locationResourceGroupName : 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-AzSubscriptionName : 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 [email protected] ` -RoleDefinitionName "Reader" ` -Scope $subScopeRoleAssignmentId : /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Назначьте роль Участника пользователю в области группы ресурсов.
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
Доступ к списку
Чтобы проверить доступ к подписке, используйте команду Get-AzRoleAssignment для перечисления назначений ролей.
Get-AzRoleAssignment -SignInName [email protected] -Scope $subScopeRoleAssignmentId : /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 на уровне подписки.
Чтобы проверить доступ для группы ресурсов, используйте команду 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
Чтобы узнать, как выглядят назначения ролей на портале 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