Membuat atau memperbarui peran kustom Azure menggunakan templat ARM
Jika Azure built-in roles tidak memenuhi kebutuhan spesifik organisasi, Anda dapat membuat peran kustom sendiri. Artikel ini menjelaskan cara membuat atau memperbarui peran kustom menggunakan templat Azure Resource Manager (templat ARM).
Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menjelaskan penyebaran yang Dimaksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran.
Untuk membuat peran kustom, Anda menentukan nama peran, izin, dan tempat peran dapat digunakan. Dalam artikel ini, Anda membuat peran bernama Custom Role - RG Reader dengan izin sumber daya yang dapat ditetapkan pada lingkup langganan atau yang lebih rendah.
Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat akan terbuka di portal Microsoft Azure.
Prasyarat
Untuk membuat peran kustom, Anda harus memiliki:
- Izin untuk membuat peran kustom, seperti Administrator Akses Pengguna.
Anda harus menggunakan versi berikut:
2018-07-01
atau yang lebih baru
Untuk informasi selengkapnya, lihat API versi REST API Azure RBAC.
Meninjau templat
Templat yang digunakan dalam artikel ini berasal dari Templat Azure Quickstart. Template memiliki empat parameter dan bagian sumber daya. Empat parameter tersebut adalah:
- Array dari tindakan dengan nilai default
["Microsoft.Resources/subscriptions/resourceGroups/read"]
. - Array dari
notActions
dengan nilai default kosong. - Nama peran dengan nilai default
Custom Role - RG Reader
. - Deskripsi peran dengan nilai default dari
Subscription Level Deployment of a Role Definition
.
Lingkup di mana peran kustom ini dapat ditetapkan diatur ke langganan saat ini.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.25.53.49325",
"templateHash": "16704138909949665309"
}
},
"parameters": {
"actions": {
"type": "array",
"defaultValue": [
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"metadata": {
"description": "Array of actions for the roleDefinition"
}
},
"notActions": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "Array of notActions for the roleDefinition"
}
},
"roleName": {
"type": "string",
"defaultValue": "Custom Role - RG Reader",
"metadata": {
"description": "Friendly name of the role definition"
}
},
"roleDescription": {
"type": "string",
"defaultValue": "Subscription Level Deployment of a Role Definition",
"metadata": {
"description": "Detailed description of the role definition"
}
}
},
"variables": {
"roleDefName": "[guid(parameters('roleName'))]"
},
"resources": [
{
"type": "Microsoft.Authorization/roleDefinitions",
"apiVersion": "2022-04-01",
"name": "[variables('roleDefName')]",
"properties": {
"roleName": "[parameters('roleName')]",
"description": "[parameters('roleDescription')]",
"type": "customRole",
"permissions": [
{
"actions": "[parameters('actions')]",
"notActions": "[parameters('notActions')]"
}
],
"assignableScopes": [
"[subscription().id]"
]
}
}
]
}
Sumber daya yang ditentukan di templat adalah:
Menyebarkan templat
Ikuti langkah-langkah ini untuk menggunakan templat sebelumnya.
Masuk ke portal Azure.
Buka Azure Cloud Shell untuk PowerShell.
Salin dan tempel skrip berikut ke Cloud Shell.
$location = Read-Host -Prompt "Enter a location (i.e. centralus)" [string[]]$actions = Read-Host -Prompt "Enter actions as a comma-separated list (i.e. action1,action2)" $actions = $actions.Split(',') $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/subscription-deployments/create-role-def/azuredeploy.json" New-AzDeployment -Location $location -TemplateUri $templateUri -actions $actions
Masukkan lokasi untuk penyebaran seperti
centralus
.Masukkan daftar tindakan untuk peran kustom sebagai daftar yang dipisahkan koma seperti
Microsoft.Resources/resources/read,Microsoft.Resources/subscriptions/resourceGroups/read
.Jika perlu, tekan Enter untuk menjalankan
New-AzDeployment
perintah.Perintah New-AzDeployment menggunakan templat untuk membuat peran kustom.
Anda akan melihat output yang mirip dengan hal berikut:
PS> New-AzDeployment -Location $location -TemplateUri $templateUri -actions $actions Id : /subscriptions/{subscriptionId}/providers/Microsoft.Resources/deployments/azuredeploy DeploymentName : azuredeploy Location : centralus ProvisioningState : Succeeded Timestamp : 6/25/2020 8:08:32 PM Mode : Incremental TemplateLink : Uri : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/subscription-deployments/create-role-def/azuredeploy.json ContentVersion : 1.0.0.0 Parameters : Name Type Value ================= ========================= ========== actions Array [ "Microsoft.Resources/resources/read", "Microsoft.Resources/subscriptions/resourceGroups/read" ] notActions Array [] roleName String Custom Role - RG Reader roleDescription String Subscription Level Deployment of a Role Definition Outputs : DeploymentDebugLogLevel :
Meninjau sumber daya yang disebarkan
Ikuti langkah-langkah ini untuk memverifikasi bahwa peran kustom dibuat.
Jalankan perintah Get-AzRoleDefinition untuk mencantumkan peran kustom.
Get-AzRoleDefinition "Custom Role - RG Reader" | ConvertTo-Json
Anda akan melihat output yang mirip dengan hal berikut:
{ "Name": "Custom Role - RG Reader", "Id": "11111111-1111-1111-1111-111111111111", "IsCustom": true, "Description": "Subscription Level Deployment of a Role Definition", "Actions": [ "Microsoft.Resources/resources/read", "Microsoft.Resources/subscriptions/resourceGroups/read" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/{subscriptionId}" ] }
Di portal Azure, buka langganan Anda.
Di menu sebelah kiri, pilih Kontrol akses (IAM).
Pilih tab Peran.
Atur daftar Tipe ke CustomRole.
Verifikasi bahwa peran dari Peran Kustom - Pembaca RG dicantumkan.
Perbarui peran kustom
Mirip dengan membuat peran kustom, Anda dapat memperbarui peran kustom yang ada dengan menggunakan templat. Untuk memperbarui peran kustom, Anda harus menentukan peran yang ingin Anda perbarui.
Berikut adalah perubahan yang perlu Anda lakukan pada templat Quickstart sebelumnya untuk memperbarui peran kustom.
Sertakan ID peran sebagai parameter.
... "roleDefName": { "type": "string", "metadata": { "description": "ID of the role definition" } ...
Sertakan parameter ID peran dalam definisi peran.
... "resources": [ { "type": "Microsoft.Authorization/roleDefinitions", "apiVersion": "2022-04-01", "name": "[parameters('roleDefName')]", "properties": { ...
Berikut ini contoh cara menggunakan templat.
$location = Read-Host -Prompt "Enter a location (i.e. centralus)"
[string[]]$actions = Read-Host -Prompt "Enter actions as a comma-separated list (i.e. action1,action2)"
$actions = $actions.Split(',')
$roleDefName = Read-Host -Prompt "Enter the role ID to update"
$templateFile = "rg-reader-update.json"
New-AzDeployment -Location $location -TemplateFile $templateFile -actions $actions -roleDefName $roleDefName
Membersihkan sumber daya
Untuk menghapus peran kustom, ikuti langkah-langkah ini.
Jalankan perintah berikut untuk menghapus peran kustom.
Get-AzRoleDefinition -Name "Custom Role - RG Reader" | Remove-AzRoleDefinition
Masukkan Y untuk mengonfirmasi bahwa Anda ingin menghapus peran kustom.