Sdílet prostřednictvím


Udělení uživatelských oprávnění konkrétním zásadám testovacího prostředí

Přehled

Tento článek ukazuje, jak pomocí PowerShellu udělit uživatelům oprávnění ke konkrétním zásadám testovacího prostředí. Oprávnění se tak dají použít na základě potřeb jednotlivých uživatelů. Můžete například konkrétnímu uživateli udělit možnost změnit nastavení zásad virtuálního počítače, ale ne zásady nákladů.

Zásady jako prostředky

Jak je popsáno v článku řízení přístupu na základě role v Azure (Azure RBAC), Azure RBAC umožňuje jemně odstupňovanou správu přístupu prostředků pro Azure. Pomocí Azure RBAC můžete oddělit povinnosti v rámci týmu DevOps a udělit uživatelům jenom přístup, který potřebují k výkonu svých úloh.

V DevTest Labs je zásada typem prostředku, který umožňuje akci Azure RBAC Microsoft.DevTestLab/labs/policySets/policies/. Každá zásada testovacího prostředí je prostředek v typu prostředku Zásady a dá se přiřadit jako obor roli Azure.

Pokud například chcete uživatelům udělit oprávnění ke čtení a zápisu do zásady Povolené velikosti virtuálních počítačů , vytvořili byste vlastní roli, která funguje s akcí Microsoft.DevTestLab/labs/policySets/policies/ a pak přiřadíte příslušné uživatele k této vlastní roli v oboru Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Další informace o vlastních rolích v Azure RBAC najdete v vlastních rolích Azure.

Vytvoření vlastní role testovacího prostředí pomocí PowerShellu

Abyste mohli začít, budete muset nainstalovat Azure PowerShell.

Po nastavení rutin Azure PowerShellu můžete provádět následující úlohy:

  • Výpis všech operací nebo akcí pro poskytovatele prostředků
  • Zobrazení seznamu akcí v konkrétní roli:
  • Vytvoření vlastní role

Následující skript PowerShellu ukazuje příklady provedení těchto úloh:

# List all the operations/actions for a resource provider.
Get-AzProviderOperation -OperationSearchString "Microsoft.DevTestLab/*"

# List actions in a particular role.
(Get-AzRoleDefinition "DevTest Labs User").Actions

# Create custom role.
$policyRoleDef = (Get-AzRoleDefinition "DevTest Labs User")
$policyRoleDef.Id = $null
$policyRoleDef.Name = "Policy Contributor"
$policyRoleDef.IsCustom = $true
$policyRoleDef.AssignableScopes.Clear()
$policyRoleDef.AssignableScopes.Add("/subscriptions/<SubscriptionID> ")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/policySets/policies/*")
$policyRoleDef = (New-AzRoleDefinition -Role $policyRoleDef)

Přiřazení oprávnění uživateli pro konkrétní zásadu pomocí vlastních rolí

Po definování vlastních rolí je můžete přiřadit uživatelům. Pokud chcete uživateli přiřadit vlastní roli, musíte nejprve získat ID objektu představujícího daného uživatele. K tomu použijte rutinu Get-AzADUser .

V následujícím příkladu je ObjectId uživatele SomeUser aaaaaaa-0000-1111-2222-bbbbbbbbbbbbbb.

PS C:\>Get-AzADUser -SearchString "SomeUser"

DisplayName                    Type                           ObjectId
-----------                    ----                           --------
someuser@hotmail.com                                          aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb

Jakmile budete mít Id objektu pro uživatele a vlastní název role, můžete tuto roli přiřadit uživateli pomocí rutiny New-AzRoleAssignment:

PS C:\>New-AzRoleAssignment -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -RoleDefinitionName "Policy Contributor" -Scope /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.DevTestLab/labs/<LabName>/policySets/default/policies/AllowedVmSizesInLab

V předchozím příkladu se používá zásada AllowedVmSizesInLab . Můžete použít některou z následujících zásad:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Vytvoření role, která uživatelům umožní provádět konkrétní úkol

Tento ukázkový skript, který vytvoří roli DevTest Labs Advanced User, která má oprávnění ke spuštění a zastavení všech virtuálních počítačů v testovacím prostředí:

    $policyRoleDef = Get-AzRoleDefinition "DevTest Labs User"
    $policyRoleDef.Actions.Remove('Microsoft.DevTestLab/Environments/*')
    $policyRoleDef.Id = $null
    $policyRoleDef.Name = "DevTest Labs Advanced User"
    $policyRoleDef.IsCustom = $true
    $policyRoleDef.AssignableScopes.Clear()
    $policyRoleDef.AssignableScopes.Add("/subscriptions/<subscription Id>")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Start/action")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Stop/action")
    $policyRoleDef = New-AzRoleDefinition -Role $policyRoleDef 

Začínáme s Azure DevTest Labs

Zatím Azure neznáte? Vytvořte si bezplatný účet Azure.

Už jste na platformě Azure? Vytvořte první testovací prostředí a začněte s Azure DevTest Labs v řádu minut.

Další kroky

Jakmile udělíte oprávnění uživatelů ke konkrétním zásadám testovacího prostředí, tady je několik dalších kroků, které je potřeba zvážit: