Memahami penetapan peran Azure.

Penetapan peran memungkinkan Anda memberikan akses utama (seperti pengguna, grup, identitas terkelola, atau perwakilan layanan) ke sumber daya Azure tertentu. Artikel ini menjelaskan detail penetapan peran.

Penetapan peran

Akses ke sumber daya Azure diberikan dengan membuat penetapan peran, dan akses dicabut dengan menghapus penetapan peran.

Penetapan peran memiliki beberapa komponen, termasuk:

  • Kepala sekolah, atau siapa yang diberi peran.
  • Peran yang ditetapkan.
  • Cakupan tempat peran ditetapkan.
  • Nama penetapan peran, dan deskripsi yang membantu Anda menjelaskan mengapa peran telah ditetapkan.

Misalnya, Anda dapat menggunakan Azure RBAC untuk menetapkan peran seperti:

  • Pengguna Sally memiliki akses pemilik ke akun penyimpanan contoso123 di grup sumber daya ContosoStorage.
  • Semua orang di grup Administrator Cloud di MICROSOFT Entra ID memiliki akses pembaca ke semua sumber daya di grup sumber daya ContosoStorage.
  • Identitas terkelola yang terkait dengan aplikasi diizinkan untuk memulai ulang komputer virtual dalam langganan Contoso.

Berikut ini memperlihatkan contoh properti dalam penetapan peran saat ditampilkan menggunakan Azure PowerShell:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

Berikut ini memperlihatkan contoh properti dalam penetapan peran saat ditampilkan menggunakan Azure CLI, atau REST API:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

Tabel berikut ini menjelaskan arti properti penetapan peran.

Properti Deskripsi
RoleAssignmentName
name
Nama penetapan peran, yang merupakan pengidentifikasi unik global (GUID).
RoleAssignmentId
id
ID unik dari penetapan peran, yang mencakup nama.
Scope
scope
Pengidentifikasi sumber daya Azure yang dilingkup oleh penetapan peran.
RoleDefinitionId
roleDefinitionId
ID unik peran.
RoleDefinitionName
roleDefinitionName
Nama peran.
ObjectId
principalId
Pengidentifikasi objek Microsoft Entra untuk prinsipal yang memiliki peran yang ditetapkan.
ObjectType
principalType
Jenis objek Microsoft Entra yang diwakili oleh perwakilan. Nilai yang valid meliputi User, Group, dan ServicePrincipal.
DisplayName Untuk penetapan peran untuk pengguna, nama tampilan pengguna.
SignInName
principalName
Nama prinsipal unik (UPN) pengguna, atau nama aplikasi yang terkait dengan perwakilan layanan.
Description
description
Deskripsi penetapan peran.
Condition
condition
Pernyataan kondisi yang dibangun menggunakan satu atau beberapa tindakan dari definisi peran dan atribut.
ConditionVersion
conditionVersion
Nomor versi kondisi. Default ke 2.0 dan merupakan satu-satunya versi yang didukung.
CanDelegate
canDelegate
Tidak diterapkan.

Scope

Saat membuat penetapan peran, Anda perlu menentukan cakupan penerapannya. Cakupan mewakili sumber daya, atau sekumpulan sumber daya, yang diizinkan untuk diakses oleh prinsipal. Anda dapat mencakup penetapan peran ke satu sumber daya, grup sumber daya, langganan, atau grup manajemen.

Tip

Gunakan cakupan terkecil yang Anda butuhkan untuk memenuhi kebutuhan Anda.

Misalnya, jika Anda perlu memberikan akses identitas terkelola ke satu akun penyimpanan, praktik keamanan yang baik adalah membuat penetapan peran pada cakupan akun penyimpanan, bukan pada grup sumber daya atau cakupan langganan.

Untuk informasi selengkapnya tentang cakupan, lihat Memahami cakupan.

Peran yang akan ditetapkan

Penetapan peran dikaitkan dengan definisi peran. Definisi peran menentukan izin yang harus dimiliki prinsipal dalam cakupan penetapan peran.

Anda dapat menetapkan definisi peran bawaan atau definisi peran kustom. Saat Anda membuat penetapan peran, beberapa alat mengharuskan Anda menggunakan ID definisi peran sementara alat lain memungkinkan Anda memberikan nama peran.

Untuk informasi selengkapnya tentang definisi peran, lihat Memahami definisi peran.

Utama

Prinsipal termasuk pengguna, kelompok keamanan, identitas terkelola, identitas beban kerja, dan perwakilan layanan. Prinsipal dibuat dan dikelola di penyewa Microsoft Entra Anda. Anda dapat menetapkan peran ke perwakilan mana pun. Gunakan ID objek ID Microsoft Entra untuk mengidentifikasi prinsipal yang ingin Anda tetapkan perannya.

Saat Anda membuat penetapan peran dengan menggunakan Azure PowerShell, Azure CLI, Bicep, atau infrastruktur lain sebagai teknologi kode (IaC), Anda menentukan jenis utama. Jenis utama termasuk Pengguna, Grup, dan ServicePrincipal. Penting untuk menentukan jenis utama yang benar. Jika tidak, Anda mungkin mendapatkan kesalahan penyebaran yang terputus-putus, terutama saat Anda bekerja dengan perwakilan layanan dan identitas terkelola.

Nama

Nama sumber daya penetapan peran harus berupa pengidentifikasi unik global (GUID).

Nama sumber daya penetapan peran harus unik dalam penyewa Microsoft Entra, bahkan jika cakupan penetapan peran lebih sempit.

Tip

Saat Anda membuat penetapan peran dengan menggunakan portal Azure, Azure PowerShell, atau Azure CLI, proses pembuatan memberi penetapan peran nama unik untuk Anda secara otomatis.

Jika Anda membuat penetapan peran dengan menggunakan Bicep atau teknologi infrastruktur sebagai kode (IaC) lainnya, Anda perlu merencanakan dengan cermat bagaimana Anda menamai penetapan peran Anda. Untuk informasi selengkapnya, lihat Membuat sumber daya Azure RBAC dengan menggunakan Bicep.

Perilaku penghapusan sumber daya

Saat Anda menghapus pengguna, grup, perwakilan layanan, atau identitas terkelola dari ID Microsoft Entra, adalah praktik yang baik untuk menghapus penetapan peran apa pun. Mereka tidak dihapus secara otomatis. Setiap penetapan peran yang merujuk ke ID utama yang dihapus menjadi tidak valid.

Jika Anda mencoba menggunakan kembali nama penetapan peran untuk penetapan peran lain, penyebaran akan gagal. Masalah ini lebih mungkin terjadi ketika Anda menggunakan Bicep atau templat Azure Resource Manager (templat ARM) untuk menyebarkan penetapan peran Anda, karena Anda harus secara eksplisit mengatur nama penetapan peran saat Anda menggunakan alat-alat ini. Untuk mengatasi aktivitas ini, Anda harus menghapus penetapan peran lama sebelum membuatnya kembali, atau memastikan bahwa Anda menggunakan nama unik saat menyebarkan penetapan peran baru.

Deskripsi

Anda dapat menambahkan deskripsi teks ke penetapan peran. Meskipun deskripsi bersifat opsional, praktik yang baik untuk menambahkannya ke penetapan peran Anda. Berikan pembenaran singkat tentang mengapa prinsipal membutuhkan peran yang ditetapkan. Ketika seseorang mengaudit penetapan peran, deskripsi dapat membantu memahami mengapa mereka telah dibuat dan apakah mereka masih berlaku.

Kondisi

Beberapa peran mendukung kondisi penetapan peran berdasarkan atribut dalam konteks tindakan tertentu. Kondisi penetapan peran adalah pemeriksaan tambahan yang dapat Anda tambahkan secara opsional ke penetapan peran Anda untuk memberikan kontrol akses yang lebih terperinci.

Misalnya, Anda dapat menambahkan kondisi yang mengharuskan objek memiliki tag tertentu bagi pengguna untuk membaca objek.

Anda biasanya membuat kondisi menggunakan editor kondisi visual, tetapi berikut tampilan contoh kondisi dalam kode:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

Kondisi sebelumnya memungkinkan pengguna untuk membaca blob dengan kunci tag indeks blob Project dan nilai Cascade.

Untuk informasi selengkapnya tentang kondisi, lihat Apa itu kontrol akses berbasis atribut Azure (Azure ABAC)?

Langkah berikutnya