Peran kustom Azure

Jika peran bawaan Microsoft Azure tidak memenuhi kebutuhan spesifik organisasi, Anda dapat membuat peran kustom sendiri. Sama seperti peran bawaan, Anda dapat menetapkan peran kustom kepada pengguna, grup, dan perwakilan layanan pada cakupan grup manajemen, langganan, dan grup sumber daya.

Peran kustom dapat dibagikan antara langganan yang mempercayai penyewa Microsoft Entra yang sama. Ada batas 5.000 peran kustom per penyewa. (Untuk Microsoft Azure yang dioperasikan oleh 21Vianet, batasnya adalah 2.000 peran kustom.) Peran kustom dapat dibuat menggunakan portal Azure, Azure PowerShell, Azure CLI, atau REST API.

Langkah-langkah untuk membuat peran kustom

Berikut langkah-langkah dasar untuk membuat peran kustom.

  1. Tentukan izin yang Anda butuhkan.

    Saat membuat peran kustom, Anda perlu mengetahui tindakan yang tersedia untuk menentukan izin Anda. Biasanya, Anda mulai dengan peran bawaan yang ada lalu memodifikasinya sesuai kebutuhan Anda. Anda akan menambahkan tindakan ke properti Actions atau NotActions dari definisi peran. Jika Anda memiliki tindakan data, Anda akan menambahkannya ke properti DataActions atau NotDataActions.

    Untuk informasi selengkapnya, lihat bagian berikutnya Cara menentukan izin yang Anda butuhkan.

  2. Tentukan bagaimana Anda ingin membuat peran kustom.

    Anda dapat membuat peran kustom menggunakan portal Azure, Azure PowerShell, Azure CLI, atau REST API.

  3. Buat peran kustom.

    Cara termudah adalah menggunakan portal Azure. Untuk mempelajari langkah-langkah membuat peran kustom menggunakan portal Azure, lihat Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.

  4. Uji peran kustom.

    Setelah Anda memiliki peran kustom, Anda harus mengujinya untuk memverifikasi bahwa peran kustom berfungsi seperti yang Anda harapkan. Jika nanti Anda perlu melakukan penyesuaian, Anda dapat memperbarui peran kustom.

Cara menentukan izin yang Anda butuhkan

Azure memiliki ribuan izin untuk disertakan dalam peran kustom Anda. Berikut beberapa metode yang dapat Anda gunakan untuk menentukan izin yang ingin ditambahkan ke peran kustom Anda:

  • Lihatlah peran bawaan yang ada.

    Anda mungkin ingin mengubah peran yang sudah ada atau menggabungkan izin yang digunakan dalam beberapa peran.

  • Cantumkan layanan Azure yang ingin Anda beri akses.

  • Tentukan penyedia sumber daya yang memetakan ke layanan Azure.

    Layanan Azure mengekspos fungsionalitas dan izin mereka melalui penyedia sumber daya. Misalnya, penyedia sumber daya Microsoft.Compute menyediakan sumber daya mesin virtual dan penyedia sumber daya Microsoft.Billing menyediakan sumber daya langganan dan tagihan. Penyedia sumber daya dapat membantu Anda mempersempit dan menentukan izin yang Anda butuhkan untuk peran kustom Anda.

    Saat Anda membuat peran kustom menggunakan portal Azure, Anda juga dapat menentukan penyedia sumber daya dengan mencari kata kunci. Fungsionalitas pencarian ini dijelaskan dalam Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.

    Add permissions pane with resource provider

  • Cari izin yang tersedia untuk menemukan izin yang ingin Anda sertakan.

    Saat Anda membuat peran kustom menggunakan portal Azure, Anda bisa mencari izin berdasarkan kata kunci. Misalnya, Anda dapat mencari izin mesin virtual atau penagihan. Anda juga dapat mengunduh semua izin sebagai file CSV lalu mencari file ini. Fungsionalitas pencarian ini dijelaskan dalam Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.

    Add permissions list

Contoh peran kustom

Berikut gambaran peran kustom yang ditampilkan menggunakan Azure PowerShell dalam format JSON. Peran kustom ini dapat digunakan untuk memantau dan memulai ulang mesin virtual.

