Belirli laboratuvar ilkeleri için kullanıcı izinleri verme
Genel bakış
Bu makalede, kullanıcılara belirli bir laboratuvar ilkesi için izin vermek için PowerShell'in nasıl kullanılacağı gösterilmektedir. Bu şekilde, izinler her kullanıcının ihtiyaçlarına göre uygulanabilir. Örneğin, belirli bir kullanıcıya VM ilkesi ayarlarını değiştirme olanağı vermek isteyebilirsiniz ancak maliyet ilkelerini değiştiremezsiniz.
Kaynak olarak ilkeler
Azure rol tabanlı erişim denetimi (Azure RBAC) makalesinde açıklandığı gibi Azure RBAC, Azure için kaynakların ayrıntılı erişim yönetimini sağlar. Azure RBAC kullanarak DevOps ekibinizdeki görevleri ayırabilir ve kullanıcılara yalnızca işlerini yapmaları için gereken erişim miktarını vekleyebilirsiniz.
DevTest Labs'de ilke, Microsoft.DevTestLab/labs/policySets/policies/ Azure RBAC eylemini etkinleştiren bir kaynak türüdür. Her laboratuvar ilkesi, İlke kaynak türünde bir kaynaktır ve azure rolüne kapsam olarak atanabilir.
Örneğin, kullanıcılara İzin Verilen VM Boyutları ilkesine okuma/yazma izni vermek için, Microsoft.DevTestLab/labs/policySets/policies/ eylemiyle çalışan özel bir rol oluşturur ve ardından uygun kullanıcıları Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab kapsamında bu özel role atarsınız.
Azure RBAC'deki özel roller hakkında daha fazla bilgi edinmek için bkz . Azure özel rolleri.
PowerShell kullanarak laboratuvar özel rolü oluşturma
Başlamak için Azure PowerShell'i yüklemeniz gerekir.
Azure PowerShell cmdlet'lerini ayarladıktan sonra aşağıdaki görevleri gerçekleştirebilirsiniz:
- Kaynak sağlayıcısı için tüm işlemleri/eylemleri listeleme
- Belirli bir roldeki liste eylemleri:
- Özel rol oluşturma
Aşağıdaki PowerShell betiğinde bu görevlerin nasıl gerçekleştirebileceğinize ilişkin örnekler gösterilmektedir:
# 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)
Özel rolleri kullanarak belirli bir ilke için kullanıcıya izin atama
Özel rollerinizi tanımladıktan sonra bunları kullanıcılara atayabilirsiniz. Kullanıcıya özel rol atamak için, önce o kullanıcıyı temsil eden ObjectId değerini almanız gerekir. Bunu yapmak için Get-AzADUser cmdlet'ini kullanın.
Aşağıdaki örnekte, SomeUser kullanıcısının ObjectId değeri 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3'tür.
PS C:\>Get-AzADUser -SearchString "SomeUser"
DisplayName Type ObjectId
----------- ---- --------
someuser@hotmail.com 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3
Kullanıcının ObjectId değerini ve özel rol adını aldıktan sonra, bu rolü New-AzRoleAssignment cmdlet'iyle kullanıcıya atayabilirsiniz:
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
Önceki örnekte AllowedVmSizesInLab ilkesi kullanılmıştır. Aşağıdaki ilkelerden herhangi birini kullanabilirsiniz:
- MaxVmsAllowedPerUser
- MaxVmsAllowedPerLab
- AllowedVmSizesInLab
- LabVmsShutdown
Kullanıcıların belirli bir görevi gerçekleştirmesine izin vermek için rol oluşturma
Laboratuvardaki tüm VM'leri başlatma ve durdurma izni olan DevTest Labs Advanced User rolünü oluşturan bu örnek betik:
$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
Azure DevTest Labs ile çalışma başlama
Azure'da yeni misiniz? Ücretsiz bir Azure hesabı oluşturun.
Azure’u zaten kullanıyor musunuz? İlk laboratuvarınızı oluşturun ve Azure DevTest Labs'i dakikalar içinde kullanmaya başlayın.
Sonraki adımlar
Belirli laboratuvar ilkeleri için kullanıcı izinleri verdikten sonra göz önünde bulundurmanız gereken bazı sonraki adımlar şunlardır:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin