Toegang tot Azure-resources beheren met RBAC en Azure PowerShellManage access to Azure resources using RBAC and Azure PowerShell

Op rollen gebaseerd toegangsbeheer (RBAC) is de manier waarop u de toegang tot Azure-resources beheert.Role-based access control (RBAC) is the way that you manage access to Azure resources. In dit artikel wordt beschreven hoe u de toegang beheert voor gebruikers, groepen en toepassingen met RBAC en Azure PowerShell.This article describes how you manage access for users, groups, and applications using RBAC and Azure PowerShell.

Notitie

Dit artikel is bijgewerkt voor het gebruik van de nieuwe Azure PowerShell Az-module.This article has been updated to use the new Azure PowerShell Az module. De AzureRM-module kan nog worden gebruikt en krijgt bugoplossingen tot ten minste december 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Zie voor meer informatie over de nieuwe Az-module en compatibiliteit met AzureRM Introductie van de nieuwe Az-module van Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Raadpleeg Azure PowerShell installeren voor instructies over de installatie van de Az-module.For Az module installation instructions, see Install Azure PowerShell.

VereistenPrerequisites

Als u de toegang wilt beheren, hebt u een van de volgende opties nodig:To manage access, you need one of the following:

Rollen opvragenList roles

Alle beschik bare rollen weer gevenList all available roles

Gebruik Get-AzRoleDefinitionom de RBAC-rollen weer te geven die beschikbaar zijn voor toewijzing en om de bewerkingen te controleren waartoe ze toegang verlenen.To list RBAC roles that are available for assignment and to inspect the operations to which they grant access, use Get-AzRoleDefinition.

Get-AzRoleDefinition | FT Name, Description
AcrImageSigner                                    acr image signer
AcrQuarantineReader                               acr quarantine data reader
AcrQuarantineWriter                               acr quarantine data writer
API Management Service Contributor                Can manage service and the APIs
API Management Service Operator Role              Can manage service but not the APIs
API Management Service Reader Role                Read-only access to service and APIs
Application Insights Component Contributor        Can manage Application Insights components
Application Insights Snapshot Debugger            Gives user permission to use Application Insights Snapshot Debugge...
Automation Job Operator                           Create and Manage Jobs using Automation Runbooks.
Automation Operator                               Automation Operators are able to start, stop, suspend, and resume ...
...

Een specifieke rol weer gevenList a specific role

Gebruik Get-AzRoleDefinitionom een specifieke rol weer te geven.To list a specific role, use Get-AzRoleDefinition.

Get-AzRoleDefinition <role_name>
PS C:\> Get-AzRoleDefinition "Contributor"

Name             : Contributor
Id               : b24988ac-6180-42a0-ab88-20f7382dd24c
IsCustom         : False
Description      : Lets you manage everything except access to resources.
Actions          : {*}
NotActions       : {Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write,
                   Microsoft.Authorization/elevateAccess/Action}
DataActions      : {}
NotDataActions   : {}
AssignableScopes : {/}

Een roldefinitie weer gevenList a role definition

Een roldefinitie in JSON-indeling weer gevenList a role definition in JSON format

Gebruik Get-AzRoleDefinitionom een ROLDEFINITIE in JSON-indeling weer te geven.To list a role definition in JSON format, use Get-AzRoleDefinition.

Get-AzRoleDefinition <role_name> | ConvertTo-Json
PS C:\> Get-AzRoleDefinition "Contributor" | ConvertTo-Json

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action",
    "Microsoft.Blueprint/blueprintAssignments/write",
    "Microsoft.Blueprint/blueprintAssignments/delete"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Acties van een rol weer gevenList actions of a role

Gebruik Get-AzRoleDefinitionom de acties voor een specifieke rol weer te geven.To list the actions for a specific role, use Get-AzRoleDefinition.

Get-AzRoleDefinition <role_name> | FL Actions, NotActions
PS C:\> Get-AzRoleDefinition "Contributor" | FL Actions, NotActions

Actions    : {*}
NotActions : {Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write,
             Microsoft.Authorization/elevateAccess/Action,
             Microsoft.Blueprint/blueprintAssignments/write...}
