Azure-rollen toewijzen met behulp van Azure PowerShell
Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) is het autorisatiesysteem om de toegang tot Azure-resources te beheren. Als u toegang wilt verlenen, wijst u rollen toe aan gebruikers, groepen, service-principals of beheerde identiteiten voor een bepaald bereik. In dit artikel wordt beschreven hoe u rollen toewijst met behulp van Azure PowerShell.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereisten
Als u rollen wilt toewijzen, moet u het volgende hebben:
Microsoft.Authorization/roleAssignments/write
machtigingen, zoals op rollen gebaseerd toegangsbeheer Beheer istrator- PowerShell in Azure Cloud Shell of Azure PowerShell
- Het account dat u gebruikt om de PowerShell-opdracht uit te voeren, moet de Microsoft Graph-machtiging
Directory.Read.All
hebben.
Stappen voor het toewijzen van een Azure-rol
Een rol toewijzen bestaat uit drie elementen: beveiligingsprincipaal, roldefinitie en bereik.
Stap 1: bepalen wie toegang nodig heeft
U kunt een rol toewijzen aan een gebruiker, groep, service-principal of beheerde identiteit. Als u een rol wilt toewijzen, moet u mogelijk de unieke id van het object opgeven. De id heeft de volgende indeling: 11111111-1111-1111-1111-111111111111
. U kunt de id ophalen met behulp van Azure Portal of Azure PowerShell.
Gebruiker
Voor een Microsoft Entra-gebruiker haalt u de principal-naam van de gebruiker op, zoals patlong@contoso.com of de gebruikersobject-id. Als u de object-id wilt ophalen, kunt u Get-AzADUser gebruiken.
Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id
Groep
Voor een Microsoft Entra-groep hebt u de groepsobject-id nodig. Als u de object-id wilt ophalen, kunt u Get-AzADGroup gebruiken.
Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id
Service/principal
Voor een Microsoft Entra-service-principal (identiteit die door een toepassing wordt gebruikt), hebt u de object-id van de service-principal nodig. Als u de object-id wilt ophalen, kunt u Get-AzADServicePrincipal gebruiken. Gebruik voor een service-principal de object-id en niet de toepassings-id.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Beheerde identiteit
Voor een door het systeem toegewezen of een door de gebruiker toegewezen beheerde identiteit hebt u de object-id nodig. Als u de object-id wilt ophalen, kunt u Get-AzADServicePrincipal gebruiken.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Stap 2: Selecteer de juiste rol
Machtigingen worden gegroepeerd in rollen. U kunt kiezen uit een lijst met verschillende ingebouwde Azure-rollen of u kunt uw eigen aangepaste rollen gebruiken. Het is een best practice om toegang te verlenen met de minimale bevoegdheid die nodig is, dus vermijd het toewijzen van een bredere rol.
Als u rollen wilt weergeven en de unieke rol-id wilt ophalen, kunt u Get-AzRoleDefinition gebruiken.
Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id
U kunt als volgt de details van een bepaalde rol weergeven.
Get-AzRoleDefinition -Name <roleName>
Zie Lijst met Azure-roldefinities voor meer informatie.
Stap 3: het benodigde bereik identificeren
Azure biedt vier bereikniveaus: resource, resourcegroep, abonnement en beheergroep. Het is een best practice om toegang te verlenen met de minimale bevoegdheid die nodig is, dus vermijd het toewijzen van een rol in een breder bereik. Zie Bereik voor meer informatie over het bereik.
Resourcebereik
Voor het resourcebereik hebt u de resource-id voor de resource nodig. U kunt de resource-id vinden door de eigenschappen van de resource in Azure Portal te bekijken. Een resource-id heeft de volgende indeling.
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
Bereik van resourcegroep
Voor het bereik van de resourcegroep hebt u de naam van de resourcegroep nodig. U vindt de naam op de pagina Resourcegroepen in Azure Portal of u kunt Get-AzResourceGroup gebruiken.
Get-AzResourceGroup
Abonnementsbereik
Voor het abonnementsbereik hebt u de abonnements-id nodig. U vindt de id op de pagina Abonnementen in Azure Portal of u kunt Get-AzSubscription gebruiken.
Get-AzSubscription
Bereik van beheergroep
Voor het bereik van de beheergroep hebt u de naam van de beheergroep nodig. U vindt de naam op de pagina Beheergroepen in Azure Portal of u kunt Get-AzManagementGroup gebruiken.
Get-AzManagementGroup
Stap 4: Rol toewijzen
Als u een rol wilt toewijzen, gebruikt u de opdracht New-AzRoleAssignment . Afhankelijk van het bereik heeft de opdracht doorgaans een van de volgende indelingen.
Resourcebereik
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionId <roleId> `
-ResourceName <resourceName> `
-ResourceType <resourceType> `
-ResourceGroupName <resourceGroupName>
Bereik van resourcegroep
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
Abonnementsbereik
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
Bereik van beheergroep
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
Rolvoorbeelden toewijzen
Een rol toewijzen voor alle blobcontainers in een resourcebereik van een opslagaccount
Wijst de rol Inzender voor opslagblobgegevens toe aan een service-principal met object-id 555555-5555-5555-5555-55555555555 en toepassing Id 6666666-6666-6666-6666-66666666666 voor een opslagaccount met de naam storage12345.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/providers/Microsoft.Authorization/roleAssignments/cccccccc-cccc-cccc-cccc-cccccccccccc
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Een rol toewijzen voor een specifiek resourcebereik voor blobcontainers
Wijst de rol Inzender voor opslagblobgegevens toe aan een service-principal met object-id 555555-5555-5555-5555-5555555555 en toepassings-id 3666666-6666-6666-6666-6666666666666 voor een blobcontainer met de naam blob-container-01.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignm
ents/dddddddd-dddd-dddd-dddd-dddddddddddd
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Een rol toewijzen voor een groep in een specifiek resourcebereik voor een virtueel netwerk
Wijst de rol Inzender voor virtuele machines toe aan de groep Pharma Sales Beheer s met id aaaaaa-aaaa-aaaa-aaaaaaaaaaaa op een resourcebereik voor een virtueel netwerk met de naam pharma-sales-project-network.
PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceName pharma-sales-project-network `
-ResourceType Microsoft.Network/virtualNetworks `
-ResourceGroupName MyVirtualNetworkResourceGroup
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network/providers/Microsoft.Authorizat
ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network
DisplayName : Pharma Sales Admins
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ObjectType : Group
CanDelegate : False
Een rol toewijzen voor een gebruiker binnen het bereik van een resourcegroep
Wijst de rol Inzender voor virtuele machines toe aan patlong@contoso.com de gebruiker binnen het bereik van de resourcegroep pharma-sales .
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/pr
oviders/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
U kunt ook de volledig gekwalificeerde resourcegroep opgeven met de -Scope
parameter:
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
Een rol toewijzen voor een gebruiker met behulp van de unieke rol-id in een resourcegroepbereik
Er zijn een paar keer dat een rolnaam kan worden gewijzigd, bijvoorbeeld:
- U gebruikt uw eigen aangepaste rol en u besluit de naam te wijzigen.
- U gebruikt een preview-rol met (preview) in de naam. Wanneer de rol wordt vrijgegeven, wordt de naam van de rol gewijzigd.
Zelfs als de naam van een rol wordt gewijzigd, verandert de rol-id niet. Als u scripts of automatisering gebruikt om uw roltoewijzingen te maken, is het een best practice om de unieke rol-id te gebruiken in plaats van de rolnaam. Als de naam van een rol wordt gewijzigd, werken uw scripts waarschijnlijker.
In het volgende voorbeeld wordt de rol Inzender voor virtuele machines toegewezen aan de patlong@contoso.com gebruiker op het bereik van de resourcegroep pharma-sales .
PS C:\> New-AzRoleAssignment -ObjectId 44444444-4444-4444-4444-444444444444 `
-RoleDefinitionId 9980e02c-c2be-4d73-94e8-173b1dc7cf3c `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
Een rol toewijzen voor een toepassing binnen het bereik van een resourcegroep
Hiermee wijst u de rol Inzender voor virtuele machines toe aan een toepassing met service-principal-object-id 777777-7777-7777-777777777-777777-77777-77777-77777-7777777-groep voor pharma-sales .
PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : MyApp1
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
Een rol toewijzen voor een gebruiker binnen een abonnementsbereik
Wijst de rol Lezer toe aan de annm@example.com gebruiker binnen een abonnementsbereik.
PS C:\> New-AzRoleAssignment -SignInName annm@example.com `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName : Ann M
SignInName : annm@example.com
RoleDefinitionName : Reader
RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
Een rol toewijzen voor een gebruiker binnen een bereik van een beheergroep
Wijst de rol Factureringslezer toe aan de alain@example.com gebruiker binnen een bereik van een beheergroep.
PS C:\> New-AzRoleAssignment -SignInName alain@example.com `
-RoleDefinitionName "Billing Reader" `
-Scope "/providers/Microsoft.Management/managementGroups/marketing-group"
RoleAssignmentId : /providers/Microsoft.Management/managementGroups/marketing-group/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
Scope : /providers/Microsoft.Management/managementGroups/marketing-group
DisplayName : Alain Charon
SignInName : alain@example.com
RoleDefinitionName : Billing Reader
RoleDefinitionId : fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False