Esercitazione: Concedere a un utente l'accesso alle risorse di Azure usando Azure PowerShell
Per gestire l'accesso alle risorse di Azure, si usa il controllo degli accessi in base al ruolo Azure. In questa esercitazione si consente a un utente di visualizzare tutte le aree di una sottoscrizione e di gestire tutti gli elementi in un gruppo di risorse con Azure PowerShell.
In questa esercitazione apprenderai a:
- Concedere l'accesso a un utente in ambiti diversi
- Elencare l'accesso
- Rimuovere i privilegi di accesso
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Per completare questa esercitazione è necessario quanto segue:
- Autorizzazioni per creare utenti in Microsoft Entra ID (o avere un utente esistente)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
Assegnazioni di ruoli
Per concedere l'accesso mediante il controllo degli accessi in base al ruolo Azure, si crea un'assegnazione di ruolo. Un'assegnazione di ruolo è costituita da tre elementi: entità di sicurezza, definizione del ruolo e ambito. Di seguito sono indicate le due assegnazioni di ruolo che verranno eseguite in questa esercitazione:
Entità di sicurezza principale | Definizione del ruolo | Ambito |
---|---|---|
User (Utente dell'esercitazione sul controllo degli accessi in base al ruolo) |
Lettore | Subscription |
User (Utente dell'esercitazione sul controllo degli accessi in base al ruolo) |
Collaboratore | Gruppo di risorse (rbac-tutorial-resource-group) |
Creare un utente
Per assegnare un ruolo sono necessari un utente, un gruppo o un entità servizio. Se l'utente non è già disponibile, è possibile crearne uno.
In Azure Cloud Shell creare una password conforme ai propri requisiti di complessità delle password.
$PasswordProfile = @{ Password = "<Password>" }
Creare un nuovo utente per il dominio usando il comando 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
Creare un gruppo di risorse
Si usa un gruppo di risorse per illustrare come assegnare un ruolo a un ambito di gruppo di risorse.
Ottenere un elenco delle località dell'area con il comando Get-AzLocation.
Get-AzLocation | select Location
Selezionare una località vicina e assegnarla a una variabile.
$location = "westus"
Creare un nuovo gruppo di risorse con il comando 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
Concedi accesso
Per concedere l'accesso all'utente, si usa il comando New-AzRoleAssignment per assegnare un ruolo. È necessario specificare l'entità di sicurezza, la definizione del ruolo e l'ambito.
Ottenere l'ID della sottoscrizione usando il comando Get-AzSubscription.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : Enabled
Salvare l'ambito della sottoscrizione in una variabile.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
Assegnare il ruolo Lettore all'utente nell'ambito della sottoscrizione.
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
Assegnare il ruolo Collaboratore all'utente nell'ambito del gruppo di risorse.
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
Elencare l'accesso
Per verificare l'accesso alla sottoscrizione, usare il comando Get-AzRoleAssignment per elencare le assegnazioni dei ruoli.
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
Nell'output si può vedere che il ruolo di lettore è stato assegnato all'utente dell'esercitazione sul controllo degli accessi in base al ruolo nell'ambito della sottoscrizione.
Per verificare l'accesso al gruppo di risorse, usare il comando Get-AzRoleAssignment per elencare le assegnazioni dei ruoli.
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
Nell'output si può vedere che sia il ruolo di collaboratore che quello di lettore sono stati assegnati all'utente dell'esercitazione sul controllo degli accessi in base al ruolo. Il ruolo di collaboratore è nell'ambito rbac-tutorial-resource-group, mentre il ruolo di lettore viene ereditato nell'ambito della sottoscrizione.
(Facoltativo) Elencare gli accessi con il portale di Azure
Per visualizzare le assegnazioni dei ruoli nel portale di Azure, passare al pannello Controllo di accesso (IAM) della sottoscrizione.
Visualizzare il pannello Controllo di accesso (IAM) del gruppo di risorse.
Rimuovere i privilegi di accesso
Per rimuovere l'accesso per utenti, gruppi e applicazioni, usare Remove-AzRoleAssignment per rimuovere l'assegnazione di un ruolo.
Usare il comando seguente per rimuovere l'assegnazione del ruolo di collaboratore per l'utente nell'ambito del gruppo di risorse.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Usare il comando seguente per rimuovere l'assegnazione del ruolo di lettore per l'utente nell'ambito della sottoscrizione.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
Pulire le risorse
Per pulire le risorse create con questa esercitazione, eliminare il gruppo di risorse e l'utente.
Eliminare il gruppo di risorse usando il comando 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"):
Quando viene chiesto di confermare, digitare Y. L'eliminazione richiederà alcuni secondi.
Eliminare l'utente usando il comando Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id