Bagikan melalui


Apa itu kontrol akses berbasis atribut Azure (Azure ABAC)?

Kontrol akses berbasis atribut (ABAC) adalah sistem otorisasi yang menentukan akses berdasarkan atribut yang terkait dengan prinsip keamanan, sumber daya, dan lingkungan permintaan akses. Dengan ABAC, Anda dapat memberikan akses utama keamanan ke sumber daya berdasarkan atribut. Azure ABAC mengacu pada implementasi ABAC untuk Azure.

Apa itu kondisi penetapan peran?

Kontrol akses berbasis peran Azure (Azure RBAC) adalah sistem otorisasi yang membantu Anda mengelola siapa yang memiliki akses ke sumber daya Azure, apa yang dapat mereka lakukan dengan sumber daya tersebut, dan area apa yang dapat mereka akses. Dalam kebanyakan kasus, Azure RBAC akan menyediakan manajemen akses yang Anda butuhkan dengan menggunakan definisi peran dan penetapan peran. Namun, dalam beberapa kasus Anda mungkin ingin memberikan manajemen akses yang lebih halus atau menyederhanakan manajemen ratusan penetapan peran.

Azure ABAC dibangun pada Azure RBAC dengan menambahkan 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 halus. Kondisi memfilter izin yang diberikan sebagai bagian dari penetapan dan definisi peran. Misalnya, Anda dapat menambahkan kondisi yang mengharuskan objek memiliki tag tertentu untuk membaca objek. Anda tidak dapat secara eksplisit menolak akses ke sumber daya tertentu menggunakan kondisi.

Menggunakan Azure RBAC dan Azure ABAC bersama-sama mengintegrasikan manfaat dari kedua model kontrol akses. Azure RBAC lebih mudah diterapkan karena keselarasan dekat dengan logika bisnis, sementara Azure ABAC memberikan fleksibilitas yang lebih besar dalam beberapa skenario utama. Dengan menggabungkan kedua metode ini, organisasi dapat mencapai tingkat otorisasi yang lebih canggih.

Mengapa menggunakan kondisi?

Ada tiga manfaat utama untuk menggunakan kondisi penetapan peran:

  • Berikan kontrol akses yang lebih terperinci - Penetapan peran menggunakan definisi peran dengan tindakan dan tindakan data untuk memberikan izin prinsipal keamanan. Anda dapat menulis kondisi untuk memfilter izin tersebut untuk kontrol akses yang lebih halus. Anda juga dapat menambahkan kondisi ke tindakan tertentu. Misalnya, Anda dapat memberikan John akses baca ke blob di langganan Anda hanya jika blob ditandai sebagai Project=Blue.
  • Membantu mengurangi jumlah penetapan peran - Setiap langganan Azure saat ini memiliki batas penetapan peran. Ada skenario yang akan memerlukan ribuan penetapan peran. Semua penugasan peran tersebut harus dikelola. Dalam skenario-skenario ini, Anda dapat menambahkan syarat untuk menggunakan penetapan peran yang jauh lebih sedikit.
  • Gunakan atribut yang memiliki arti bisnis tertentu - Kondisi memungkinkan Anda menggunakan atribut yang memiliki arti bisnis khusus untuk Anda dalam kontrol akses. Beberapa contoh atribut adalah nama proyek, tahap pengembangan perangkat lunak, dan tingkat klasifikasi. Nilai atribut sumber daya ini bersifat dinamis dan berubah saat pengguna berpindah lintas tim dan proyek.

Contoh skenario untuk kondisi

Ada beberapa skenario di mana Anda mungkin ingin menambahkan kondisi ke penetapan peran Anda. Berikut adalah beberapa contohnya.

  • Membaca akses ke blob dengan tag Project=Cascade
  • Blob baru harus menyertakan tag Project=Cascade
  • Blob yang ada harus ditandai dengan setidaknya satu kunci Proyek atau kunci Program
  • Blob yang ada harus ditandai dengan kunci Proyek dan nilai Cascade, Baker, atau Skagit
  • Membaca, menulis, atau menghapus blok data dalam kontainer bernama blobs-example-container
  • Membaca akses ke blob dalam kontainer bernama blobs-example-container dengan jalur readonly
  • Menulis akses ke blob dalam kontainer bernama Contosocorp dengan jalur unggahan/contoso
  • Membaca akses ke blob dengan tag Program=Alpine dan jalur log
  • Membaca akses ke blob dengan tag Project=Baker dan pengguna memiliki atribut yang cocok Project=Baker
  • Memungkinkan akses membaca ke blob selama rentang tanggal/waktu tertentu.
  • Tulis akses ke blob hanya melalui tautan privat atau dari subnet tertentu.

Untuk informasi selengkapnya tentang cara membuat contoh ini, lihat Contoh kondisi penetapan peran Azure untuk Blob Storage.

Di mana bisa menambahkan kondisi?

Saat ini, kondisi dapat ditambahkan ke penetapan peran bawaan atau kustom yang memiliki penyimpanan blob atau tindakan data penyimpanan antrean. Kondisi ditambahkan dalam cakupan yang sama dengan penugasan peran. Sama seperti penetapan peran, Anda harus memiliki Microsoft.Authorization/roleAssignments/write izin untuk menambahkan kondisi.

