Latihan - Mengelola keamanan Anda
Setelah Azure SQL Database Anda diamankan pada tingkat jaringan, autentikasi, dan perlindungan data, langkah terakhir adalah memahami bagaimana Anda akan mengelola keamanan secara berkelanjutan. Mengelola keamanan mencakup audit, pemantauan, dan klasifikasi data.
Audit
Audit membantu menjaga kepatuhan terhadap peraturan, memahami aktivitas database, dan memperoleh wawasan tentang adanya perbedaan dan anomali yang dapat menunjukkan masalah bisnis atau dugaan ancaman keamanan. Dalam aktivitas ini, Anda akan mengatur audit di tingkat server, meskipun juga tersedia di tingkat database.
Sebagai alternatif untuk audit SQL Server, Azure SQL Database memiliki audit Azure SQL. Ini didukung oleh audit SQL Server dan, seperti SQL Server, mendukung Audit Action Groups and Actions. Fitur audit melacak peristiwa database dan server dan menulis peristiwa ke log audit di penyimpanan Azure, Analitik Log, atau ke Azure Event Hubs. Jika Anda menunjuk ke akun penyimpanan Azure Blob, Anda dapat menyimpan dan menganalisis hasil Anda dalam file XEvents. Dengan Log Analytics, Anda membuka kemampuan untuk mengkueri log Anda dengan Kusto Query Language (KQL) dan memanfaatkan dasbor audit Analitik Log.
Mengonfigurasi audit
Dalam latihan sebelumnya untuk menyebarkan SQL Database, Anda menyiapkan audit di tingkat server, tetapi juga tersedia di tingkat database. Dalam latihan mendatang, Anda akan melihat cara mengakses dan menggunakan file yang dikirim ke penyimpanan Azure Blob, KQL, dan dasbor Log Analytics.
Selesaikan langkah-langkah berikut untuk menyiapkan ruang kerja Analitik Log:
Di bilah pencarian portal Azure, masukkan Analitik log, lalu pilih ruang kerja Analitik Log dari hasil. Panel ruang kerja Analitik Log akan muncul.
Pilih Buat. Menu Buat ruang kerja Analitik Log muncul.
Pada tab Dasar, masukkan nilai berikut untuk setiap pengaturan.
Pengaturan Nilai Detail Proyek Langganan Langganan Concierge Grup sumber daya Dari menu menurun, pilih [Grup sumber daya sandbox] Detail Instans Nama Masukkan azuresql-la Wilayah Pilih lokasi yang paling dekat dengan Anda dari daftar berikut Kotak pasir gratis memungkinkan Anda membuat sumber daya di subset wilayah global Azure. Pilih wilayah dari daftar berikut ini saat Anda membuat sumber daya:
- US Barat 2
- AS Tengah Bagian Selatan
- US Tengah
- AS Timur
- Eropa Barat
- Asia Tenggara
- Jepang Timur
- Brasil Selatan
- Australia Tenggara
- India Tengah
Pilih Tinjau + buat,tunggu sampai input Anda divalidasi, lalu pilih Buat. Tunggu hingga sumber daya disebarkan.
Pilih Buka sumber daya. Panel Gambaran Umum untuk ruang kerja Analitik Log Anda muncul.
Di portal Azure, buka database AdventureWorks Anda.
Di menu, di bagian Keamanan, pilih Pengauditan. Tinjau opsinya.
Anda dapat menerapkan audit di tingkat server, yang berlaku untuk semua database dalam server logika Azure SQL Database. Jika Anda juga menerapkan audit di tingkat database (yang akan Anda lakukan di unit ini), kedua audit terjadi secara paralel; satu tidak mengambil alih yang lain.
Pilih tombol slide untuk Mengaktifkan Pengauditan Azure SQL.
Pilih kotak centang Penyimpanan , lalu lengkapi bidang yang diperlukan:
- Untuk Langganan, dari daftar dropdown, pilih Langganan Concierge.
- Untuk Akun Penyimpanan, dari daftar dropdown, pilih akun yang dimulai dengan diikuti dengan
sql
string huruf dan angka acak. - Biarkan Jenis Autentikasi Penyimpanan sebagai opsi Kunci Akses Penyimpanan default.
Akun
sql
penyimpanan digunakan untuk mengumpulkan file log XEvent, yang disimpan sebagai kumpulan file blob dalam kontainer bernama sqldbauditlogs. Dalam aktivitas selanjutnya, Anda akan meninjau kontainer untuk mempelajari perbedaan file log dengan Analitik Log.Tip
Jika Anda tidak melihat akun penyimpanan apa pun, buat akun baru. Anda mungkin perlu me-refresh halaman Setelah beberapa menit sebelum halaman muncul.
Jika Anda akan mengaudit lingkungan produksi, pertimbangkan untuk memiliki akun penyimpanan terpisah untuk log audit.
Pilih Properti tingkat lanjut untuk memperluas bagian dan mengatur item konfigurasi berikut:
- Untuk Retensi (Hari), masukkan 7
- Untuk kunci akses Penyimpanan,pilih Primer.
Catatan
Jika Anda tidak melihat properti Tingkat Lanjut, pilih Simpan dari bilah perintah, lalu ulangi instruksi konfigurasi untuk halaman ini.
Pilih kotak centang Analitik Log dan lengkapi bidang yang diperlukan:
- Untuk Langganan, pilih Langganan Concierge dari daftar dropdown.
- Untuk Analitik Log, pilih ruang kerja Analitik Log yang Anda buat sebelumnya dalam latihan ini (asuresql-la).
Pilih Simpan.
Mungkin perlu beberapa menit untuk proses konfigurasi.
Kini Anda telah mengaktifkan audit untuk akun penyimpanan dan ruang kerja Analitik Log Azure. Nantinya, Anda akan menyelami lebih dalam kemampuan audit di Azure SQL. Anda akan melihat cara menganalisis log audit untuk melihat semua perubahan yang telah Anda buat di seluruh modul, serta beberapa kasus penggunaan menarik lainnya.
Ledger untuk Azure SQL Database
Fitur ledger menyediakan bukti perubahan, bukti kriptografi kemampuan integritas data dalam database Anda. Bukti ini dapat membantu menyederhanakan proses audit.
Ledger membantu melindungi data dari penyerang atau pengguna dengan hak istimewa tingkat tinggi, termasuk Administrator Database (DBA), administrator sistem, dan administrator cloud. Seperti halnya ledger tradisional, fitur ini mempertahankan data riwayat. Ketika transaksi dalam tabel ledger memodifikasi data, peristiwa secara kriptografis SHA-256 di-hash menggunakan struktur data pohon Merkle yang membuat hash akar yang mewakili semua baris dalam transaksi. Transaksi yang diproses database kemudian juga di-hash SHA-256 bersama-sama melalui struktur data pohon Merkle. Hasilnya adalah hash akar yang membentuk blok. Blok tersebut kemudian di-hash SHA-256 melalui akar hash dari blok tersebut, bersama dengan akar hash dari blok sebelumnya sebagai input ke fungsi hash. Hash tersebut membentuk blockchain. Jika baris diperbarui dalam database, nilai sebelumnya dipertahankan dan dilindungi dalam tabel riwayat. Ledger menyediakan rangkaian semua perubahan yang dilakukan pada database dari waktu ke waktu.
Fungsionalitas ledger diperkenalkan ke tabel dalam dua bentuk:
- Tabel ledger yang dapat diperbarui, yang memungkinkan Anda memperbarui dan menghapus baris dalam tabel Anda
- Tabel ledger khusus tambahan, yang hanya mengizinkan penyisipan ke tabel Anda
Baik tabel ledger yang dapat diperbarui dan tabel ledger hanya-tambahkan memberikan bukti perubahan dan kemampuan forensik digital.
Latihan menggunakan ledger untuk Azure SQL Database
Dalam latihan untuk membuat Azure SQL Database, kami menambahkan database yang disebut myLedgerDatabase
dan membuat tabel yang disebut Account.Balance
. Dalam latihan ini, kita akan menyisipkan data, membuat pembaruan pada data, dan mengkueri tabel riwayat dan tampilan ledger untuk melihat pelacakan yang terjadi dan hubungan antara tabel.
Buka SQL Server Management Studio dan sambungkan ke server logis Azure SQL Database Anda.
myLedgerDatabase
Klik kanan database, lalu pilih Kueri Baru.Masukkan nama
Nick Jones
sebagai nasabah baru dengan saldo awal sebesar $50.INSERT INTO [Account].[Balance] VALUES (1, 'Jones', 'Nick', 50);
Masukkan nama
John Smith
,Joe Smith
, danMary Michaels
sebagai nasabah baru dengan saldo awal masing-masing $500, $30, dan $200.INSERT INTO [Account].[Balance] VALUES (2, 'Smith', 'John', 500), (3, 'Smith', 'Joe', 30), (4, 'Michaels', 'Mary', 200);
Tampilkan tabel ledger
[Account].[Balance]
yang dapat diperbarui dan sebutkan kolom GENERATED ALWAYS yang ditambahkan ke tabel. Pilih Jalankan untuk menjalankan kueri Anda.SELECT [CustomerID] ,[LastName] ,[FirstName] ,[Balance] ,[ledger_start_transaction_id] ,[ledger_end_transaction_id] ,[ledger_start_sequence_number] ,[ledger_end_sequence_number] FROM [Account].[Balance];
Di jendela hasil, Anda akan melihat terlebih dahulu nilai yang disisipkan oleh perintah T-SQL, bersama dengan metadata sistem yang digunakan untuk tujuan silsilah data.
- Kolom
ledger_start_transaction_id
mencatat ID transaksi unik yang terkait dengan transaksi yang menyisipkan data. KarenaJohn
,Joe
, danMary
disisipkan menggunakan transaksi yang sama, mereka memiliki ID transaksi yang sama. - Kolom
ledger_start_sequence_number
mencatat urutan nilai yang disisipkan oleh transaksi.
- Kolom
Perbarui saldo
Nick
dari50
ke100
.UPDATE [Account].[Balance] SET [Balance] = 100 WHERE [CustomerID] = 1;
[Account].[Balance]
Lihat tampilan ledger, bersama dengan tampilan sistem ledger transaksi untuk mengidentifikasi pengguna yang membuat perubahan. Pilih Jalankan untuk menjalankan kueri.SELECT t.[commit_time] AS [CommitTime] , t.[principal_name] AS [UserName] , l.[CustomerID] , l.[LastName] , l.[FirstName] , l.[Balance] , l.[ledger_operation_type_desc] AS Operation FROM [Account].[Balance_Ledger] l JOIN sys.database_ledger_transactions t ON t.transaction_id = l.ledger_transaction_id ORDER BY t.commit_time DESC;
Saldo rekening
Nick
telah berhasil diperbarui dalam tabel ledger yang dapat diperbarui menjadi100
.
Tampilan ledger menunjukkan bahwa pembaruan tabel ledgernya adalahDELETE
baris asli dengan saldo50
. Saldo denganINSERT
baris baru yang sesuai dengan saldo100
menunjukkan saldo baru untukNick
.
Pemantauan
Ada dua aspek untuk memantau dan mengelola keamanan:
- Tingkat Azure
- Tingkat database atau server
Di Azure, Anda dapat menerapkan alat seperti log aktivitas dan audit kontrol akses berbasis peran.
Di Azure SQL Database, Anda dapat mengonfigurasi audit Azure SQL dan menerapkan tampilan manajemen dinamis, metrik, dan pemberitahuan untuk memantau peristiwa terkait keamanan. Misalnya, sys.event_log
memungkinkan Anda melacak jumlah koneksi yang gagal dan berhasil dan jumlah koneksi yang diblokir oleh firewall.
Microsoft menyarankan agar Anda mengonfigurasi Microsoft Defender untuk Cloud, termasuk menyiapkan pemberitahuan untuk Perlindungan Ancaman Tingkat Lanjut. Kami membahas elemen keamanan ini di bagian dan latihan berikutnya. Terakhir, Anda dapat menggunakan Pertahanan Microsoft untuk Cloud untuk memantau, mengelola, dan menerima rekomendasi tentang semua sumber daya di estat Azure Anda.
Penemuan & Klasifikasi Data
Layanan Penemuan & Klasifikasi Data membentuk paradigma perlindungan informasi baru untuk Azure SQL Database. Layanan ini bertujuan untuk melindungi data dan bukan hanya database. Paradigma ini meliputi:
- Penemuan dan rekomendasi untuk data yang berpotensi sensitif yang harus diklasifikasikan
- Kemampuan untuk terus menambahkan label ke kolom dengan menggunakan atribut metadata
- Kemampuan untuk mengaudit dan mengkueri akses data sensitif
Azure SQL menawarkan kebijakan Perlindungan Informasi SQL dan kebijakan Perlindungan Informasi Microsoft dalam klasifikasi data, dan Anda dapat memilih salah satu kebijakan ini berdasarkan kebutuhan Anda.
Tampilan portal hanya tersedia untuk Azure SQL, tetapi SQL Server mendukung fungsionalitas serupa melalui wizard di SQL Server Management Studio.
Untuk informasi selengkapnya, lihat Penemuan & Klasifikasi Data.
Microsoft Defender untuk Cloud
Pertahanan Microsoft untuk Cloud adalah paket terpadu yang menyediakan kemampuan keamanan SQL tingkat lanjut. Ini menyediakan satu lokasi masuk ke untuk mengaktifkan dan mengelola dua kemampuan utama:
- Penilaian kerentanan
- Perlindungan Tingkat Lanjut terhadap Ancaman
Penilaian kerentanan
Pada tingkat tertinggi, Penilaian Kerentanan SQL adalah layanan pemindaian yang memberikan visibilitas ke dalam status keamanan Anda dan memberikan langkah-langkah yang dapat ditindaklanjuti untuk mengatasi masalah potensial. Saat Anda mengonfigurasi pemindaian berulang berkala, Anda mengaktifkan layanan untuk memindai database Anda setiap tujuh hari dan memeriksa kerentanan apa pun. Anda kemudian dapat memilih untuk mengirim laporan tersebut ke admin, pemilik langganan, atau orang lain yang mungkin perlu diberi tahu tentang perubahan. Agar layanan ini beroperasi, Anda harus menentukan akun penyimpanan tempat hasilnya akan disimpan.
Perlindungan Tingkat Lanjut terhadap Ancaman
Dengan Perlindungan Ancaman Lanjutan, Anda dapat mendeteksi dan menanggapi potensi ancaman saat terjadi dengan menerima peringatan keamanan tentang aktivitas anomali. Perlindungan Ancaman Tingkat Lanjut menerapkan teknologi pemantauan dan pembelajaran mesin tingkat lanjut untuk mendeteksi apakah salah satu ancaman berikut telah terjadi:
- Injeksi SQL
- Kerentanan injeksi SQL
- Penyelundupan data
- Tindakan tidak aman
- Upaya brute force
- Login klien anomali
Dalam dua latihan berikutnya, Anda akan mendalami kemampuan dan skenario yang dilindungi oleh Pertahanan Microsoft untuk Cloud dan Azure SQL secara umum.
Keamanan tingkat baris
Keamanan Tingkat Baris memungkinkan Anda menggunakan keanggotaan grup atau konteks eksekusi untuk mengontrol akses ke baris dalam tabel database.
Keamanan Tingkat Baris (RLS) membantu Anda menerapkan pembatasan pada akses baris data. Misalnya, Anda dapat memastikan bahwa pekerja hanya mengakses baris data yang relevan dengan departemennya. Contoh lain adalah membatasi akses data pelanggan hanya ke data yang relevan dengan perusahaannya.
Logika pembatasan akses terletak di tingkat database daripada jauh dari data di tingkat aplikasi lain. Sistem database menerapkan pembatasan akses setiap kali akses data dicoba dari tingkat mana pun. Tindakan ini membuat sistem keamanan Anda lebih andal dan kuat dengan mengurangi luas permukaan sistem keamanan Anda.
RLS mendukung dua jenis predikat keamanan.
- Predikat filter secara diam-diam memfilter baris yang tersedia untuk operasi baca (SELECT, UPDATE, dan DELETE)
- Predikat blok secara eksplisit memblokir operasi tulis (SETELAH INSERT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE) yang melanggar predikat