Memberikan izin pengguna untuk kebijakan lab tertentu

Gambaran Umum

Artikel ini menggambarkan cara menggunakan PowerShell untuk memberi pengguna izin ke kebijakan lab tertentu. Dengan begitu, izin dapat diterapkan berdasarkan kebutuhan masing-masing pengguna. Misalnya, Anda mungkin ingin memberi pengguna tertentu kemampuan untuk mengubah pengaturan kebijakan VM, tetapi bukan kebijakan biaya.

Kebijakan sebagai sumber daya

Seperti yang dibahas dalam artikel kontrol akses berbasis peran Azure (Azure RBAC), Azure RBAC memungkinkan manajemen akses mendetail untuk sumber daya untuk Azure. Menggunakan Azure RBAC, Anda dapat memisahkan tugas dalam tim DevOps Anda dan hanya memberikan jumlah akses ke pengguna yang mereka butuhkan untuk melakukan pekerjaan mereka.

Di DevTest Labs, kebijakan adalah jenis sumber daya yang memungkinkan tindakan Azure RBAC Microsoft.DevTestLab/labs/policySets/policies/ . Setiap kebijakan lab adalah sumber daya dalam jenis sumber daya Azure Policy, dan dapat ditetapkan sebagai lingkup peran Azure.

Misalnya, untuk memberikan izin baca/tulis kepada pengguna ke kebijakan Ukuran VM yang Diizinkan, Anda akan membuat peran kustom yang berfungsi dengan tindakan Microsoft.DevTestLab/labs/policySets/policies/ , lalu menetapkan pengguna yang sesuai ke kustom ini peran dalam lingkup Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Untuk mempelajari selengkapnya tentang peran kustom di Azure RBAC, lihat peran kustom Azure.

Membuat peran kustom lab menggunakan PowerShell

Untuk memulai, Anda harus menginstal Azure PowerShell.

Setelah menyiapkan cmdlet Azure PowerShell, Anda bisa melakukan tugas berikut:

  • Mencantumkan semua operasi/tindakan untuk penyedia sumber daya
  • Mencantumkan tindakan dalam peran tertentu:
  • Membuat peran kustom

Skrip PowerShell berikut ini mengilustrasikan contoh cara melakukan tugas ini:

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

Menetapkan izin kepada pengguna untuk kebijakan tertentu menggunakan peran kustom

Setelah menentukan peran kustom, Anda dapat menetapkannya kepada pengguna. Untuk menetapkan peran kustom kepada pengguna, Anda harus terlebih dahulu mendapatkan ObjectId yang mewakili pengguna tersebut. Untuk melakukan itu, gunakan cmdlet Get-AzADUser.

Dalam contoh berikut, ObjectId dari pengguna SomeUser adalah 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

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

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

Setelah Anda memiliki ObjectId untuk pengguna dan nama peran kustom, Anda dapat menetapkan peran tersebut kepada pengguna dengan cmdlet 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

Dalam contoh sebelumnya, kebijakan AllowedVmSizesInLab digunakan. Anda dapat menggunakan salah satu kebijakan berikut:

  • MaxVmsSemuanyaPerUser
  • MaxVmsSemuanyaPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Membuat peran untuk memungkinkan pengguna melakukan tugas tertentu

Contoh skrip ini yang membuat peran DevTest Labs Advanced User, yang memiliki izin untuk memulai dan menghentikan semua VM di lab:

    $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 

Mulai menggunakan Azure DevTest Labs

Baru menggunakan Azure? Buat akun Azure gratis.

Sudah ada di Azure? Mulai menggunakan lab pertama Anda di DevTest Labs: Mulai menggunakan Azure DevTest Labs dalam hitung menit.

Langkah berikutnya

Setelah Anda memberikan izin kepada pengguna untuk kebijakan lab tertentu, berikut adalah beberapa langkah berikutnya yang perlu dipertimbangkan: