Buat atau perbarui peran kustom Azure menggunakan REST API

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 REST API.

Prasyarat

Anda harus menggunakan versi berikut:

  • 2015-07-01 atau yang lebih baru

Untuk informasi selengkapnya, lihat API versi REST API Azure RBAC.

Mencantumkan semua definisi peran kustom

Untuk mencantumkan semua definisi peran kustom dalam penyewa, gunakan Definisi Peran - Daftar REST API.

  • Contoh berikut mencantumkan semua definisi peran kustom dalam penyewa:

    Permintaan

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Mencantumkan semua definisi peran kustom pada cakupan

Untuk mencantumkan definisi peran kustom pada cakupan, gunakan Definisi Peran - Daftar REST API.

  1. Mulai dengan permintaan berikut:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  3. Ganti {filter} dengan tipe peran.

    Filter Deskripsi
    $filter=type+eq+'CustomRole' Filter berdasarkan jenis CustomRole

    Contoh berikut mencantumkan semua definisi peran kustom dalam langganan:

    Permintaan

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Cantumkan definisi peran kustom berdasarkan nama

Untuk mendapatkan informasi tentang definisi peran kustom dengan nama tampilannya, gunakan Definisi Peran - Dapatkan REST API.

  1. Mulai dengan permintaan berikut:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  3. Ganti {filter} dengan nama tampilan untuk peran tersebut.

    Filter Deskripsi
    $filter=roleName+eq+'{roleDisplayName}' Gunakan formulir URL yang dikodekan dari nama tampilan peran yang tepat. Contohnya, $filter=roleName+eq+'Virtual%20Machine%20Contributor'

    Contoh berikut mencantumkan definisi peran kustom bernama Billing Reader Plus dalam langganan:

    Permintaan

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName+eq+'Billing Reader Plus'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Cantumkan definisi peran kustom berdasarkan ID

Untuk mendapatkan informasi tentang definisi peran kustom dengan pengidentifikasi uniknya, gunakan Definisi Peran - Dapatkan REST API.

  1. Gunakan Definisi Peran - Daftar REST API untuk mendapatkan pengidentifikasi GUID untuk peran tersebut.

  2. Mulai dengan permintaan berikut:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  4. Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.

    Contoh berikut mencantumkan definisi peran kustom dengan pengidentifikasi 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c dalam langganan:

    Permintaan

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c?api-version=2022-04-01
    

    Respons

    {
        "properties": {
            "roleName": "Billing Reader Plus",
            "type": "CustomRole",
            "description": "Read billing data and download invoices",
            "assignableScopes": [
                "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
            ],
            "permissions": [
                {
                    "actions": [
                        "Microsoft.Authorization/*/read",
                        "Microsoft.Billing/*/read",
                        "Microsoft.Commerce/*/read",
                        "Microsoft.Consumption/*/read",
                        "Microsoft.Management/managementGroups/read",
                        "Microsoft.CostManagement/*/read",
                        "Microsoft.Billing/invoices/download/action",
                        "Microsoft.CostManagement/exports/*"
                    ],
                    "notActions": [
                        "Microsoft.CostManagement/exports/delete"
                    ],
                    "dataActions": [],
                    "notDataActions": []
                }
            ],
            "createdOn": "2021-05-22T21:57:23.5764138Z",
            "updatedOn": "2021-05-22T21:57:23.5764138Z",
            "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
            "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
        },
        "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
        "type": "Microsoft.Authorization/roleDefinitions",
        "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
    }
    

Membuat peran kustom

Untuk membuat peran kustom, gunakan Definisi Peran - Buat Atau Perbarui REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/write izin pada semua assignableScopes. Dari peran bawaan, hanya Pemilik dan Administrator Akses Pengguna yang diberikan izin ini.

  1. Tinjau daftar operasi penyedia sumber daya yang tersedia untuk membuat izin untuk peran kustom Anda.

  2. Gunakan alat GUID untuk menghasilkan pengidentifikasi unik yang akan digunakan untuk pengidentifikasi penetapan peran. Pengidentifikasi memiliki format: 00000000-0000-0000-0000-000000000000

  3. Mulai dengan permintaan dan isi berikut:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
    {
      "name": "{roleDefinitionId}",
      "properties": {
        "roleName": "",
        "description": "",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
    
            ],
            "notActions": [
    
            ]
          }
        ],
        "assignableScopes": [
          "/subscriptions/{subscriptionId1}",
          "/subscriptions/{subscriptionId2}",
          "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}",
          "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}",
          "/providers/Microsoft.Management/managementGroups/{groupId1}"
        ]
      }
    }
    
  4. Dalam URI, ganti {cakupan} dengan assignableScopes peran kustom pertama.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  5. Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.

  6. Dalam isi permintaan, ganti {roleDefinitionId} dengan pengidentifikasi GUID.

  7. Jika assignableScopes adalah grup langganan atau sumber daya, ganti instans {subscriptionId} atau {resourceGroup} dengan pengidentifikasi Anda.

  8. Jika assignableScopes adalah grup manajemen, ganti instans {groupId} dengan pengidentifikasi grup manajemen Anda.

  9. Di properti actions, tambahkan tindakan yang diizinkan peran untuk dilakukan.

  10. Di properti notActions, tambahkan tindakan yang dikecualikan dari actions yang diizinkan.

  11. Di roleName properti dan description, tentukan nama peran dan deskripsi yang unik. Untuk informasi tentang properti lain, lihatPeran kustom Azure.

    Berikut ini merupakan contoh isi permintaan:

    {
      "name": "88888888-8888-8888-8888-888888888888",
      "properties": {
        "roleName": "Virtual Machine Operator",
        "description": "Can monitor and restart virtual machines.",
        "type": "CustomRole",
        "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.Support/*"
            ],
            "notActions": []
          }
        ],
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000",
          "/providers/Microsoft.Management/managementGroups/marketing-group"
        ]
      }
    }
    

Perbarui peran kustom

Untuk membuat peran kustom, gunakan Definisi Peran - Buat Atau Perbarui REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/write izin pada semua assignableScopes, seperti Administrator Akses Pengguna.

  1. Gunakan Definisi Peran - Daftar atau Definisi Peran - Dapatkan REST API untuk mendapatkan informasi tentang peran kustom. Untuk informasi selengkapnya, lihat bagian Daftar semua definisi peran kustom sebelumnya.

  2. Mulai dengan permintaan berikut:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Dalam URI, ganti {cakupan} dengan assignableScopes peran kustom pertama.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  4. Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.

  5. Berdasarkan informasi tentang peran kustom, buat isi permintaan dengan format berikut:

    {
      "name": "{roleDefinitionId}",
      "properties": {
        "roleName": "",
        "description": "",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
    
            ],
            "notActions": [
    
            ]
          }
        ],
        "assignableScopes": [
          "/subscriptions/{subscriptionId1}",
          "/subscriptions/{subscriptionId2}",
          "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}",
          "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}",
          "/providers/Microsoft.Management/managementGroups/{groupId1}"
        ]
      }
    }
    
  6. Perbarui isi permintaan dengan perubahan yang ingin Anda buat ke peran kustom.

    Berikut ini merupakan contoh isi permintaan dengan tindakan pengaturan diagnostik baru yang telah ditambahkan:

    {
      "name": "88888888-8888-8888-8888-888888888888",
      "properties": {
        "roleName": "Virtual Machine Operator",
        "description": "Can monitor and restart virtual machines.",
        "type": "CustomRole",
        "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/*"
            ],
            "notActions": []
          }
        ],
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000",
          "/providers/Microsoft.Management/managementGroups/marketing-group"
        ]
      }
    }
    

Menghapus peran kustom

Untuk menghapus peran kustom, gunakan Definisi Peran - Hapus REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/delete izin pada semua assignableScopes. Dari peran bawaan, hanya Pemilik dan Administrator Akses Pengguna yang diberikan izin ini.

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

  2. Gunakan Definisi Peran - Daftar atau Definisi Peran - Dapatkan REST API untuk mendapatkan informasi tentang peran kustom. Untuk informasi selengkapnya, lihat bagian Daftar semua definisi peran kustom sebelumnya.

  3. Mulai dengan permintaan berikut:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  4. Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda hapus peran kustomnya.

    Cakupan Jenis
    subscriptions/{subscriptionId1} Langganan
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Grup sumber daya
    providers/Microsoft.Management/managementGroups/{groupId1} Grup manajemen
  5. Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.

Langkah berikutnya