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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: