Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Управление доступом на основе ролей 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 "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 $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 rbacuser@example.com ` -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 : 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 $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 : 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. Роль Contributor назначена для области группы ресурсов rbac-tutorial-resource-group, а роль Reader наследуется из области подписки.
(Необязательно) Получение списка доступа с помощью портала 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