Udělení uživatelských oprávnění ke 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í. Tímto způsobem lze oprávnění použít na základě potřeb každého uživatele. Můžete například konkrétnímu uživateli udělit možnost změnit nastavení zásad virtuálních počítačů, 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 k prostředkům pro Azure. Pomocí Azure RBAC můžete oddělit povinnosti v rámci vašeho týmu DevOps a udělit uživatelům jenom takový 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 Policy a dá se přiřadit jako obor roli Azure.
Pokud například chcete uživatelům udělit oprávnění ke čtení/zápisu k zásadě Povolené velikosti virtuálních počítačů , vytvořili byste vlastní roli, která funguje s akcí Microsoft.DevTestLab/labs/policySets/policies/ , a pak byste k této vlastní roli přiřadili příslušné uživatele v oboru Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.
Další informace o vlastních rolích v Azure RBAC najdete v tématu Vlastní role Azure.
Vytvoření vlastní role testovacího prostředí pomocí PowerShellu
Abyste mohli začít, budete muset nainstalovat Azure PowerShell.
Jakmile nastavíte rutiny Azure PowerShell, můžete provádět následující úlohy:
- Výpis všech operací a akcí pro poskytovatele prostředků
- Výpis akcí v konkrétní roli:
- Vytvoření vlastní role
Následující skript PowerShellu ukazuje příklady provádění 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 ke konkrétní zásadě pomocí vlastních rolí
Po definování vlastních rolí je můžete přiřadit uživatelům. Chcete-li přiřadit vlastní roli uživateli, musíte nejprve získat ObjectId představující daného uživatele. K tomu použijte rutinu Get-AzADUser .
V následujícím příkladu je ObjectId uživatele SomeUser 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.
PS C:\>Get-AzADUser -SearchString "SomeUser"
DisplayName Type ObjectId
----------- ---- --------
someuser@hotmail.com 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3
Jakmile budete mít Id objektu uživatele a název vlastní role, můžete tuto roli uživateli přiřadit pomocí rutiny New-AzRoleAssignment :
PS C:\>New-AzRoleAssignment -ObjectId 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3 -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í úlohu
Tento ukázkový skript, který vytvoří roli DevTest Labs Advanced User, která má oprávnění ke spouštění a zastavování 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
Jste nováčky v prostředí Azure? Vytvořte si bezplatný účet Azure.
Už jste na platformě Azure? Začínáme s prvním testovacím prostředím v DevTest Labs: Začínáme s Azure DevTest Labs v řádu minut.
Další kroky
Po udělení uživatelských oprávnění ke konkrétním zásadám testovacího prostředí je potřeba zvážit následující kroky:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro