Výpis přiřazení rolí Azure pomocí Azure PowerShellu

Řízení přístupu na základě role v Azure (Azure RBAC) je autorizační systém, který používáte ke správě přístupu k prostředkům Azure. Pokud chcete určit, k jakým prostředkům mají uživatelé, skupiny, instanční objekty nebo spravované identity přístup, uveďte jejich přiřazení rolí. Tento článek popisuje, jak vypsat přiřazení rolí pomocí Azure PowerShellu.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Poznámka:

Pokud má vaše organizace odsouděné funkce správy poskytovateli služeb, který používá Azure Lighthouse, nezobrazí se tady přiřazení rolí autorizovaných poskytovatelem služeb. Podobně uživatelé v tenantovi poskytovatele služeb neuvidí přiřazení rolí pro uživatele v tenantovi zákazníka bez ohledu na přiřazenou roli.

Požadavky

Výpis přiřazení rolí pro aktuální předplatné

Nejjednodušší způsob, jak získat seznam všech přiřazení rolí v aktuálním předplatném (včetně zděděných přiřazení rolí z kořenových skupin a skupin pro správu), je použít Get-AzRoleAssignment bez jakýchkoli parametrů.

Get-AzRoleAssignment
PS C:\> Get-AzRoleAssignment

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName        : Alain
SignInName         : alain@example.com
RoleDefinitionName : Storage Blob Data Reader
RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : Marketing
SignInName         :
RoleDefinitionName : Contributor
RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : Group
CanDelegate        : False

...

Výpis přiřazení rolí pro předplatné

Pokud chcete vypsat všechna přiřazení rolí v oboru předplatného, použijte rutinu Get-AzRoleAssignment. Pokud chcete získat ID předplatného, najdete ho v okně Předplatná na webu Azure Portal nebo můžete použít Get-AzSubscription.

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

Zobrazení seznamu přiřazení rolí pro uživatele

Pokud chcete zobrazit seznam všech rolí přiřazených zadanému uživateli, použijte rutinu 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

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

Výpis přiřazení rolí pro skupinu prostředků

Pokud chcete zobrazit seznam všech přiřazení rolí v oboru skupiny prostředků, použijte rutinu 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

Výpis přiřazení rolí pro skupinu pro správu

Pokud chcete vypsat všechna přiřazení rolí v oboru skupiny pro správu, použijte rutinu Get-AzRoleAssignment. Pokud chcete získat ID skupiny pro správu, najdete ho v okně Skupiny pro správu na webu Azure Portal nebo můžete použít rutinu Get-AzManagementGroup.

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

Výpis přiřazení rolí pro prostředek

Pokud chcete vypsat přiřazení rolí pro konkrétní prostředek, použijte Rutinu Get-AzRoleAssignment a -Scope parametr. Rozsah se bude lišit v závislosti na prostředku. Pokud chcete získat obor, můžete spustit Get-AzRoleAssignment bez parametrů, abyste vypsli seznam všech přiřazení rolí a pak našli obor, který chcete vypsat.

Get-AzRoleAssignment -Scope "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/<provider_name>/<resource_type>/<resource>

This following example shows how to list the role assignments for a storage account. Note that this command also lists role assignments at higher scopes, such as resource groups and subscriptions, that apply to this storage account.

PS C:\> Get-AzRoleAssignment -Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"

If you want to just list role assignments that are assigned directly on a resource, you can use the Where-Object command to filter the list.

PS C:\> Get-AzRoleAssignment | Where-Object {$_.Scope -eq "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"}

Výpis přiřazení rolí pro klasického správce služeb a spolusprávce

Pokud chcete vypsat přiřazení rolí pro klasického správce předplatného a spolusprávce, použijte rutinu Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Výpis přiřazení rolí pro spravovanou identitu

Postupujte následovně:

  1. Získejte ID objektu spravované identity přiřazené systémem nebo přiřazené uživatelem.

    K získání ID objektu spravované identity přiřazené uživatelem můžete použít Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. K výpisu přiřazení rolí použijte rutinu Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

Další krok