Memahami cakupan untuk Azure RBAC

Cakupan adalah sekumpulan sumber daya tempat akses tersebut berlaku. Ketika Anda menetapkan peran, penting untuk memahami cakupan sehingga Anda dapat memberikan kepala keamanan hanya akses yang benar-benar dibutuhkan. Dengan membatasi peran dan cakupan, Anda membatasi sumber daya yang berisiko jika keamanan utama disusup.

Tingkat cakupan

Di Azure, Anda dapat menentukan sebuah cakupan dalam empat tingkat: grup manajemen, langganan,grup sumber daya, dan sumber daya. Cakupan terstruktur dalam hubungan orangtua-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. Tingkat yang lebih rendah mewarisi izin peran dari tingkat yang lebih tinggi.

Scope for a role assignment

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

Management group and subscription hierarchy

Format cakupan

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

Cakupan terdiri dari 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 dari langganan yang akan digunakan (GUID).
  • {resourcesGroupName} adalah nama grup sumber daya yang berisi.
  • {providerName} adalah nama penyedia sumber daya yang menangani sumber daya, kemudian {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 merupakan satu 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
            /{managmentGroupName}

Contoh cakupan

Cakupan 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 usaha. Berikut adalah beberapa cara agar Anda dapat menentukan cakupan untuk sumber daya.

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

    Resource IDs for a storage account in Azure portal

  • Cara lain adalah dengan menggunakan portal Microsoft Azure untuk menetapkan peran sementara di cakupan sumber daya lalu menggunakan Azure PowerShell atau Azure CLI untuk mencantumkan penetapan peran. Di dalam output, cakupan akan terdaftar 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

Tugas peran adalah tipe khusus di Azure Resource Manager yang disebut sumber daya ekstensi. Sumber daya ekstensi adalah sumber daya yang ditambahkan ke kemampuan sumber daya lain. Kemampuan sumber daya selalu ada sebagai perpanjangan (seperti anak kecil) dari sumber daya lain. Misalnya, tugas peran di cakupan langganan adalah sumber daya ekstensi langganan. Nama tugas peran selalu merupakan nama sumber daya yang Anda perpanjang plus /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Saat menetapkan peran menggunakan templat Azure Resource Manager (templat ARM), Anda biasanya tidak perlu memberikan cakupan. Alasannya adalah bahwa bidang cakupan selalu berakhir menjadi ID sumber daya yang Anda perpanjang. Cakupan dapat ditentukan dari ID penetapan peran itu sendiri. Tabel berikut menunjukkan contoh ID penetapan peran dan cakupan yang sesuai:

ID penetapan peran Cakupan
/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 lingkup 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 kapabilitas sumber daya lainnya.

Langkah berikutnya