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. Chcete-li udělit přístup, přiřaďte role uživatelům, skupinám, instančním objektům nebo spravovaným identitám v konkrétním rozsahu. Tento článek popisuje, jak přiřadit role pomocí Azure PowerShellu.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si 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.

Požadavky

Pokud chcete přiřadit role, musíte mít:

Postup přiřazení role Azure

Přiřazení role se skládá ze tří prvků: objekt zabezpečení, definice role a obor.

Krok 1: Určení, kdo potřebuje přístup

Roli můžete přiřadit uživateli, skupině, instančnímu objektu nebo spravované identitě. Pokud chcete přiřadit roli, budete možná muset zadat jedinečné ID objektu. ID má formát: 11111111-1111-1111-1111-111111111111. ID můžete získat pomocí webu Azure Portal nebo Azure PowerShellu.

Uživatel

Pro uživatele Microsoft Entra získejte hlavní název uživatele, například patlong@contoso.com ID objektu uživatele. K získání ID objektu můžete použít Get-AzADUser.

Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id

Skupina

Pro skupinu Microsoft Entra potřebujete ID objektu skupiny. Id objektu získáte pomocí rutiny Get-AzADGroup.

Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id

Instanční objekt

Pro instanční objekt Microsoft Entra (identita používaná aplikací) potřebujete ID instančního objektu. K získání ID objektu můžete použít Get-AzADServicePrincipal. Pro instanční objekt použijte ID objektu, nikoli ID aplikace.

Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id

Spravovaná identita

Pro spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem potřebujete ID objektu. K získání ID objektu můžete použít Get-AzADServicePrincipal.

Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id

Krok 2: Výběr příslušné role

Oprávnění se seskupují do rolí. Můžete si vybrat ze seznamu několika předdefinovaných rolí Azure nebo můžete použít vlastní role. Osvědčeným postupem je udělit přístup s minimálními potřebnými oprávněními, takže se vyhněte přiřazování širší role.

Pokud chcete zobrazit seznam rolí a získat jedinečné ID role, můžete použít Rutinu Get-AzRoleDefinition.

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

Tady je postup, jak zobrazit podrobnosti konkrétní role.

Get-AzRoleDefinition -Name <roleName>

Další informace najdete v tématu Výpis definic rolí Azure.

Krok 3: Určení potřebného oboru

Azure poskytuje čtyři úrovně rozsahu: prostředek, skupinu prostředků, předplatné a skupinu pro správu. Osvědčeným postupem je udělit přístup s minimálními potřebnými oprávněními, takže se vyhněte přiřazování role v širším rozsahu. Další informace o oboru naleznete v tématu Vysvětlení oboru.

Rozsah prostředků

Pro rozsah prostředků potřebujete ID prostředku pro daný prostředek. ID prostředku najdete tak, že se podíváte na vlastnosti prostředku na webu Azure Portal. ID prostředku má následující formát.

/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>

Rozsah skupiny prostředků

Pro obor skupiny prostředků potřebujete název skupiny prostředků. Název najdete na stránce Skupiny prostředků na webu Azure Portal nebo můžete použít Rutinu Get-AzResourceGroup.

Get-AzResourceGroup

Rozsah předplatného

Pro rozsah předplatného potřebujete ID předplatného. ID najdete na stránce Předplatná na webu Azure Portal nebo můžete použít Get-AzSubscription.

Get-AzSubscription

Rozsah skupiny pro správu

Pro obor skupiny pro správu potřebujete název skupiny pro správu. Název najdete na stránce Skupiny pro správu na webu Azure Portal nebo můžete použít Rutinu Get-AzManagementGroup.

Get-AzManagementGroup

Krok 4: Přiřazení role

K přiřazení role použijte příkaz New-AzRoleAssignment . V závislosti na oboru má příkaz obvykle jeden z následujících formátů.

Rozsah prostředků

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>

Rozsah skupiny prostředků

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>

Rozsah předplatného

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>

Rozsah skupiny pro správu

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>

Přiřazení příkladů rolí

Přiřazení role pro všechny kontejnery objektů blob v oboru prostředků účtu úložiště

Přiřadí roli Přispěvatel dat v objektu blob úložiště instančnímu objektu s ID 55555555-5555-5555-5555-555555555555 a ID aplikace. 6666666-6666-6666-6666-6666666666666666 v oboru prostředku pro účet úložiště s názvem 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

Přiřazení role pro konkrétní obor prostředků kontejneru objektů blob

Přiřadí roli Přispěvatel dat v objektu blob úložiště instančnímu objektu s ID 55555555-5555-5555-5555-555555555555 a ID aplikace. 66666666-6666-6666-6666-6666666666666666 v oboru prostředku pro kontejner objektů blob s názvem 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

Přiřazení role pro skupinu v určitém oboru prostředků virtuální sítě

Přiřadí roli Přispěvatel virtuálních počítačů skupině Pharma Sales Správa s s ID aaaaaaaa-a-a-aa ve virtuální síti s názvem 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

Přiřazení role pro uživatele v oboru skupiny prostředků

Přiřadí roli Přispěvatel virtuálních počítačů uživateli v oboru skupiny prostředků farmakovitické prodeje. patlong@contoso.com

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

Případně můžete zadat plně kvalifikovanou skupinu prostředků pomocí parametru -Scope :

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

Přiřazení role pro uživatele pomocí jedinečného ID role v oboru skupiny prostředků

Někdy se může změnit název role, například:

  • Používáte vlastní roli a rozhodnete se změnit název.
  • Používáte roli preview, která má v názvu (Preview). Po vydání role se role přejmenuje.

I když je role přejmenována, ID role se nezmění. Pokud k vytváření přiřazení rolí používáte skripty nebo automatizaci, doporučujeme místo názvu role použít jedinečné ID role. Proto pokud se role přejmenuje, budou vaše skripty pravděpodobně fungovat.

Následující příklad přiřadí uživateli roli patlong@contoso.com Přispěvatel virtuálních počítačů v oboru skupiny prostředků prodeje 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

Přiřazení role pro aplikaci v oboru skupiny prostředků

Přiřadí roli Přispěvatel virtuálních počítačů k aplikaci s ID instančního objektu 77777777-7777-7777-7777-777777777777777777777777777777777777777777777777777777777777777777777777777777.

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

Přiřazení role pro uživatele v oboru předplatného

Přiřadí uživateli roli annm@example.com Čtenář v oboru předplatného.

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

Přiřazení role pro uživatele v oboru skupiny pro správu

Přiřadí uživateli roli alain@example.com Čtenář fakturace v oboru skupiny pro správu.

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

Další kroky