Belirli laboratuvar ilkelerine 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'yi kullanarak DevOps ekibinizin içindeki 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ündeki bir kaynaktır ve bir 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 yüklemeniz gerekir.
Azure PowerShell cmdlet'lerini ayarladıktan sonra aşağıdaki görevleri gerçekleştirebilirsiniz:
- Bir kaynak sağlayıcısı için tüm işlemleri/eylemleri listeleme
- Belirli bir roldeki eylemleri listeleme:
- Özel rol oluşturma
Aşağıdaki PowerShell betiğinde bu görevlerin nasıl gerçekleştireceğ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 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, new-AzRoleAssignment cmdlet'ini kullanarak kullanıcıya bu rolü 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? DevTest Labs'deki ilk laboratuvarınızı kullanmaya başlama: dakikalar içinde Azure DevTest Labs kullanmaya başlayın.
Sonraki adımlar
Belirli laboratuvar ilkelerine 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