{
  "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",
    "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/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

Berikut gambaran peran kustom yang sama seperti yang ditampilkan menggunakan Azure CLI.

[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId1}",
      "/subscriptions/{subscriptionId2}",
      "/providers/Microsoft.Management/managementGroups/{groupId1}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
    "name": "88888888-8888-8888-8888-888888888888",
    "permissions": [
      {
        "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/*"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "Virtual Machine Operator",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

Properti peran kustom

Tabel berikut ini menjelaskan arti properti peran kustom.

Properti Wajib Tipe Deskripsi
Name
roleName
Ya String Nama tampilan peran kustom. Meskipun definisi peran adalah grup manajemen atau sumber daya tingkat langganan, definisi peran dapat digunakan dalam beberapa langganan yang berbagi penyewa Microsoft Entra yang sama. Nama tampilan ini harus unik pada cakupan penyewa Microsoft Entra. Dapat mencakup huruf, angka, spasi, dan karakter khusus. Jumlah karakter maksimum adalah 512.
Id
name
Ya String ID unik dari peran kustom. Untuk Azure PowerShell dan Azure CLI, ID ini secara otomatis dihasilkan saat Anda membuat peran baru.
IsCustom
roleType
Ya String Menunjukkan apakah ini adalah peran kustom. Atur ke true atau CustomRole untuk peran kustom. Atur ke false atau BuiltInRole untuk peran bawaan.
Description
description
Ya String Deskripsi peran kustom. Dapat mencakup huruf, angka, spasi, dan karakter khusus. Jumlah maksimum karakter adalah 2048.
Actions
actions
Ya Tali[] Array untai (karakter) yang menentukan tindakan sarana kontrol yang perannya mengizinkan untuk dilakukan. Untuk informasi selengkapnya, lihat Actions.
NotActions
notActions
Tidak Tali[] Array untai (karakter) yang menentukan tindakan sarana kontrol yang dikecualikan dari Actions yang diizinkan. Untuk informasi selengkapnya, lihat NotActions.
DataActions
dataActions
Tidak Tali[] Array untai (karakter) yang menentukan tindakan data plane yang diizinkan peran untuk dilakukan pada data Anda di dalam objek itu. Jika Anda membuat peran kustom dengan DataActions, peran tersebut tidak dapat ditetapkan di cakupan grup manajemen. Untuk informasi selengkapnya, lihat DataActions.
NotDataActions
notDataActions
Tidak Tali[] Array untai (karakter) yang menentukan tindakan data plane yang dikecualikan dari DataActions yang diizinkan. Untuk informasi selengkapnya, lihat NotDataActions.
AssignableScopes
assignableScopes
Ya Tali[] Array untai (karakter) yang menentukan cakupan bahwa peran kustom dapat ditetapkan. Jumlah AssignableScopes maksimum adalah 2.000. Untuk informasi selengkapnya, lihat AssignableScopes.

String izin tidak peka huruf besar-kecil. Saat Anda membuat peran kustom, konvensinya adalah mencocokkan kasus yang Anda lihat untuk izin di operasi penyedia sumber Azure.

Izin wildcard

Actions, NotActions, DataActions, dan NotDataActions mendukung wildcard (*) untuk menentukan izin. Wildcard (*) memperluas izin untuk semua yang cocok dengan untai tindakan yang Anda berikan. Misalnya, Anda ingin menambahkan semua izin yang terkait dengan Azure Cost Management dan ekspor. Anda bisa menambahkan semua untai (karakter) tindakan ini:

Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action

Alih-alih menambahkan semua untai (karakter) ini, Anda bisa menambahkan untai (karakter) wildcard. Misalnya, untai (karakter) wildcard berikut setara dengan lima untai (karakter) sebelumnya. Untai wildcard ini juga akan mencakup izin ekspor di masa mendatang yang mungkin ditambahkan.

Microsoft.CostManagement/exports/*

Catatan

Disarankan agar Anda menentukan Actions dan DataActions secara eksplisit alih-alih menggunakan karakter kartubebas (*). Akses dan izin tambahan yang diberikan melalui masa mendatang Actions atau DataActions mungkin perilaku yang tidak diinginkan menggunakan kartubebas.

Siapa saja yang bisa membuat, menghapus, memperbarui, atau menampilkan peran kustom

Sama seperti peran bawaan, properti AssignableScopes menentukan cakupan yang perannya tersedia untuk penugasan. Properti AssignableScopes untuk peran kustom juga mengontrol siapa saja yang bisa membuat, menghapus, memperbarui, atau melihat peran kustom.

Tugas Tindakan Deskripsi
Buat/hapus peran kustom Microsoft.Authorization/ roleDefinitions/write Pengguna yang diberikan tindakan ini pada semua AssignableScopes peran kustom dapat membuat (atau menghapus) peran kustom untuk digunakan dalam lingkup tersebut. Misalnya, Pemilik dan Administrator Akses Pengguna grup manajemen, langganan, dan grup sumber daya.
Perbarui peran kustom Microsoft.Authorization/ roleDefinitions/write Pengguna yang diberikan tindakan ini pada semua AssignableScopes peran kustom dapat memperbarui peran kustom dalam lingkup tersebut. Misalnya, Pemilik dan Administrator Akses Pengguna grup manajemen, langganan, dan grup sumber daya.
Tampilkan peran kustom Microsoft.Authorization/ roleDefinitions/read Pengguna yang diberikan tindakan ini pada lingkup dapat melihat peran kustom yang tersedia untuk penugasan pada lingkup tersebut. Semua peran bawaan memungkinkan peran kustom tersedia untuk penugasan.

Menemukan penetapan peran untuk menghapus peran kustom

Sebelum dapat menghapus peran kustom, Anda harus menghapus penetapan peran apa pun yang menggunakan peran kustom. Jika Anda mencoba menghapus peran kustom dengan penetapan peran, Anda mendapatkan pesan: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments).

Berikut adalah langkah-langkah untuk membantu menemukan penetapan peran sebelum menghapus peran kustom:

Batasan peran kustom

Daftar berikut menjelaskan batasan untuk peran kustom.

  • Setiap penyewa dapat memiliki hingga 5000 peran kustom.
  • Microsoft Azure yang dioperasikan oleh 21Vianet dapat memiliki hingga 2000 peran kustom untuk setiap penyewa.
  • Anda tidak dapat mengatur AssignableScopes ke lingkup root ("/").
  • Anda tidak dapat menggunakan wildcard (*) di AssignableScopes. Pembatasan wildcard ini membantu memastikan pengguna tidak dapat berpotensi mendapatkan akses ke lingkup dengan memperbarui definisi peran.
  • Anda hanya dapat memiliki satu wildcard dalam untai (karakter) tindakan.
  • Anda hanya dapat menentukan satu kelompok pengelolaan dalam AssignableScopes peran kustom.
  • Azure Resource Manager tidak memvalidasi keberadaan grup manajemen dalam definisi AssignableScopesperan .
  • Peran kustom dengan DataActions tidak dapat ditetapkan di cakupan grup manajemen.
  • Anda dapat membuat peran kustom dengan DataActions dan satu grup manajemen di AssignableScopes. Anda tidak dapat menetapkan peran kustom di cakupan grup manajemen itu sendiri; namun, Anda dapat menetapkan peran kustom pada cakupan langganan dalam grup manajemen. Ini dapat membantu jika Anda perlu membuat satu peran kustom dengan DataActions yang perlu ditetapkan dalam beberapa langganan, alih-alih membuat peran kustom terpisah untuk setiap langganan.

Untuk informasi selengkapnya tentang grup manajemen, lihat Apa itu grup manajemen Azure?.

Format input dan output

Untuk membuat peran kustom menggunakan baris perintah, biasanya Anda menggunakan JSON untuk menentukan properti yang Anda inginkan pada peran kustom. Tergantung pada alat yang Anda gunakan, format input dan output akan terlihat sedikit berbeda. Bagian ini mencantumkan format input dan output tergantung pada alatnya.

Azure PowerShell

Untuk membuat peran kustom menggunakan Azure PowerShell, Anda harus menyediakan input berikut.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Untuk membuat peran kustom menggunakan Azure PowerShell, Anda harus menyediakan input berikut. Perhatikan bahwa properti Id telah ditambahkan.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan Azure PowerShell dan perintah ConvertTo-Json.

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure CLI

Untuk membuat atau memperbarui peran kustom menggunakan Azure CLI, Anda harus menyediakan input berikut. Format ini sama dengan format saat Anda membuat peran kustom menggunakan Azure PowerShell.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan Azure CLI.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

REST API

Untuk membuat atau memperbarui peran kustom menggunakan REST API, Anda harus menyediakan input berikut. Format ini sama dengan format yang dihasilkan saat Anda membuat peran kustom menggunakan portal Azure.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan REST API.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Langkah berikutnya