Membuat atau memperbarui peran kustom Azure menggunakan Azure CLI

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 CLI.

Untuk tutorial langkah demi langkah tentang cara membuat peran kustom, lihat Tutorial: Membuat peran kustom Azure menggunakan Azure CLI.

Prasyarat

Untuk membuat peran kustom, Anda perlu:

Mencantumkan peran kustom

Untuk mencantumkan peran kustom yang tersedia untuk penetapan, gunakan az role definition list. Contoh berikut mencantumkan semua peran kustom dalam langganan saat ini.

az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
[
  {
    "roleName": "My Management Contributor",
    "type": "CustomRole"
  },
  {
    "roleName": "My Service Reader Role",
    "type": "CustomRole"
  },
  {
    "roleName": "Virtual Machine Operator",
    "type": "CustomRole"
  }
]

Mencantumkan definisi peran kustom

Untuk mencantumkan definisi peran kustom, gunakan az role definition list. Perintah ini adalah perintah yang sama dengan yang akan Anda gunakan untuk peran bawaan.

az role definition list --name {roleName}

Contoh berikut mencantumkan definisi peran Operator Komputer Virtual:

az role definition list --name "Virtual Machine Operator"
[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
    "name": "00000000-0000-0000-0000-000000000000",
    "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"
  }
]

Contoh berikut hanya mencantumkan tindakan dari peran Operator Komputer Virtual:

az role definition list --name "Virtual Machine Operator" --output json --query '[].permissions[0].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 az role definition create. Definisi peran dapat berupa deskripsi JSON atau jalur ke file yang berisi deskripsi JSON.

az role definition create --role-definition {roleDefinition}

Contoh berikut membuat peran kustom bernama Operator Komputer Virtual. Peran khusus ini memberikan akses ke semua tindakan baca dari penyedia sumber daya Microsoft.Compute, Microsoft.Storage, dan Microsoft.Network dan memberikan akses untuk memulai, memulai ulang, dan memantau mesin virtual. Peran kustom dapat digunakan dalam dua langganan. Contoh ini menggunakan file JSON sebagai input.

vmoperator.json

{
  "Name": "Virtual Machine Operator",
  "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": [

  ],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}"
  ]
}
az role definition create --role-definition ~/roles/vmoperator.json

Perbarui peran kustom

Untuk memperbarui peran kustom, pertama gunakan az role definition list untuk mengambil definisi peran. Kedua, buat perubahan yang diinginkan pada definisi peran. Terakhir, gunakan az role definition update untuk menyimpan definisi peran yang telah diperbarui.

az role definition update --role-definition {roleDefinition}

Contoh berikut menambahkan operasi Microsoft.Insights/diagnosticSettings/ ke Actions dan menambahkan grup manajemen ke AssignableScopes untuk peran kustom Operator Mesin Virtual.

vmoperator.json

{
  "Name": "Virtual Machine Operator",
  "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": [

  ],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/marketing-group"
  ]
}
az role definition update --role-definition ~/roles/vmoperator.json

Menghapus peran kustom

  1. Hapus penetapan peran apa pun yang menggunakan peran kustom. Untuk informasi selengkapnya, lihat Menemukan penetapan peran untuk menghapus peran kustom.

  2. Gunakan az role definition delete untuk menghapus peran kustom. Untuk menentukan peran yang akan dihapus, gunakan nama peran atau ID peran. Untuk menentukan ID peran, gunakan az role definition list.

    az role definition delete --name {roleNameOrId}
    

    Contoh berikut menghapus peran kustom Operator Komputer Virtual.

    az role definition delete --name "Virtual Machine Operator"
    

Langkah berikutnya