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 penugasan, 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"
  }
]

Daftar definisi peran khusus

Untuk mencantumkan definisi peran kustom, gunakan daftar definisi peran az. 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 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 buat definisi peran az. 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 kustom ini menetapkan akses ke semua tindakan baca penyedia sumber daya Microsoft.Compute, Microsoft.Storage, dan Microsoft.Network dan menetapkan akses untuk memulai, memulai ulang, dan memantau komputer virtual. Peran kustom ini 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

Memperbarui peran kustom

Untuk memperbarui peran kustom, pertama-tama 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 diperbarui.

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

Contoh berikut menambahkan tindakan Microsoft.Insights/diagnosticSettings/ ke Actions dan menambahkan grup manajemen ke AssignableScopes untuk peran kustom Operator Komputer 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 sebuah peran kustom

  1. Hapus penetapan peran apa pun yang menggunakan peran kustom. Untuk informasi selengkapnya, lihat Cara 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 daftar definisi peran az.

    az role definition delete --name {roleNameOrId}
    

    Contoh berikut menghapus peran kustom Operator Komputer Virtual .

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

Langkah berikutnya