Bagikan melalui


Memahami cakupan untuk Azure RBAC

Cakupan adalah sekumpulan sumber daya tempat akses berlaku. Saat Anda menetapkan peran, penting untuk memahami cakupan sehingga Anda dapat memberikan prinsipal keamanan hanya akses yang benar-benar dibutuhkan. Dengan membatasi cakupan, Anda membatasi sumber daya apa yang berisiko jika prinsip keamanan pernah disusupi.

Tingkat cakupan

Di Azure, Anda dapat menentukan sebuah cakupan dalam empat tingkat: grup manajemen, langganan,grup sumber daya, dan sumber daya. Hierarki cakupan disusun dalam hubungan orang tua-anak. Setiap tingkat hierarki membuat cakupan lebih spesifik. Anda dapat menetapkan peran di salah satu tingkat cakupan ini. Tingkat yang Anda pilih menentukan seberapa luas peran diterapkan. Tingkatan yang lebih rendah mewarisi izin peran dari tingkatan yang lebih tinggi.

Diagram cakupan untuk penetapan peran.

Grup manajemen adalah tingkat cakupan di atas langganan, tetapi grup manajemen mendukung hierarki yang lebih kompleks. Diagram berikut menunjukkan contoh hierarki grup manajemen dan langganan yang bisa Anda tentukan. Untuk informasi selengkapnya tentang grup manajemen, lihat Apa itu grup manajemen Azure?.

Diagram grup manajemen dan hierarki langganan.

Format Jangkauan

Jika Menetapkan peran menggunakan baris perintah, Anda harus menentukan cakupannya. Untuk alat baris perintah, ruang lingkup adalah string yang berpotensi panjang yang mengidentifikasi ruang lingkup yang tepat dari penetapan peran. Di portal Microsoft Azure, cakupan ini biasanya terdaftar sebagai ID sumber daya.

Cakupan terdiri atas serangkaian pengidentifikasi yang dipisahkan oleh karakter garis miring (/). Anda dapat menganggap string ini sebagai mengekspresikan hierarki berikut, di mana teks tanpa tempat penampung ({}) adalah pengidentifikasi tetap:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} adalah ID langganan yang akan digunakan (GUID).
  • {resourceGroupName} adalah nama grup sumber daya yang berisi.
  • {providerName} adalah nama penyedia sumber daya yang menangani sumber daya, lalu {resourceType} dan {resourceSubType*} mengidentifikasi tingkat lebih lanjut dalam penyedia sumber daya tersebut.
  • {resourceName} adalah bagian terakhir dari string yang mengidentifikasi sumber daya tertentu.

Grup manajemen adalah tingkat di atas langganan dan memiliki cakupan terluas (paling tidak spesifik). Penetapan peran pada tingkat ini berlaku untuk langganan dalam grup manajemen. Cakupan untuk grup manajemen memiliki format berikut:

/providers
    /Microsoft.Management
        /managementGroups
            /{managementGroupName}

Contoh cakupan

Ruang Lingkup Contoh
Grup manajemen /providers/Microsoft.Management/managementGroups/marketing-group
Langganan /subscriptions/00000000-0000-0000-0000-000000000000
Grup sumber daya /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Sumber daya /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345

Cara menentukan cakupan untuk sumber daya

Cukup mudah untuk menentukan cakupan untuk grup manajemen, langganan, atau grup sumber daya. Anda hanya perlu mengetahui nama dan ID langganan. Namun, menentukan cakupan untuk sumber daya membutuhkan sedikit lebih banyak pekerjaan. Berikut adalah beberapa cara untuk menentukan cakupan sumber daya.

  • Di portal Microsoft Azure, buka sumber daya lalu lihat propertinya. Sumber daya harus mencantumkan ID Sumber Daya tempat Anda dapat menentukan cakupan. Misalnya, berikut adalah ID sumber daya untuk akun penyimpanan.

    Cuplikan layar ID sumber daya untuk akun penyimpanan di portal Microsoft Azure.

  • Cara lain adalah menggunakan portal Microsoft Azure untuk menetapkan peran sementara di cakupan sumber daya lalu menggunakan Azure PowerShell atau Azure CLI untuk mencantumkan penetapan peran. Dalam output, cakupan akan dicantumkan sebagai properti.

    RoleAssignmentId   : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro
                         viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId>
    Scope              : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
    DisplayName        : User
    SignInName         : user@contoso.com
    RoleDefinitionName : Storage Blob Data Reader
    RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
    ObjectId           : <principalId>
    ObjectType         : User
    CanDelegate        : False
    Description        :
    ConditionVersion   :
    Condition          :
    
    {
        "canDelegate": null,
        "condition": null,
        "conditionVersion": null,
        "description": null,
        "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
        "name": "{roleAssignmentId}",
        "principalId": "{principalId}",
        "principalName": "user@contoso.com",
        "principalType": "User",
        "resourceGroup": "test-rg",
        "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
        "roleDefinitionName": "Storage Blob Data Reader",
        "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01",
        "type": "Microsoft.Authorization/roleAssignments"
      }
    

Cakupan dan templat ARM

Penetapan peran adalah jenis khusus di Azure Resource Manager yang disebut sumber daya ekstensi. Sumber daya ekstensi adalah sumber daya yang ditambahkan ke kemampuan sumber daya lain. Mereka selalu ada sebagai ekstensi (seperti anak) dari sumber daya lain. Misalnya, penetapan peran dalam lingkup langganan adalah sumber daya ekstensi dari langganan tersebut. Nama penetapan peran selalu merupakan nama sumber daya yang Anda perluas ditambah /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Saat menetapkan peran menggunakan templat Azure Resource Manager (templat ARM), Anda biasanya tidak perlu menyediakan cakupan. Alasannya adalah bahwa bidang cakupan selalu menjadi ID sumber daya yang Anda perluas. Cakupan dapat ditentukan dari ID penugasan peran itu sendiri. Tabel berikut ini memperlihatkan contoh ID penetapan peran dan cakupan yang sesuai:

ID penetapan peran Ruang Lingkup
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg

Untuk informasi selengkapnya tentang cakupan dan templat ARM, lihat Menetapkan peran Azure menggunakan templat Azure Resource Manager. Untuk daftar lengkap jenis sumber daya ekstensi, lihat Jenis sumber daya yang memperluas kemampuan sumber daya lain.

Langkah berikutnya