(Get-AzRoleDefinition <role_name>).Actions
PS C:\> (Get-AzRoleDefinition "Virtual Machine Contributor").Actions

Microsoft.Authorization/*/read
Microsoft.Compute/availabilitySets/*
Microsoft.Compute/locations/*
Microsoft.Compute/virtualMachines/*
Microsoft.Compute/virtualMachineScaleSets/*
Microsoft.DevTestLab/schedules/*
Microsoft.Insights/alertRules/*
Microsoft.Network/applicationGateways/backendAddressPools/join/action
Microsoft.Network/loadBalancers/backendAddressPools/join/action
...

Toegang opvragenList access

In RBAC kunt u de roltoewijzingen weer geven om toegang weer te geven.In RBAC, to list access, you list the role assignments.

Roltoewijzingen voor een gebruiker weergevenList role assignments for a user

Gebruik Get-AzRoleAssignmentom alle rollen weer te geven die aan een opgegeven gebruiker zijn toegewezen.To list all the roles that are assigned to a specified user, use Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname>
PS C:\> Get-AzRoleAssignment -SignInName isabella@example.com | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

Gebruik Get-AzRoleAssignmentom alle rollen weer te geven die zijn toegewezen aan een opgegeven gebruiker en de rollen die zijn toegewezen aan de groepen waartoe de gebruiker behoort.To list all the roles that are assigned to a specified user and the roles that are assigned to the groups to which the user belongs, use Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname> -ExpandPrincipalGroups
Get-AzRoleAssignment -SignInName isabella@example.com -ExpandPrincipalGroups | FL DisplayName, RoleDefinitionName, Scope

Roltoewijzingen weer geven in een bereik van een resource groepList role assignments at a resource group scope

Als u alle roltoewijzingen wilt weer geven in een bereik van een resource groep, gebruikt u Get-AzRoleAssignment.To list all role assignments at a resource group scope, use Get-AzRoleAssignment.

Get-AzRoleAssignment -ResourceGroupName <resource_group_name>
PS C:\> Get-AzRoleAssignment -ResourceGroupName pharma-sales | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Alain Charon
RoleDefinitionName : Backup Operator
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Alain Charon
RoleDefinitionName : Virtual Machine Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

Roltoewijzingen in een abonnements bereik weer gevenList role assignments at a subscription scope

Gebruik Get-AzRoleAssignmentom alle roltoewijzingen in een abonnements bereik weer te geven.To list all role assignments at a subscription scope, use Get-AzRoleAssignment. Als u de abonnements-ID wilt ophalen, kunt u deze vinden op de Blade abonnementen in de Azure portal of u kunt Get-AzSubscriptiongebruiken.To get the subscription ID, you can find it on the Subscriptions blade in the Azure portal or you can use Get-AzSubscription.

Get-AzRoleAssignment -Scope /subscriptions/<subscription_id>
PS C:\> Get-AzRoleAssignment -Scope /subscriptions/00000000-0000-0000-0000-000000000000

Roltoewijzingen in een beheer groeps bereik weer gevenList role assignments at a management group scope

Gebruik Get-AzRoleAssignmentom alle roltoewijzingen in een beheer groeps bereik weer te geven.To list all role assignments at a management group scope, use Get-AzRoleAssignment. Als u de beheer groep-ID wilt ophalen, kunt u deze vinden op de Blade beheer groepen in de Azure portal of u kunt Get-AzManagementGroupgebruiken.To get the management group ID, you can find it on the Management groups blade in the Azure portal or you can use Get-AzManagementGroup.

Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/<group_id>
PS C:\> Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/marketing-group

Roltoewijzingen voor de klassieke service beheerder en mede beheerders weer gevenList role assignments for classic service administrator and co-administrators

Gebruik Get-AzRoleAssignmentom roltoewijzingen voor de klassieke abonnements beheerder en mede beheerders weer te geven.To list role assignments for the classic subscription administrator and co-administrators, use Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Toegang verlenenGrant access

In RBAC verleent u toegang door een roltoewijzing te maken.In RBAC, to grant access, you create a role assignment.

Zoeken naar object-Id'sSearch for object IDs

Als u een rol wilt toewijzen, moet u het object (gebruiker, groep of toepassing) en het bereik identificeren.To assign a role, you need to identify both the object (user, group, or application) and the scope.

Als u de abonnements-ID wilt ophalen, kunt u deze vinden op de Blade abonnementen in de Azure portal of u kunt Get-AzSubscriptiongebruiken.To get the subscription ID, you can find it on the Subscriptions blade in the Azure portal or you can use Get-AzSubscription.

Gebruik Get-AzADUserom de object-id voor een Azure AD-gebruiker op te halen.To get the object ID for an Azure AD user, use Get-AzADUser.

Get-AzADUser -StartsWith <string_in_quotes>

Gebruik Get-AzADGroupom de object-id voor een Azure AD-groep op te halen.To get the object ID for an Azure AD group, use Get-AzADGroup.

Get-AzADGroup -SearchString <group_name_in_quotes>

Gebruik Get-AzADServicePrincipalom de object-id voor een Azure AD-Service-Principal of-toepassing op te halen.To get the object ID for an Azure AD service principal or application, use Get-AzADServicePrincipal.

Get-AzADServicePrincipal -SearchString <service_name_in_quotes>

Een roltoewijzing maken voor een gebruiker in een bereik van een resource groepCreate a role assignment for a user at a resource group scope

Gebruik New-AzRoleAssignmentom toegang te verlenen aan een gebruiker in een bereik van een resource groep.To grant access to a user at a resource group scope, use New-AzRoleAssignment.

New-AzRoleAssignment -SignInName <email_or_userprincipalname> -RoleDefinitionName <role_name> -ResourceGroupName <resource_group_name>
PS C:\> New-AzRoleAssignment -SignInName alain@example.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        : Alain Charon
SignInName         : alain@example.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Een roltoewijzing maken met behulp van de unieke rol-IDCreate a role assignment using the unique role ID

Er zijn een aantal keren dat een rolnaam kan worden gewijzigd, bijvoorbeeld:There are a couple of times when a role name might change, for example:

  • U gebruikt uw eigen aangepaste rol en u besluit de naam te wijzigen.You are using your own custom role and you decide to change the name.
  • U gebruikt een preview-functie met (preview) in de naam.You are using a preview role that has (Preview) in the name. Wanneer de rol wordt vrijgegeven, wordt de naam van de rol gewijzigd.When the role is released, the role is renamed.

Belangrijk

Een preview-versie wordt zonder service level agreement gegeven en wordt niet aanbevolen voor productie werkbelastingen.A preview version is provided without a service level agreement, and it's not recommended for production workloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.Certain features might not be supported or might have constrained capabilities. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Zelfs als een rol een andere naam heeft gekregen, wordt de rol-ID niet gewijzigd.Even if a role is renamed, the role ID does not change. Als u scripts of automatisering gebruikt om roltoewijzingen te maken, is het een best practice om de unieke rol-ID te gebruiken in plaats van de rolnaam.If you are using scripts or automation to create your role assignments, it's a best practice to use the unique role ID instead of the role name. Als de naam van een rol wordt gewijzigd, zijn uw scripts waarschijnlijker goed.Therefore, if a role is renamed, your scripts are more likely to work.

Als u een roltoewijzing wilt maken met behulp van de unieke rol-ID in plaats van de rolnaam, gebruikt u New-AzRoleAssignment.To create a role assignment using the unique role ID instead of the role name, use New-AzRoleAssignment.

New-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionId <role_id> -ResourceGroupName <resource_group_name>

In het volgende voor beeld wordt de rol Inzender voor virtuele machines toegewezen aan *alain@example.com* gebruiker op het Pharma van de resource groep.The following example assigns the Virtual Machine Contributor role to *alain@example.com* user at the pharma-sales resource group scope. Als u de unieke rol-ID wilt ophalen, kunt u Get-AzRoleDefinition gebruiken of ingebouwde rollen voor Azure-resourcesweer geven.To get the unique role ID, you can use Get-AzRoleDefinition or see Built-in roles for Azure resources.

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        : Alain Charon
SignInName         : alain@example.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Een roltoewijzing maken voor een groep in een resource bereikCreate a role assignment for a group at a resource scope

Gebruik New-AzRoleAssignmentom toegang te verlenen aan een groep in een resource bereik.To grant access to a group at a resource scope, use New-AzRoleAssignment.

New-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -ResourceName <resource_name> -ResourceType <resource_type> -ParentResource <parent resource> -ResourceGroupName <resource_group_name>
PS C:\> Get-AzADGroup -SearchString "Pharma"

SecurityEnabled DisplayName         Id                                   Type
--------------- -----------         --                                   ----
           True Pharma Sales Admins aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa Group

PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -RoleDefinitionName "Virtual Machine Contributor" -ResourceName RobertVirtualNetwork -ResourceType Microsoft.Network/virtualNetworks -ResourceGroupName RobertVirtualNetworkResourceGroup

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/RobertVirtualNetwork/providers/Microsoft.Authorizat
                     ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/RobertVirtualNetwork
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 roltoewijzing maken voor een toepassing op een abonnements bereikCreate a role assignment for an application at a subscription scope

Gebruik New-AzRoleAssignmentom toegang te verlenen aan een toepassing op een abonnements bereik.To grant access to an application at a subscription scope, use New-AzRoleAssignment.

New-AzRoleAssignment -ObjectId <application_id> -RoleDefinitionName <role_name> -Scope /subscriptions/<subscription_id>
PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 -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        : MyApp1
SignInName         :
RoleDefinitionName : Reader
RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId           : 77777777-7777-7777-7777-777777777777
ObjectType         : ServicePrincipal
CanDelegate        : False

Een roltoewijzing maken voor een gebruiker in een bereik van een beheer groepCreate a role assignment for a user at a management group scope

Gebruik New-AzRoleAssignmentom toegang te verlenen aan een gebruiker op een beheer groeps bereik.To grant access to a user at a management group scope, use New-AzRoleAssignment. Als u de beheer groep-ID wilt ophalen, kunt u deze vinden op de Blade beheer groepen in de Azure portal of u kunt Get-AzManagementGroupgebruiken.To get the management group ID, you can find it on the Management groups blade in the Azure portal or you can use Get-AzManagementGroup.

New-AzRoleAssignment -SignInName <email_or_userprincipalname> -RoleDefinitionName <role_name> -Scope /providers/Microsoft.Management/managementGroups/<group_id>
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

Remove accessRemove access

Als u de toegang wilt verwijderen, verwijdert u in RBAC een roltoewijzing met behulp van Remove-AzRoleAssignment.In RBAC, to remove access, you remove a role assignment by using Remove-AzRoleAssignment.

In het volgende voor beeld wordt de toewijzing van de rol Inzender voor virtuele machines uit de Alain@example.com -gebruiker voor de resource groep Pharma-Sales verwijderd:The following example removes the Virtual Machine Contributor role assignment from the alain@example.com user on the pharma-sales resource group:

PS C:\> Remove-AzRoleAssignment -SignInName alain@example.com -RoleDefinitionName "Virtual Machine Contributor" -ResourceGroupName pharma-sales

In het volgende voor beeld wordt de < role_name >-rol verwijderd uit < object_id > bij een abonnements bereik.The following example removes the <role_name> role from <object_id> at a subscription scope.

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -Scope /subscriptions/<subscription_id>

In het volgende voor beeld wordt de < role_name >-rol verwijderd uit < object_id-> in het bereik van de beheer groep.The following example removes the <role_name> role from <object_id> at the management group scope.

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -Scope /providers/Microsoft.Management/managementGroups/<group_id>

Als het volgende fout bericht wordt weer gegeven: "De opgegeven informatie is niet toegewezen aan een roltoewijzing", zorg ervoor dat u ook de -Scope para meters of -ResourceGroupName opgeeft.If you get the error message: "The provided information does not map to a role assignment", make sure that you also specify the -Scope or -ResourceGroupName parameters. Zie problemen met RBAC voor Azure-resources oplossenvoor meer informatie.For more information, see Troubleshoot RBAC for Azure resources.

Volgende stappenNext steps