Difference between revisions of "Aspek keamanan: kerahasiaan, integritas, ketersediaan"
Onnowpurbo (talk | contribs) (Created page with "Berikut adalah **Modul 8: Keamanan Basis Data**, dengan fokus pada tiga aspek utama yaitu **kerahasiaan (confidentiality)**, **integritas (integrity)**, dan **ketersediaan (av...") |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
− | + | ==Tujuan Pembelajaran== | |
+ | Setelah mempelajari modul ini, mahasiswa diharapkan mampu: | ||
+ | * Menjelaskan aspek utama keamanan basis data (CIA: Confidentiality, Integrity, Availability). | ||
+ | * Menerapkan konfigurasi dan praktik keamanan pada MySQL. | ||
+ | * Memahami pengelolaan hak akses, enkripsi, dan backup data untuk menjaga keamanan basis data. | ||
− | |||
− | |||
− | + | ==Tiga Pilar Keamanan Basis Data (CIA)== | |
− | |||
− | |||
− | |||
− | |||
− | --- | + | {| class="wikitable" |
+ | ! Aspek !! Definisi | ||
+ | |- | ||
+ | | '''Kerahasiaan''' || Menjaga agar data hanya dapat diakses oleh pihak yang berwenang. | ||
+ | |- | ||
+ | | '''Integritas''' || Menjamin bahwa data akurat, konsisten, dan tidak dimodifikasi tanpa izin. | ||
+ | |- | ||
+ | | '''Ketersediaan'''|| Menjamin data dan layanan database tersedia saat dibutuhkan. | ||
+ | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Kerahasiaan (Confidentiality)== | |
− | + | '''Tujuan:''' | |
− | |||
Melindungi data dari akses tidak sah. | Melindungi data dari akses tidak sah. | ||
− | + | '''Contoh di MySQL:''' | |
− | |||
− | + | 1. '''Membuat pengguna dan memberi hak akses minimum''' | |
− | |||
− | |||
− | -- Hanya izinkan SELECT pada tabel mahasiswa | + | -* Buat user baru |
− | GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost'; | + | CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123'; |
− | + | ||
+ | -* Hanya izinkan SELECT pada tabel mahasiswa | ||
+ | GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost'; | ||
− | + | 2. '''Menghapus hak akses''' | |
− | + | REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost'; | |
− | REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost'; | ||
− | |||
− | + | 3. '''Mengaktifkan autentikasi enkripsi SSL (opsional)''' | |
Aktifkan SSL di file config: | Aktifkan SSL di file config: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | --- | + | [mysqld] |
+ | ssl-ca=/etc/mysql/certs/ca.pem | ||
+ | ssl-cert=/etc/mysql/certs/server-cert.pem | ||
+ | ssl-key=/etc/mysql/certs/server-key.pem | ||
+ | |||
+ | |||
+ | ==Integritas (Integrity)== | ||
− | + | '''Tujuan:''' | |
− | |||
Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja. | Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja. | ||
− | + | '''Contoh di MySQL:''' | |
− | + | 1. '''Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, dan CHECK''' | |
− | + | CREATE TABLE mahasiswa ( | |
− | CREATE TABLE mahasiswa ( | + | nim VARCHAR(10) PRIMARY KEY, |
− | + | nama VARCHAR(100) NOT NULL, | |
− | + | ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00) | |
− | + | ); | |
− | ); | ||
− | |||
− | + | 2. '''Gunakan TRIGGER untuk validasi otomatis''' | |
− | + | DELIMITER // | |
− | DELIMITER // | + | CREATE TRIGGER before_insert_mahasiswa |
− | CREATE TRIGGER before_insert_mahasiswa | + | BEFORE INSERT ON mahasiswa |
− | BEFORE INSERT ON mahasiswa | + | FOR EACH ROW |
− | FOR EACH ROW | + | BEGIN |
− | BEGIN | + | IF NEW.ipk > 4.00 THEN |
− | + | SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid'; | |
− | + | END IF; | |
− | + | END; | |
− | END; | + | // |
− | // | + | DELIMITER ; |
− | DELIMITER ; | ||
− | |||
− | + | ==Ketersediaan (Availability)== | |
− | + | '''Tujuan:''' | |
− | |||
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan. | Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan. | ||
− | + | '''Strategi:''' | |
− | + | 1. '''Backup Berkala''' | |
− | + | mysqldump -u root -p universitas > backup_universitas.sql | |
− | mysqldump -u root -p universitas > backup_universitas.sql | ||
− | |||
− | |||
− | + | 2. '''Restore Data''' | |
− | |||
− | |||
− | + | mysql -u root -p universitas < backup_universitas.sql | |
+ | |||
+ | 3. '''Monitoring dan Restart Otomatis''' | ||
Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal: | Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal: | ||
− | + | sudo systemctl enable mysql | |
− | sudo systemctl enable mysql | + | sudo systemctl start mysql |
− | sudo systemctl start mysql | ||
− | |||
− | + | 4. '''Monitoring Kesehatan Server''' | |
Install dan jalankan MySQLTuner: | Install dan jalankan MySQLTuner: | ||
− | + | sudo apt install mysqltuner | |
− | sudo apt install mysqltuner | + | sudo mysqltuner |
− | sudo mysqltuner | + | |
− | + | ==Kesimpulan== | |
− | --- | + | {| class="wikitable" |
+ | ! Aspek !! Implementasi MySQL Ubuntu 24.04 | ||
+ | |- | ||
+ | | '''Kerahasiaan''' || Buat user terbatas, grant/revoke, gunakan SSL | ||
+ | |- | ||
+ | | '''Integritas''' || Gunakan constraint, trigger, validasi data | ||
+ | |- | ||
+ | | '''Ketersediaan'''|| Backup, monitoring, pemulihan otomatis, konfigurasi systemd | ||
+ | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Pranala Menarik== | |
− | + | * [[Database: Kuliah]] |
Latest revision as of 07:00, 21 April 2025
Tujuan Pembelajaran
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Menjelaskan aspek utama keamanan basis data (CIA: Confidentiality, Integrity, Availability).
- Menerapkan konfigurasi dan praktik keamanan pada MySQL.
- Memahami pengelolaan hak akses, enkripsi, dan backup data untuk menjaga keamanan basis data.
Tiga Pilar Keamanan Basis Data (CIA)
Aspek | Definisi |
---|---|
Kerahasiaan | Menjaga agar data hanya dapat diakses oleh pihak yang berwenang. |
Integritas | Menjamin bahwa data akurat, konsisten, dan tidak dimodifikasi tanpa izin. |
Ketersediaan | Menjamin data dan layanan database tersedia saat dibutuhkan. |
Kerahasiaan (Confidentiality)
Tujuan:
Melindungi data dari akses tidak sah.
Contoh di MySQL:
1. Membuat pengguna dan memberi hak akses minimum
-* Buat user baru CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123'; -* Hanya izinkan SELECT pada tabel mahasiswa GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost';
2. Menghapus hak akses
REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost';
3. Mengaktifkan autentikasi enkripsi SSL (opsional)
Aktifkan SSL di file config:
[mysqld] ssl-ca=/etc/mysql/certs/ca.pem ssl-cert=/etc/mysql/certs/server-cert.pem ssl-key=/etc/mysql/certs/server-key.pem
Integritas (Integrity)
Tujuan:
Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja.
Contoh di MySQL:
1. Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, dan CHECK
CREATE TABLE mahasiswa ( nim VARCHAR(10) PRIMARY KEY, nama VARCHAR(100) NOT NULL, ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00) );
2. Gunakan TRIGGER untuk validasi otomatis
DELIMITER // CREATE TRIGGER before_insert_mahasiswa BEFORE INSERT ON mahasiswa FOR EACH ROW BEGIN IF NEW.ipk > 4.00 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid'; END IF; END; // DELIMITER ;
Ketersediaan (Availability)
Tujuan:
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan.
Strategi:
1. Backup Berkala
mysqldump -u root -p universitas > backup_universitas.sql
2. Restore Data
mysql -u root -p universitas < backup_universitas.sql
3. Monitoring dan Restart Otomatis
Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal:
sudo systemctl enable mysql sudo systemctl start mysql
4. Monitoring Kesehatan Server
Install dan jalankan MySQLTuner:
sudo apt install mysqltuner sudo mysqltuner
Kesimpulan
Aspek | Implementasi MySQL Ubuntu 24.04 |
---|---|
Kerahasiaan | Buat user terbatas, grant/revoke, gunakan SSL |
Integritas | Gunakan constraint, trigger, validasi data |
Ketersediaan | Backup, monitoring, pemulihan otomatis, konfigurasi systemd |