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 prinsip keamanan ke sumber daya berdasarkan atribut. Azure ABAC mengacu pada implementasi ABAC untuk Azure.

Apa saja 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. Di sebagian besar 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 terperinci. Kondisi memfilter izin yang diberikan sebagai bagian dari definisi peran dan penetapan 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.

Mengapa menggunakan kondisi?

Ada tiga manfaat utama dalam menggunakan kondisi penetapan peran:

  • Berikan kontrol akses yang lebih halus - Penetapan peran menggunakan definisi peran dengan tindakan dan tindakan data untuk memberikan izin utama keamanan. Anda dapat menulis kondisi untuk memfilter izin tersebut agar kontrol akses lebih terperinci. Anda juga dapat menambahkan kondisi ke tindakan tertentu. Misalnya, Anda dapat memberi John akses baca ke blob dalam langganan Anda hanya jika blob ditandai sebagai Project=Blue.
  • Membantu mengurangi jumlah penetapan peran - Setiap langganan Azure saat ini memiliki batas penetapan peran. Ada kalanya Anda akan memerlukan ribuan penetapan peran. Semua penetapan peran tersebut harus dikelola. Dalam skenario ini, kemungkinan Anda akan menambahkan kondisi untuk menggunakan penetapan peran yang jauh lebih sedikit.
  • Menggunakan atribut yang memiliki makna bisnis tertentu - Kondisi memungkinkan Anda menggunakan atribut yang memiliki arti bisnis khusus bagi 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 akan berubah saat pengguna berpindah lintas tim dan proyek.

Contoh skenario untuk kondisi

Ada beberapa skenario ketika Anda mungkin ingin menambahkan kondisi ke penetapan peran Anda. Berikut adalah beberapa contoh.

  • Akses baca ke blob dengan tag Project=Cascade
  • Blob baru harus menyertakan tag Project=Cascade
  • Blob yang ada harus diberi tag dengan setidaknya satu kunci Project atau kunci Program
  • Blob yang ada harus diberi tag dengan kunci Project dan nilai Cascade, Baker, atau Skagit
  • Baca, tulis, atau hapus blob dalam kontainer bernama blobs-example-container
  • Akses baca ke blob dalam kontainer bernama blobs-example-container dengan jalur readonly
  • Akses tulis ke blob dalam kontainer bernama Contosocorp dengan jalur uploads/contoso
  • Akses baca 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
  • Membaca akses 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 kondisi dapat ditambahkan?

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

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

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

Seperti apa tampilan kondisi?

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 pada cakupan grup sumber daya. Kondisi juga telah ditambahkan yang hanya memungkinkan akses baca ke blob dengan tag Project=Cascade.

Diagram penetapan peran dengan syarat.

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

Diagram akses tidak diizinkan dengan kondisi.

Berikut adalah tampilan kondisi di dalam portal Microsoft Azure:

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

Berikut adalah tampilan kondisi di 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 fitur kondisi

Tabel berikut ini mencantumkan status fitur kondisi:

Fitur Keadaan Tanggal
Menggunakan atribut lingkungan dalam kondisi GA April 2024
Menambahkan kondisi menggunakan editor kondisi di portal Azure GA Oktober 2022
Menambahkan kondisi menggunakan Azure PowerShell, Azure CLI, atau REST API GA 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. GA Oktober 2022
Menggunakan atribut keamanan kustom pada prinsipal dalam kondisi GA November 2023

Kondisi dan Microsoft Entra PIM

Anda juga dapat menambahkan kondisi ke penetapan peran yang memenuhi syarat 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 membaca lagi daftar istilah berikut.

Term Definisi
kontrol akses berbasis atribut (ABAC) Sistem otorisasi yang mendefinisikan akses berdasarkan atribut yang terkait dengan prinsip keamanan, sumber daya, dan lingkungan. Dengan ABAC, Anda dapat memberikan akses prinsip 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 keperluan kontrol akses.
expression Pernyataan dalam kondisi yang mengevaluasi ke true atau false. Ekspresi memiliki format <nilai> operator><atribut><.

Batas

Berikut adalah beberapa batasan untuk kondisi.

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

Masalah umum

Berikut adalah masalah yang diketahui dengan kondisi:

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

Langkah berikutnya