Model Otorisasi: RBAC, MAC, dan DAC
Bandingkan model kontrol akses berbasis peran, wajib, dan diskresioner, lalu pelajari kapan masing-masing tepat digunakan dalam konteks perusahaan dan pemerintahan.
Model Otorisasi: RBAC, MAC, dan DAC adalah pelajaran Security+ Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Security+ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Security+ Academy mencakup 4 pelajaran total.
Gambaran Umum Model Kontrol Akses
Model kontrol akses menentukan aturan dan kebijakan yang mengatur subjek mana (users, proses) yang dapat mengakses Object mana (file, sistem, data). Model yang dipilih menentukan siapa yang dapat memberikan akses, bagaimana permissions ditetapkan, dan bagaimana penegakan aturan dilakukan. Ujian Security+ mencakup empat model utama: Discretionary Access Control (DAC), Mandatory Access Control (MAC), Role-Based Access Control (RBAC), dan Kontrol Akses Berbasis Aturan. Memahami kelebihan setiap model dan situasi penggunaan yang tepat sangat penting untuk merancang sistem otorisasi yang efektif.
Discretionary Access Control (DAC)
Dalam Discretionary Access Control (DAC), Owner resource memiliki keleluasaan untuk menentukan siapa yang dapat mengakses resource mereka dan dapat memberikan atau mencabut akses bagi pengguna lain. Aspek 'discretionary' berarti Owner yang memutuskan — sistem menegakkan keputusan mereka, tetapi tidak menentukannya. Model ini digunakan di sebagian besar lingkungan komputasi pribadi (permissions file Windows NTFS dan permissions file Linux/Unix). Keterbatasan keamanan DAC adalah setiap Owner resource harus membuat keputusan akses yang benar — pengguna yang menerima akses ke sebuah file dapat memberikan akses tersebut kepada orang lain tanpa keterlibatan administrator, sehingga data sensitif berpotensi tersebar melampaui audiens yang dituju.
# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users (owner=alice, can read/write; group can read/write; others read)
# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users (only Alice can read/write)
# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txtRisiko DAC: Masalah Wakil yang Bingung
DAC memiliki dua risiko keamanan bawaan. Akses transitif: pengguna A memberikan akses kepada pengguna B, lalu pengguna B memberikan akses kepada pengguna C — pemilik awal bahkan mungkin tidak mengetahui bahwa C memiliki akses ke resource mereka. Masalah Wakil yang Bingung: program berhak istimewa yang bertindak atas nama pengguna dengan hak lebih rendah dapat secara tidak sengaja menggunakan hak istimewanya dengan cara yang tidak dapat dilakukan pengguna tersebut secara langsung. Dalam lingkungan DAC, satu akun yang disusupi berpotensi mengakses semua resource yang telah diberikan kepada pengguna tersebut, dan mungkin memberikan akses kepada orang lain sebelum penyusupan terdeteksi. DAC memang praktis, tetapi menimbulkan tantangan dalam pembatasan informasi yang ketat.
Mandatory Access Control (MAC)
Dalam Mandatory Access Control (MAC), sistem operasi menegakkan kebijakan akses berdasarkan label keamanan yang ditetapkan pada subjek (pengguna) dan Object (data). Pengguna tidak dapat mengganti atau mengubah kebijakan ini — hanya administrator sistem atau kebijakan keamanan yang dapat memodifikasinya. MAC digunakan dalam lingkungan pemerintah dan militer dengan klasifikasi keamanan, ketika data harus dipisahkan secara ketat. Pengguna dengan izin 'Secret' tidak dapat mengakses data berlabel 'Top Secret', meskipun Owner data ingin memberikan akses tersebut. Model Bell-LaPadula (tidak boleh membaca ke atas, tidak boleh menulis ke bawah) dan model Biba (tidak boleh menulis ke atas, tidak boleh membaca ke bawah) adalah implementasi MAC formal.
# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce # Enforcing / Permissive / Disabled
sestatus # Detailed SELinux status
# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd
# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent # View MAC policy denialsModel MAC Bell-LaPadula dan Biba
Dua model MAC formal menyandikan tujuan keamanan sebagai aturan matematis. Bell-LaPadula berfokus pada kerahasiaan: subjek tidak boleh membaca data di atas tingkat klasifikasinya (tidak boleh membaca ke atas) dan tidak boleh menulis data ke tingkat klasifikasi yang lebih rendah (tidak boleh menulis ke bawah). Hal ini mencegah informasi sensitif mengalir kepada pengguna yang tidak berwenang. Biba berfokus pada integritas: subjek tidak boleh menulis ke tingkat integritas yang lebih tinggi (tidak boleh menulis ke atas) dan tidak boleh membaca dari tingkat integritas yang lebih rendah (tidak boleh membaca ke bawah). Biba mencegah data dengan integritas tinggi tercemar oleh input dengan integritas rendah. Sistem MAC nyata (seperti SELinux) menggabungkan aspek dari kedua model.
Role-Based Access Control (RBAC)
Role-Based Access Control (RBAC) menetapkan permissions kepada peran, bukan langsung kepada pengguna individu, kemudian menetapkan pengguna ke peran. Pendekatan ini mengatasi tantangan pengelolaan permissions individual dalam skala besar. Peran umum dalam lingkungan perusahaan meliputi: admin, auditor, developer, HR_manager, dan finance_analyst. Saat pegawai baru bergabung, mereka ditambahkan ke peran yang sesuai dan langsung mewarisi semua permissions yang diperlukan oleh peran tersebut. Saat pegawai berganti posisi, perannya berubah dan permissions disesuaikan secara otomatis. RBAC adalah model yang dominan dalam sistem IAM perusahaan.
# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;
CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;
# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;
# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;Manfaat RBAC: Skalabilitas dan Pemisahan Tugas
Keunggulan utama RBAC adalah skalabilitas administratif. Mengubah permissions suatu peran langsung memengaruhi semua pengguna dalam peran tersebut — tidak perlu memperbarui catatan pengguna satu per satu di ratusan sistem. RBAC secara alami mendukung pemisahan tugas dengan memastikan tidak ada satu peran yang memiliki permissions yang saling bertentangan (misalnya, peran yang dapat membuat sekaligus menyetujui transaksi keuangan). RBAC juga menyederhanakan kepatuhan: auditor dapat meninjau peran dan permissions-nya, bukan mengaudit ribuan penetapan pengguna secara individual. Keterbatasannya adalah ledakan peran — organisasi terkadang membuat terlalu banyak peran yang sangat terperinci, sehingga menimbulkan kerumitan pengelolaan yang mengurangi manfaat skalabilitas.
Kontrol Akses Berbasis Aturan
Kontrol Akses Berbasis Aturan (jangan disamakan dengan RBAC) memberikan atau menolak akses berdasarkan sekumpulan aturan bersyarat, bukan hanya berdasarkan identitas atau peran. Aturan firewall adalah contoh klasik: 'Izinkan TCP dari 192.168.1.0/24 ke mana saja pada port 443. Tolak semua lalu lintas lainnya.' Akses dievaluasi terhadap aturan secara berurutan hingga ditemukan kecocokan. Kontrol berbasis aturan umum digabungkan dengan model lain: MAC menggunakan label keamanan sebagai aturan, sedangkan Attribute-Based Access Control (ABAC) memperluas logika berbasis aturan untuk mengevaluasi beberapa atribut (departemen pengguna, tipe device, waktu, klasifikasi resource) secara bersamaan demi keputusan yang terperinci.
# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins
# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT
# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Default deny all other inbound
iptables -A INPUT -j DROPAttribute-Based Access Control (ABAC)
ABAC (Attribute-Based Access Control) adalah model kontrol akses yang paling fleksibel dan terperinci. Keputusan akses mengevaluasi beberapa atribut secara bersamaan: atribut subjek (departemen pengguna, tingkat izin, lokasi), atribut Object (klasifikasi data, departemen Owner, label retensi), atribut lingkungan (waktu, tipe device, lokasi jaringan), dan atribut tindakan (baca, tulis, hapus). Sebuah kebijakan dapat menyatakan: 'Izinkan akses jika user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18.' ABAC memungkinkan keputusan kebijakan zero-trust dan diimplementasikan oleh produk seperti XACML serta mesin kebijakan IAM cloud.
Memilih Model yang Tepat
Model kontrol akses yang tepat bergantung pada persyaratan keamanan dan konteks organisasi. DAC: sesuai untuk komputasi pribadi dan tim kecil yang memprioritaskan kemudahan daripada kontrol ketat. MAC: diperlukan untuk lingkungan pemerintah/militer dengan klasifikasi keamanan dan pemisahan informasi yang ketat. RBAC: ideal untuk perusahaan yang membutuhkan skalabilitas administratif dan memiliki peran yang sesuai dengan fungsi pekerjaan. ABAC: sesuai untuk lingkungan cloud dan arsitektur zero-trust yang memerlukan kebijakan sadar konteks dan terperinci. Dalam praktiknya, sebagian besar organisasi menggunakan kombinasi: RBAC sebagai fondasi dengan ABAC untuk keputusan akses yang sensitif terhadap konteks.
Daftar Kontrol Akses (ACLs)
Terlepas dari model kontrol akses yang digunakan, Daftar Kontrol Akses (ACLs) merupakan mekanisme penerapan teknis yang paling umum. ACL yang dikaitkan dengan suatu sumber daya menentukan subjek mana yang dapat melakukan tindakan tertentu. ACL sistem berkas (Windows NTFS, Linux POSIX ACLs) mengontrol akses ke berkas dan direktori. ACL jaringan mengontrol aliran lalu lintas pada tingkat perute atau jaringan cloud. ACL basis data mengontrol akses pada tingkat tabel dan baris. ACL dapat menerapkan semua model yang telah dibahas: ACL suatu berkas menerapkan DAC ketika pemilik mengendalikannya; ACL sistem keamanan menerapkan MAC ketika label menentukan entri; ACL aplikasi menerapkan RBAC ketika entri merujuk pada peran.
# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F) <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX) <- Read and Execute
# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify
# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda telah mempelajari bahwa DAC memungkinkan pemilik sumber daya mengontrol akses (fleksibel tetapi berisiko); MAC menggunakan label keamanan yang diberlakukan oleh sistem (ketat dan digunakan di lingkungan terklasifikasi); RBAC menetapkan izin kepada peran untuk mendukung skalabilitas perusahaan; dan ABAC mengevaluasi berbagai atribut untuk menghasilkan keputusan zero-trust yang terperinci. Selanjutnya, kita akan membahas Identitas Terfederasi: SAML, OAuth, dan OpenID Connect.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Model Otorisasi: RBAC, MAC, dan DAC” gratis?
Ya — teks lengkap “Model Otorisasi: RBAC, MAC, dan DAC” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Security+ Academy, upgrade ke CoddyKit PRO. Kursus Security+ Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Model Otorisasi: RBAC, MAC, dan DAC”?
Bandingkan model kontrol akses berbasis peran, wajib, dan diskresioner, lalu pelajari kapan masing-masing tepat digunakan dalam konteks perusahaan dan pemerintahan. Kamu berlatih Security+ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Security+ Academy?
Tidak diperlukan pengalaman sebelumnya. Security+ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Model Otorisasi: RBAC, MAC, dan DAC” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Security+ Academy ini?
Ya. Setiap pelajaran Security+ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kebijakan Kata Sandi dan Autentikasi Multifaktor
- Biometrik dan Autentikasi Berbasis Token
- Model Otorisasi: RBAC, MAC, dan DAC
- Identitas Terfederasi: SAML, OAuth, dan OpenID Connect