Apa saja peran kustom di Azure?

Selesai

Terkadang, peran bawaan tidak memberikan tingkat akses yang tepat yang Anda butuhkan. Peran kustom memungkinkan Anda menentukan peran yang memenuhi kebutuhan spesifik organisasi Anda. Anda dapat menetapkan peran kustom Azure yang Anda buat untuk pengguna, grup, dan perwakilan layanan pada cakupan langganan, grup sumber daya, atau sumber daya.

Di unit ini, Anda akan mempelajari tentang peran kustom dalam kontrol akses berbasis peran (RBAC) Azure.

Peran Microsoft Entra dan Azure

Peran Microsoft Entra dan peran Azure sering kali bingung saat Anda pertama kali bekerja dengan Azure. Peran Microsoft Entra menyediakan mekanisme untuk mengelola izin ke sumber daya Microsoft Entra, seperti akun pengguna dan kata sandi. Peran Azure menyediakan banyak kemampuan untuk mengelola sumber daya Azure seperti komputer virtual (VM) pada tingkat terperinci.

Diagram that shows relationship of Azure roles and Microsoft Entra roles.

Tabel berikut ini memperlihatkan perbedaan halus antara cara menyiapkan dan mengelola keduanya:

Peran Azure Peran Microsoft Entra
Mengelola akses ke sumber daya Azure seperti VM, penyimpanan, jaringan, dan lainnya Mengelola akses ke sumber daya Microsoft Entra seperti akun pengguna dan kata sandi
Beberapa tingkat lingkup (grup manajemen, langganan, grup sumber daya, sumber daya) Cakupan hanya pada tingkat penyewa
Informasi peran dapat diakses melalui portal Azure, Azure CLI, Azure PowerShell, templat Azure Resource Manager, REST API Informasi peran dapat diakses di portal admin Azure, pusat admin Microsoft 365, Microsoft Graph, Microsoft Graph PowerShell

Untuk skenario kami, kami memerlukan peran kustom untuk mengelola Azure VM di cakupan langganan, jadi kita perlu menggunakan peran kustom di Azure RBAC.

Penugasan dan ruang lingkup peran kustom

Pengguna dengan peran Administrator Akses Pengguna atau Pemilik dapat membuat atau menetapkan peran kustom di Azure RBAC.

Anda dapat menetapkan peran kustom untuk:

Prinsip keamanan Ringkasan
Pengguna Individu yang memiliki profil di ID Microsoft Entra
Grup Sekumpulan pengguna yang dibuat di ID Microsoft Entra
Perwakilan layanan Identitas keamanan yang digunakan oleh aplikasi atau layanan untuk mengakses sumber daya Azure tertentu
Identitas terkelola Identitas di ID Microsoft Entra yang dikelola secara otomatis oleh Azure

Anda dapat mengatur tugas dan izin terkait ke tingkat yang berbeda dalam Azure. Cakupan yang berbeda adalah:

  • Langganan
  • Grup sumber daya
  • Sumber daya individual

Diagram that shows the scopes for role assignment and their relationship to each other.

Definisi dan struktur peran

Definisi peran kustom dipecah menjadi kumpulan izin yang berbeda. Setiap definisi menguraikan operasi yang diizinkan, seperti membaca, menulis, dan menghapus. Definisi dibentuk menggunakan struktur ini:

{
  "Name": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}"
  ]
}

Contoh berikut menunjukkan definisi peran untuk peran Kontributor :

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action",
    "Microsoft.Blueprint/blueprintAssignments/write",
    "Microsoft.Blueprint/blueprintAssignments/delete"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Setiap definisi peran dinyatakan menggunakan format berikut:

{Company}.{ProviderName}/{resourceType}/{action}

Bagian tindakan biasanya merupakan salah satu tindakan berikut:

  • *
  • baca
  • tulis
  • tindakan
  • hapus

Menentukan peran kustom untuk mengelola VM

Untuk membantu Anda mengidentifikasi izin apa yang disertakan dalam definisi peran, gunakan daftar operasi penyedia sumber daya Azure Resource Manager dan lihat peran Azure bawaan yang memiliki izin yang mirip dengan apa yang Anda butuhkan.

Meninjau peran bawaan

Untuk skenario kami, peran bawaan Kontributor Komputer Virtual memiliki lebih banyak izin daripada kebutuhan karyawan, dan Login Administrator Komputer Virtual tidak memiliki cukup.

Perintah Azure CLI berikut mengembalikan izin untuk peran bawaan Kontributor Komputer Virtual:

az role definition list --name "Virtual Machine Contributor" --output json | jq '.[] | .permissions[0].actions'

Daftar berikut menampilkan izin untuk peran bawaan Kontributor Komputer Virtual:

[
  "Microsoft.Authorization/*/read",
  "Microsoft.Compute/availabilitySets/*",
  "Microsoft.Compute/locations/*",
  "Microsoft.Compute/virtualMachines/*",
  "Microsoft.Compute/virtualMachineScaleSets/*",
  "Microsoft.DevTestLab/schedules/*",
  "Microsoft.Insights/alertRules/*",
  "Microsoft.Network/applicationGateways/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatRules/join/action",
  "Microsoft.Network/loadBalancers/probes/join/action",
  "Microsoft.Network/loadBalancers/read",
  "Microsoft.Network/locations/*",
  "Microsoft.Network/networkInterfaces/*",
  "Microsoft.Network/networkSecurityGroups/join/action",
  "Microsoft.Network/networkSecurityGroups/read",
  "Microsoft.Network/publicIPAddresses/join/action",
  "Microsoft.Network/publicIPAddresses/read",
  "Microsoft.Network/virtualNetworks/read",
  "Microsoft.Network/virtualNetworks/subnets/join/action",
  "Microsoft.RecoveryServices/locations/*",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/read",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/write",
  "Microsoft.RecoveryServices/Vaults/read",
  "Microsoft.RecoveryServices/Vaults/usages/read",
  "Microsoft.RecoveryServices/Vaults/write",
  "Microsoft.ResourceHealth/availabilityStatuses/read",
  "Microsoft.Resources/deployments/*",
  "Microsoft.Resources/subscriptions/resourceGroups/read",
  "Microsoft.SqlVirtualMachine/*",
  "Microsoft.Storage/storageAccounts/listKeys/action",
  "Microsoft.Storage/storageAccounts/read",
  "Microsoft.Support/*"
]

Untuk mendapatkan daftar ini di PowerShell, Anda akan menjalankan perintah berikut:

Get-AzRoleDefinition -Name "Virtual Machine Contributor" | Select Actions | ConvertTo-Json

Untuk skenario kami, kami menginginkan peran kustom yang memungkinkan Anda memantau dan memulai ulang komputer virtual untuk langganan tertentu, jadi kami ingin menyertakan tindakan berikut yang terlingkup di tingkat langganan:

  • Membaca akses ke sumber daya komputasi, jaringan, dan penyimpanan
  • Kemampuan untuk memulai dan menghidupkan ulang komputer virtual
  • Akses ke grup sumber daya dalam langganan
  • Akses ke sumber daya pemantauan

Ada beberapa operasi dalam definisi peran Kontributor Komputer Virtual yang dapat kita gunakan, seperti "Microsoft.Insights/alertRules/*" untuk pemantauan, tetapi menghidupkan ulang dan beberapa operasi lainnya tidak terdaftar sebagai tindakan dalam definisi peran tersebut.

Menemukan operasi penyedia sumber daya

Kita dapat menemukan tindakan mulai ulang VM di daftar operasi penyedia sumber daya Azure Resource Manager atau dengan menjalankan perintah PowerShell berikut untuk mengembalikan operasi untuk VM:

Get-AzProviderOperation */virtualMachines/*

Operasi berikut untuk menghidupkan ulang dikembalikan dalam daftar:

Operation         : Microsoft.Compute/virtualMachines/restart/action
OperationName     : Restart Virtual Machine
ProviderNamespace : Microsoft Compute
ResourceName      : Virtual Machines
Description       : Restarts the virtual machine
IsDataAction      : False

Anda dapat menggunakan cmdlet Azure PowerShell Get-AzProviderOperation untuk mendapatkan daftar operasi penyedia sumber daya terbaru. Untuk Azure CLI, gunakan perintah az provider operation show. Anda dapat menemukan daftar penyedia sumber daya dan operasi yang diterbitkan di konten Azure RBAC di Dokumen.

Membuat definisi peran Operator VM

Mari kita asumsikan kita telah memilih apa yang kita butuhkan dengan melihat definisi peran bawaan terkait dan daftar operasi penyedia sumber daya. Kita berakhir dengan definisi peran berikut untuk peran kustom kita. Kita akan menggunakan definisi peran ini untuk peran kustom kita.

   {
   "Name": "Virtual Machine Operator",
   "Id": "88888888-8888-8888-8888-888888888888",
   "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": [],
   "DataActions": [],
   "NotDataActions": [],
   "AssignableScopes": [
      "/subscriptions/{subscriptionId1}" 
   ]
   }

Uji pengetahuan Anda

1.

Apa yang disertakan dalam definisi peran Azure kustom?

2.

Perintah apa yang membantu Anda menentukan operasi apa yang akan ditambahkan ke definisi peran kustom?