Berikut adalah beberapa atribut penyimpanan blob yang dapat Anda gunakan dalam kondisi Anda.

  • Nama akun
  • Penanda Indeks Blob
  • Jalur blob
  • Prefiks blob
  • Nama kontainer
  • Nama cakupan enkripsi
  • Adalah Versi Terkini
  • Apakah namespace hierarkis diaktifkan
  • Apakah tautan privat
  • Cuplikan
  • UTC sekarang (tanggal dan waktu saat ini dalam Waktu Universal Terkoordinasi)
  • ID Versi

Seperti apa kondisinya?

Anda dapat menambahkan kondisi ke penetapan peran baru atau yang sudah ada. Berikut adalah peran Pembaca Data Blob Penyimpanan yang telah ditetapkan untuk pengguna bernama Chandra di lingkup grup sumberdaya. Kondisi juga telah ditambahkan yang hanya memungkinkan akses baca ke blob dengan tag Project=Cascade.

Diagram penetapan peran dengan kondisi.

Jika Chandra mencoba membaca blob tanpa tag Project=Cascade, akses tidak akan diizinkan.

Akses ke diagram tidak diizinkan karena suatu ketentuan.

Berikut adalah seperti apa kondisinya di portal Microsoft Azure:

Cuplikan layar editor kondisi di portal Microsoft Azure memperlihatkan bagian ekspresi build dengan nilai untuk tag indeks blob.

Berikut adalah seperti apa kondisinya 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'
    )
)

Untuk informasi selengkapnya tentang format kondisi, lihat Format dan sintaks kondisi penetapan peran Azure.

Status kondisi fitur

Tabel berikut ini mencantumkan status fitur kondisi:

Fitur Kedudukan Tanggal
Gunakan atribut lingkungan dalam kondisi Majelis Umum April 2024
Menambahkan kondisi menggunakan editor kondisi di portal Microsoft Azure Majelis Umum Oktober 2022
Menambahkan kondisi menggunakan Azure PowerShell, Azure CLI, atau REST API Majelis Umum Oktober 2022
Gunakan atribut sumber daya dan permintaan untuk kombinasi sumber daya penyimpanan Azure tertentu, jenis atribut akses, dan tingkat performa akun penyimpanan. Untuk informasi selengkapnya, lihat Status fitur kondisi di Azure Storage. Majelis Umum Oktober 2022
Gunakan atribut keamanan kustom pada prinsipal dalam kondisi Majelis Umum November 2023

Syarat dan Microsoft Entra PIM

Anda juga dapat menambahkan kondisi pada penugasan peran yang memenuhi syarat dengan menggunakan Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) untuk sumber daya Azure. Dengan Microsoft Entra PIM, pengguna akhir Anda harus mengaktifkan penetapan peran yang memenuhi syarat untuk mendapatkan izin untuk melakukan tindakan tertentu. Menggunakan kondisi di Microsoft Entra PIM memungkinkan Anda tidak hanya membatasi akses pengguna ke sumber daya menggunakan kondisi terperinci, tetapi juga menggunakan Microsoft Entra PIM untuk mengamankannya dengan pengaturan terikat waktu, alur kerja persetujuan, jejak audit, dan sebagainya. Untuk informasi selengkapnya, lihat Menetapkan peran sumber daya Azure di Privileged Identity Management.

Terminologi

Untuk lebih memahami Azure RBAC dan Azure ABAC, Anda dapat merujuk kembali ke daftar istilah berikut.

Istilah Definisi
kontrol akses berbasis atribut (ABAC) Sistem otorisasi yang menentukan akses berdasarkan atribut yang terkait dengan prinsip keamanan, sumber daya, dan lingkungan. Dengan ABAC, Anda dapat memberikan akses utama keamanan ke sumber daya berdasarkan atribut.
Azure ABAC Mengacu pada implementasi ABAC untuk Azure.
kondisi penetapan peran Pemeriksaan tambahan yang dapat Anda tambahkan secara opsional ke penetapan peran Anda untuk memberikan kontrol akses yang lebih terperinci.
atribut Dalam konteks ini, pasangan kunci-nilai seperti Project=Blue, di mana Project adalah kunci atribut dan Blue adalah nilai atribut. Atribut dan tag identik untuk tujuan kontrol akses.
ekspresi Pernyataan dalam kondisi yang mengevaluasi menjadi benar atau salah. Ekspresi berformat <atribut><operator><nilai>.

Batasan

Berikut adalah beberapa batas dari kondisi.

Sumber daya Batasan Catatan
Jumlah ekspresi per kondisi menggunakan editor visual 5 Anda dapat menambahkan lebih dari lima ekspresi menggunakan editor kode

Masalah yang diketahui

Berikut adalah masalah yang diketahui terkait kondisi tersebut:

  • Jika Anda menggunakan Microsoft Entra Privileged Identity Management (PIM) dan atribut keamanan kustom, Prinsipal tidak muncul di Sumber atribut saat menambahkan kondisi.

Langkah berikutnya