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:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk