Samouczek: udzielanie użytkownikowi dostępu do zasobów platformy Azure przy użyciu programu Azure PowerShell
Kontrola dostępu oparta na rolach Azure (Azure RBAC, Role Based Access Control) to sposób zarządzania dostępem do zasobów na platformie Azure. W tym samouczku przyznasz użytkownikowi dostęp z możliwością wyświetlania wszystkiego w ramach subskrypcji i zarządzania wszystkim w grupie zasobów przy użyciu programu Azure PowerShell.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Udzielanie dostępu użytkownikowi w innych zakresach
- Lista dostępu
- Usuwanie dostępu
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Do ukończenia tego samouczka niezbędne są następujące elementy:
- Uprawnienia do tworzenia użytkowników w identyfikatorze Entra firmy Microsoft (lub mają istniejącego użytkownika)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
Przypisania ról
Aby udzielić dostępu w kontroli dostępu na podstawie ról platformy Azure, należy utworzyć przypisanie roli. Przypisanie roli składa się z trzech elementów: podmiotu zabezpieczeń, definicji roli i zakresu. W tym samouczku utworzysz dwa przypisania ról:
Podmiot zabezpieczeń | Definicja roli | Scope |
---|---|---|
User (Użytkownik samouczka kontroli dostępu opartej na rolach) |
Czytelnik | Subskrypcja |
User (Użytkownik samouczka kontroli dostępu opartej na rolach) |
Współautor | Grupa zasobów (rbac-tutorial-resource-group) |
Tworzenie użytkownika
Do przypisania roli potrzebny jest użytkownik, grupa lub jednostka usługi. Jeśli nie masz jeszcze użytkownika, możesz go utworzyć.
W usłudze Azure Cloud Shell utwórz hasło zgodne z wymaganiami dotyczącymi złożoności hasła.
$PasswordProfile = @{ Password = "<Password>" }
Utwórz nowego użytkownika dla domeny przy użyciu polecenia 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
Tworzenie grupy zasobów
Za pomocą grupy zasobów można zademonstrować przypisywanie roli w zakresie grupy zasobów.
Pobierz listę lokalizacji regionów za pomocą polecenia Get-AzLocation.
Get-AzLocation | select Location
Wybierz lokalizację w pobliżu i przypisz ją do zmiennej.
$location = "westus"
Utwórz nową grupę zasobów za pomocą polecenia 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
Udzielanie dostępu
Aby udzielić dostępu użytkownikowi, przypisz rolę za pomocą polecenia New-AzRoleAssignment. Musisz określić podmiot zabezpieczeń, definicję roli i zakres.
Pobierz identyfikator subskrypcji za pomocą polecenia Get-AzSubscription.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : Enabled
Zapisz zakres subskrypcji w zmiennej.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
Przypisz użytkownikowi rolę Czytelnik w zakresie subskrypcji.
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
Przypisz użytkownikowi rolę Współautor w zakresie grupy zasobów.
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
Lista dostępu
Aby zweryfikować dostęp do subskrypcji, wyświetl listę przypisań ról za pomocą polecenia 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
W danych wyjściowych widać, że do użytkownika samouczka kontroli dostępu opartej na rolach przypisano rolę Czytelnik w zakresie subskrypcji.
Aby zweryfikować dostęp do grupy zasobów, wyświetl listę przypisań ról za pomocą polecenia 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
W danych wyjściowych widać, że do użytkownika samouczka kontroli dostępu opartej na rolach przypisano zarówno rolę Współautor, jak i rolę Czytelnik. Rola Współautor jest przypisana w zakresie rbac-tutorial-resource-group, a rola Czytelnik jest dziedziczona w zakresie subskrypcji.
Opcjonalnie: tworzenie listy dostępu przy użyciu witryny Azure Portal
Aby sprawdzić, jak wyglądają przypisania ról w witrynie Azure Portal, należy wyświetlić blok Kontrola dostępu (IAM) dla subskrypcji.
Wyświetl blok Kontrola dostępu (IAM) dla grupy zasobów.
Usuwanie dostępu
Aby usunąć dostęp dla użytkowników, grup i aplikacji, usuń przypisanie roli za pomocą polecenia Remove-AzRoleAssignment.
Za pomocą następującego polecenia usuń przypisanie roli Współautor dla użytkownika w zakresie grupy zasobów.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Za pomocą następującego polecenia usuń przypisanie roli Czytelnik dla użytkownika w zakresie subskrypcji.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
Czyszczenie zasobów
Aby wyczyścić zasoby utworzone w tym samouczku, usuń grupę zasobów i użytkownika.
Usuń grupę zasobów za pomocą polecenia 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"):
Po wyświetleniu monitu o potwierdzenie wpisz Y. Usunięcie potrwa kilka sekund.
Usuń użytkownika przy użyciu polecenia Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id