Megosztás a következőn keresztül:


Felhasználói engedélyek megadása adott tesztkörnyezeti szabályzatok számára

Áttekintés

Ez a cikk bemutatja, hogyan adhat engedélyt a felhasználóknak egy adott laborszabályzathoz a PowerShell használatával. Így az engedélyek az egyes felhasználók igényei szerint alkalmazhatók. Előfordulhat például, hogy egy adott felhasználó számára lehetővé szeretné tenni a virtuálisgép-házirend beállításainak módosítását, a költségszabályzatokat azonban nem.

Szabályzatok erőforrásokként

Az Azure szerepköralapú hozzáférés-vezérlésről (Azure RBAC) szóló cikkben leírtak szerint az Azure RBAC lehetővé teszi az erőforrások részletes hozzáférés-kezelését az Azure-hoz. Az Azure RBAC használatával elkülönítheti a devOps-csapaton belüli feladatokat, és csak annyi hozzáférést biztosíthat a felhasználóknak, amennyi szükséges a feladataik elvégzéséhez.

A DevTest Labsban a szabályzat olyan erőforrástípus, amely lehetővé teszi a Microsoft.DevTestLab/labs/policySets/policies/Azure RBAC-művelet használatát. Minden laborszabályzat egy erőforrás a Szabályzat erőforrástípusában, és hatókörként hozzárendelhető egy Azure-szerepkörhöz.

Ha például olvasási/írási engedélyt szeretne adni a felhasználóknak az Engedélyezett virtuálisgép-méretek szabályzathoz, létre kell hoznia egy egyéni szerepkört, amely a Microsoft.DevTestLab/labs/policySets/policies/ művelettel működik, majd hozzárendeli a megfelelő felhasználókat ehhez az egyéni szerepkörhöz a Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab hatókörében.

Az Azure RBAC egyéni szerepköreivel kapcsolatos további információkért tekintse meg az Azure-beli egyéni szerepköröket.

Egyéni tesztkörnyezeti szerepkör létrehozása a PowerShell használatával

Az első lépésekhez telepítenie kell az Azure PowerShellt.

Az Azure PowerShell-parancsmagok beállítása után a következő feladatokat hajthatja végre:

  • Erőforrás-szolgáltató összes műveletének/műveletének listázása
  • Műveletek listázása egy adott szerepkörben:
  • Egyéni szerepkör létrehozása

Az alábbi PowerShell-szkript példákat mutat be a feladatok végrehajtására:

# 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)

Engedélyek hozzárendelése egy felhasználóhoz egy adott szabályzathoz egyéni szerepkörök használatával

Miután definiálta az egyéni szerepköröket, hozzárendelheti őket a felhasználókhoz. Ahhoz, hogy egyéni szerepkört rendelhessen egy felhasználóhoz, először be kell szereznie az adott felhasználót képviselő ObjectId azonosítót . Ehhez használja a Get-AzADUser parancsmagot.

Az alábbi példában a SomeUser-felhasználó ObjectId azonosítója 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

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

DisplayName                    Type                           ObjectId
-----------                    ----                           --------
someuser@hotmail.com                                          05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3

Miután megkapta a felhasználó ObjectId azonosítóját és egy egyéni szerepkörnevet, a New-AzRoleAssignment parancsmaggal rendelheti hozzá a szerepkört a felhasználóhoz:

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

Az előző példában a AllowedVmSizesInLab szabályzatot használja a rendszer. Az alábbi szabályzatok bármelyikét használhatja:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Szerepkör létrehozása, amely lehetővé teszi a felhasználók számára egy adott feladat végrehajtását

Ez a példaszkript hozza létre a DevTest Labs Advanced User szerepkört, amely jogosult a tesztkörnyezet összes virtuális gépének elindítására és leállítására:

    $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 

Bevezetés az Azure DevTest Labs használatába

Most ismerkedik az Azure-ral? Ingyenes Azure-fiók létrehozása.

Már használja az Azure-t? Hozza létre az első tesztkörnyezetet, és percek alatt kezdje el használni az Azure DevTest Labs szolgáltatást.

Következő lépések

Miután adott felhasználói engedélyeket adott a laborszabályzatok számára, az alábbi lépéseket érdemes megfontolnia: