Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika peran bawaan Microsoft Azure tidak memenuhi kebutuhan spesifik organisasi, Anda dapat membuat peran kustom sendiri. Artikel ini menjelaskan cara mencantumkan, membuat, memperbarui, atau menghapus peran kustom menggunakan Azure PowerShell.
Untuk tutorial langkah demi langkah tentang cara membuat peran kustom, lihat Tutorial : Membuat peran kustom Azure menggunakan Azure PowerShell.
Nota
Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Prasyarat
Untuk membuat peran kustom, Anda perlu:
- Izin untuk membuat peran kustom, seperti Administrator Akses Pengguna
- Azure Cloud Shell atau Azure PowerShell
Mencantumkan peran kustom
Untuk mencantumkan peran yang tersedia untuk ditugaskan pada cakupan, gunakan perintah Get-AzRoleDefinition. Contoh berikut mencantumkan semua peran yang tersedia untuk penugasan dalam langganan yang dipilih.
Get-AzRoleDefinition | FT Name, IsCustom
Name IsCustom
---- --------
Virtual Machine Operator True
AcrImageSigner False
AcrQuarantineReader False
AcrQuarantineWriter False
API Management Service Contributor False
...
Contoh berikut hanya mencantumkan peran kustom yang tersedia untuk penugasan dalam langganan yang dipilih.
Get-AzRoleDefinition -Custom | FT Name, IsCustom
Name IsCustom
---- --------
Virtual Machine Operator True
Jika langganan yang dipilih tidak berada dalam AssignableScopes dari peran, peran khusus tidak akan dicantumkan.
Daftar definisi peran khusus
Untuk mencantumkan definisi peran kustom, gunakan Get-AzRoleDefinition. Ini adalah perintah yang sama dengan yang Anda gunakan untuk peran bawaan.
Get-AzRoleDefinition <role_name> | ConvertTo-Json
PS C:\> Get-AzRoleDefinition "Virtual Machine Operator" | ConvertTo-Json
{
"Name": "Virtual Machine Operator",
"Id": "00000000-0000-0000-0000-000000000000",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/11111111-1111-1111-1111-111111111111"
]
}
Contoh berikut hanya mencantumkan tindakan peran:
(Get-AzRoleDefinition <role_name>).Actions
PS C:\> (Get-AzRoleDefinition "Virtual Machine Operator").Actions
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
Membuat peran kustom
Untuk membuat peran kustom, gunakan perintah New-AzRoleDefinition. Ada dua metode penataan peran, menggunakan objek PSRoleDefinition atau templat JSON.
Memperoleh operasi untuk penyedia sumber daya
Saat Anda membuat peran kustom, penting untuk mengetahui semua kemungkinan operasi dari penyedia sumber daya. Anda dapat melihat daftar operasi penyedia sumber daya atau Anda dapat menggunakan perintah Get-AzProviderOperation untuk mendapatkan informasi ini. Misalnya, jika Anda ingin memeriksa semua operasi yang tersedia untuk komputer virtual, gunakan perintah ini:
Get-AzProviderOperation <operation> | FT OperationName, Operation, Description -AutoSize
PS C:\> Get-AzProviderOperation "Microsoft.Compute/virtualMachines/*" | FT OperationName, Operation, Description -AutoSize
OperationName Operation Description
------------- --------- -----------
Get Virtual Machine Microsoft.Compute/virtualMachines/read Get the propertie...
Create or Update Virtual Machine Microsoft.Compute/virtualMachines/write Creates a new vir...
Delete Virtual Machine Microsoft.Compute/virtualMachines/delete Deletes the virtu...
Start Virtual Machine Microsoft.Compute/virtualMachines/start/action Starts the virtua...
...
Membuat peran kustom dengan objek PSRoleDefinition
Saat Anda menggunakan PowerShell untuk membuat peran kustom, Anda dapat menggunakan salah satu peran bawaan sebagai titik awal atau Anda dapat memulai dari awal. Contoh pertama di bagian ini dimulai dengan peran bawaan lalu menyesuaikannya dengan lebih banyak izin. Edit atribut untuk menambahkan Actions, NotActions, atau AssignableScopes yang Anda inginkan, lalu simpan perubahan sebagai peran baru.
Contoh berikut dimulai dengan peran bawaan Kontributor Komputer Virtual untuk membuat peran kustom bernama Operator Komputer Virtual. Peran baru memberikan akses ke semua tindakan baca Microsoft.Compute, Microsoft.Storage, dan penyedia sumber daya Microsoft.Network dan memberikan akses untuk memulai, memulai ulang, dan memantau komputer virtual. Peran kustom dapat digunakan dalam dua langganan.
$role = Get-AzRoleDefinition "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Virtual Machine Operator"
$role.Description = "Can monitor and restart virtual machines."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/*/read")
$role.Actions.Add("Microsoft.Network/*/read")
$role.Actions.Add("Microsoft.Compute/*/read")
$role.Actions.Add("Microsoft.Compute/virtualMachines/start/action")
$role.Actions.Add("Microsoft.Compute/virtualMachines/restart/action")
$role.Actions.Add("Microsoft.Authorization/*/read")
$role.Actions.Add("Microsoft.ResourceHealth/availabilityStatuses/read")
$role.Actions.Add("Microsoft.Resources/subscriptions/resourceGroups/read")
$role.Actions.Add("Microsoft.Insights/alertRules/*")
$role.Actions.Add("Microsoft.Support/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/00000000-0000-0000-0000-000000000000")
$role.AssignableScopes.Add("/subscriptions/11111111-1111-1111-1111-111111111111")
New-AzRoleDefinition -Role $role
Contoh berikut menunjukkan cara lain untuk membuat Operator Komputer Virtual peran kustom. Ini dimulai dengan membuat objek PSRoleDefinition baru. Tindakan ditentukan dalam variabel perms dan diatur ke properti Actions. Properti NotActions diatur dengan membaca NotActions dari peran bawaan Kontributor Mesin Virtual . Karena Kontributor Komputer Virtual tidak memiliki NotActions, baris ini tidak diperlukan, tetapi menunjukkan bagaimana informasi dapat diambil dari peran lain.
$role = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
$role.Name = 'Virtual Machine Operator 2'
$role.Description = 'Can monitor and restart virtual machines.'
$role.IsCustom = $true
$perms = 'Microsoft.Storage/*/read','Microsoft.Network/*/read','Microsoft.Compute/*/read'
$perms += 'Microsoft.Compute/virtualMachines/start/action','Microsoft.Compute/virtualMachines/restart/action'
$perms += 'Microsoft.Authorization/*/read'
$perms += 'Microsoft.ResourceHealth/availabilityStatuses/read'
$perms += 'Microsoft.Resources/subscriptions/resourceGroups/read'
$perms += 'Microsoft.Insights/alertRules/*','Microsoft.Support/*'
$role.Actions = $perms
$role.NotActions = (Get-AzRoleDefinition -Name 'Virtual Machine Contributor').NotActions
$subs = '/subscriptions/00000000-0000-0000-0000-000000000000','/subscriptions/11111111-1111-1111-1111-111111111111'
$role.AssignableScopes = $subs
New-AzRoleDefinition -Role $role
Membuat peran kustom dengan templat JSON
Templat JSON dapat digunakan sebagai definisi sumber untuk peran kustom. Contoh berikut membuat peran kustom yang memungkinkan akses baca ke penyimpanan dan sumber daya komputasi, akses ke dukungan, dan menambahkan peran tersebut ke dua langganan. Buat file baru C:\CustomRoles\customrole1.json dengan contoh berikut. Id harus diatur ke null pada pembuatan peran awal karena ID baru dihasilkan secara otomatis.
{
"Name": "Custom Role 1",
"Id": null,
"IsCustom": true,
"Description": "Allows for read access to Azure storage and compute resources and access to support",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Storage/*/read",
"Microsoft.Support/*"
],
"NotActions": [],
"AssignableScopes": [
"/subscriptions/00000000-0000-0000-0000-000000000000",
"/subscriptions/11111111-1111-1111-1111-111111111111"
]
}
Untuk menambahkan peran ke langganan, jalankan perintah PowerShell berikut ini:
New-AzRoleDefinition -InputFile "C:\CustomRoles\customrole1.json"
Memperbarui peran kustom
Mirip dengan membuat peran kustom, Anda dapat memodifikasi peran kustom yang ada menggunakan objek PSRoleDefinition atau templat JSON.
Memperbarui peran kustom dengan objek PSRoleDefinition
Untuk memodifikasi peran kustom, pertama, gunakan perintah Get-AzRoleDefinition untuk mengambil definisi peran. Kedua, buat perubahan yang diinginkan pada definisi peran. Terakhir, gunakan perintah Set-AzRoleDefinition untuk menyimpan definisi peran yang dimodifikasi.
Contoh berikut menambahkan tindakan Microsoft.Insights/diagnosticSettings/* ke peran kustom Operator Mesin Virtual .
$role = Get-AzRoleDefinition "Virtual Machine Operator"
$role.Actions.Add("Microsoft.Insights/diagnosticSettings/*")
Set-AzRoleDefinition -Role $role
PS C:\> $role = Get-AzRoleDefinition "Virtual Machine Operator"
PS C:\> $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*")
PS C:\> Set-AzRoleDefinition -Role $role
Name : Virtual Machine Operator
Id : 88888888-8888-8888-8888-888888888888
IsCustom : True
Description : Can monitor and restart virtual machines.
Actions : {Microsoft.Storage/*/read, Microsoft.Network/*/read, Microsoft.Compute/*/read,
Microsoft.Compute/virtualMachines/start/action...}
NotActions : {}
AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000,
/subscriptions/11111111-1111-1111-1111-111111111111}
Contoh berikut menambahkan langganan Azure ke ruang lingkup yang dapat ditetapkan dari peran khusus Operator Mesin Virtual .
Get-AzSubscription -SubscriptionName Production3
$role = Get-AzRoleDefinition "Virtual Machine Operator"
$role.AssignableScopes.Add("/subscriptions/22222222-2222-2222-2222-222222222222")
Set-AzRoleDefinition -Role $role
PS C:\> Get-AzSubscription -SubscriptionName Production3
Name : Production3
Id : 22222222-2222-2222-2222-222222222222
TenantId : 99999999-9999-9999-9999-999999999999
State : Enabled
PS C:\> $role = Get-AzRoleDefinition "Virtual Machine Operator"
PS C:\> $role.AssignableScopes.Add("/subscriptions/22222222-2222-2222-2222-222222222222")
PS C:\> Set-AzRoleDefinition -Role $role
Name : Virtual Machine Operator
Id : 88888888-8888-8888-8888-888888888888
IsCustom : True
Description : Can monitor and restart virtual machines.
Actions : {Microsoft.Storage/*/read, Microsoft.Network/*/read, Microsoft.Compute/*/read,
Microsoft.Compute/virtualMachines/start/action...}
NotActions : {}
AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000,
/subscriptions/11111111-1111-1111-1111-111111111111,
/subscriptions/22222222-2222-2222-2222-222222222222}
Contoh berikut menambahkan grup manajemen ke AssignableScopes pada peran kustom Operator Mesin Virtual .
Get-AzManagementGroup
$role = Get-AzRoleDefinition "Virtual Machine Operator"
$role.AssignableScopes.Add("/providers/Microsoft.Management/managementGroups/{groupId1}")
Set-AzRoleDefinition -Role $role
PS C:\> Get-AzManagementGroup
Id : /providers/Microsoft.Management/managementGroups/marketing-group
Type : /providers/Microsoft.Management/managementGroups
Name : marketing-group
TenantId : 99999999-9999-9999-9999-999999999999
DisplayName : Marketing group
PS C:\> $role = Get-AzRoleDefinition "Virtual Machine Operator"
PS C:\> $role.AssignableScopes.Add("/providers/Microsoft.Management/managementGroups/marketing-group")
PS C:\> Set-AzRoleDefinition -Role $role
Name : Virtual Machine Operator
Id : 88888888-8888-8888-8888-888888888888
IsCustom : True
Description : Can monitor and restart virtual machines.
Actions : {Microsoft.Storage/*/read, Microsoft.Network/*/read, Microsoft.Compute/*/read,
Microsoft.Compute/virtualMachines/start/action...}
NotActions : {}
AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000,
/subscriptions/11111111-1111-1111-1111-111111111111,
/subscriptions/22222222-2222-2222-2222-222222222222,
/providers/Microsoft.Management/managementGroups/marketing-group}
Memperbarui peran kustom dengan templat JSON
Dengan menggunakan templat JSON sebelumnya, Anda dapat dengan mudah memodifikasi peran kustom yang ada untuk menambahkan atau menghapus Tindakan. Perbarui templat JSON dan tambahkan tindakan baca untuk jaringan seperti yang diperlihatkan dalam contoh berikut. Definisi yang tercantum dalam templat tidak diterapkan secara kumulatif ke definisi yang ada, yang berarti bahwa peran muncul persis seperti yang Anda tentukan dalam templat. Anda juga perlu memperbarui bidang Id dengan ID peran. Jika Anda tidak yakin apa nilai ini, Anda dapat menggunakan cmdlet Get-AzRoleDefinition untuk mendapatkan informasi ini.
{
"Name": "Custom Role 1",
"Id": "acce7ded-2559-449d-bcd5-e9604e50bad1",
"IsCustom": true,
"Description": "Allows for read access to Azure storage and compute resources and access to support",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Support/*"
],
"NotActions": [],
"AssignableScopes": [
"/subscriptions/00000000-0000-0000-0000-000000000000",
"/subscriptions/11111111-1111-1111-1111-111111111111"
]
}
Untuk memperbarui peran yang sudah ada, jalankan perintah PowerShell berikut ini:
Set-AzRoleDefinition -InputFile "C:\CustomRoles\customrole1.json"
Menghapus sebuah peran kustom
Hapus penetapan peran apa pun yang menggunakan peran kustom. Untuk informasi selengkapnya, lihat Cara menemukan penetapan peran untuk menghapus peran kustom.
Gunakan perintah Remove-AzRoleDefinition untuk menghapus peran kustom.
Contoh berikut menghapus Operator Komputer Virtual peran kustom.
Get-AzRoleDefinition "Virtual Machine Operator" Get-AzRoleDefinition "Virtual Machine Operator" | Remove-AzRoleDefinitionPS C:\> Get-AzRoleDefinition "Virtual Machine Operator" Name : Virtual Machine Operator Id : 88888888-8888-8888-8888-888888888888 IsCustom : True Description : Can monitor and restart virtual machines. Actions : {Microsoft.Storage/*/read, Microsoft.Network/*/read, Microsoft.Compute/*/read, Microsoft.Compute/virtualMachines/start/action...} NotActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000, /subscriptions/11111111-1111-1111-1111-111111111111} PS C:\> Get-AzRoleDefinition "Virtual Machine Operator" | Remove-AzRoleDefinition Confirm Are you sure you want to remove role definition with name 'Virtual Machine Operator'. [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y