Tutorial: Mengamankan database pada Azure SQL Database

Berlaku untuk:Azure SQL Database

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat aturan firewall tingkat server dan tingkat database
  • Mengonfigurasi administrator Microsoft Entra
  • Mengelola akses pengguna dengan autentikasi SQL, autentikasi Microsoft Entra, dan string koneksi aman
  • Aktifkan fitur keamanan, seperti Pertahanan Microsoft untuk SQL, pengauditan, penyamaran data, dan enkripsi

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Azure SQL Database mengamankan data dengan memungkinkan Anda:

  • Membatasi akses menggunakan aturan firewall
  • Menggunakan mekanisme autentikasi yang memerlukan identitas
  • Menggunakan otorisasi dengan keanggotaan dan izin berbasis peran
  • Mengaktifkan fitur keamanan

Catatan

Azure SQL Managed Instance diamankan menggunakan aturan keamanan jaringan dan titik akhir privat seperti yang dijelaskan dalam Azure SQL Managed Instance dan arsitektur konektivitas.

Untuk mempelajari selengkapnya, lihat artikel Ringkasan keamanan Azure SQL Database dan kapabilitas.

Tip

Modul Learn gratis ini menunjukkan kepada Anda cara Mengamankan database Anda di Azure SQL Database.

Prasyarat

Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut dipenuhi:

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Masuk ke portal Microsoft Azure.

Untuk semua langkah di tutorial ini, masuk ke portal Microsoft Azure

Membuat aturan firewall

Database di Azure SQL Database dilindungi oleh firewall di Azure. Secara default, semua koneksi ke server dan database ditolak. Untuk mempelajari selengkapnya, lihat aturan firewall tingkat server dan tingkat database.

Atur Izinkan akses ke layanan Azure ke NONAKTIF untuk konfigurasi yang paling aman. Kemudian, buat IP khusus (penerapan klasik) untuk sumber daya yang perlu disambungkan, seperti Azure VM atau layanan cloud, dan hanya izinkan akses alamat IP tersebut melalui firewall. Jika Anda menggunakan model penerapan Azure Resource Manager, alamat IP publik khusus diperlukan untuk setiap sumber daya.

Catatan

SQL Database berkomunikasi melalui port 1433. Jika Anda mencoba terhubung dari dalam jaringan perusahaan, lalu lintas keluar melalui port 1433 mungkin tidak diizinkan oleh firewall jaringan Anda. Jika demikian, Anda tidak dapat tersambung ke server kecuali administrator membuka port 1433.

Menyiapkan aturan firewall tingkat server

Aturan firewall IP tingkat server berlaku untuk semua database dalam server yang sama.

Untuk menyiapkan aturan firewall tingkat server:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Catatan

    Pastikan untuk menyalin nama server Anda yang sepenuhnya memenuhi syarat (seperti yourserver.database.windows.net) untuk digunakan nanti dalam tutorial.

  2. Pilih Jaringan di bawah Pengaturan. Pilih tab Akses Publik, lalu pilih Jaringan yang dipilih di bawah Akses jaringan publik untuk menampilkan bagian Aturan firewall.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. Pilih Tambahkan IP klien pada toolbar untuk menambahkan alamat IP Anda saat ini ke aturan firewall IP baru. Aturan firewall IP dapat membuka port 1433 untuk satu alamat IP atau rentang alamat IP.

  4. Pilih OK untuk menyimpan pengaturan firewall Anda.

Sekarang Anda bisa menyambungkan ke database apa pun di server dengan satu alamat IP atau sekumpulan alamat IP tertentu.

Menyiapkan aturan firewall database

Aturan firewall tingkat database hanya berlaku untuk database secara individual. Database akan mempertahankan aturan ini selama kegagalan server. Aturan firewall tingkat database hanya dapat dikonfigurasi menggunakan pernyataan T-SQL, dan hanya setelah Anda mengonfigurasi aturan firewall tingkat server.

Untuk menyiapkan aturan firewall tingkat database:

  1. Anda harus tersambung ke database, misalnya menggunakan SQL Server Management Studio.

  2. Di Object Explorer, klik kanan database, lalu pilih Kueri Baru.

  3. Di jendela kueri, tambahkan pernyataan ini, lalu ubah alamat IP menjadi alamat IP umum Anda:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. Pada bilah alat, pilih Jalankan untuk membuat aturan firewall.

Catatan

Anda juga dapat membuat aturan firewall tingkat server di SSMS dengan menggunakan perintah sp_set_firewall_rule, meskipun Anda harus tersambung ke database master.

Membuat admin Microsoft Entra

Pastikan Anda menggunakan domain terkelola Microsoft Entra ID (sebelumnya Azure Active Directory) yang sesuai. Untuk memilih domain Anda, gunakan sudut kanan atas portal Azure. Proses ini mengonfirmasi langganan yang sama digunakan untuk ID Microsoft Entra dan server logis yang menghosting database atau gudang data Anda.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Untuk mengatur administrator Microsoft Entra:

  1. Di portal Azure, pada halaman server SQL, pilih ID Microsoft Entra dari menu sumber daya, lalu pilih Atur admin untuk membuka panel ID Microsoft Entra..

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Penting

    Anda harus menjadi "Administrator Global" untuk melakukan tugas ini.

  2. Pada panel ID Microsoft Entra, cari dan pilih pengguna atau grup Microsoft Entra dan pilih Pilih. Semua anggota dan grup organisasi Microsoft Entra Anda tercantum, dan entri berwarna abu-abu tidak didukung sebagai administrator Microsoft Entra. Lihat Fitur dan batasan Microsoft Entra.

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Penting

    Kontrol akses berbasis peran Azure (Azure RBAC) hanya berlaku untuk portal dan tidak disebarluaskan ke SQL Server.

  3. Di bagian atas halaman admin Microsoft Entra, pilih Simpan.

    Proses mengubah administrator mungkin memakan waktu beberapa menit. Administrator baru akan muncul di bidang admin Microsoft Entra.

Catatan

Saat mengatur admin Microsoft Entra, nama admin baru (pengguna atau grup) tidak dapat ada sebagai login atau pengguna dalam database master . Jika ada, penyiapan akan gagal dan perubahan akan dikembalikan, yang menunjukkan bahwa nama admin tersebut sudah ada. Karena login server atau pengguna bukan bagian dari ID Microsoft Entra, upaya apa pun untuk menghubungkan pengguna menggunakan autentikasi Microsoft Entra gagal.

Untuk informasi tentang mengonfigurasi ID Microsoft Entra, lihat:

Mengelola akses database

Kelola akses database dengan menambahkan pengguna ke database, atau mengizinkan akses pengguna dengan string koneksi yang aman. String koneksi berguna untuk aplikasi eksternal. Untuk mempelajari selengkapnya, lihat Mengelola login dan akun pengguna dan autentikasi Microsoft Entra.

Untuk menambahkan pengguna, pilih tipe autentikasi database:

  • Untuk autentikasi SQL, gunakan nama pengguna dan kata sandi untuk login dan hanya valid dalam konteks database tertentu dalam server

  • Autentikasi Microsoft Entra, gunakan identitas yang dikelola oleh ID Microsoft Entra

Autentikasi SQL

Untuk menambahkan pengguna dengan autentikasi SQL:

  1. Anda harus tersambung ke database, misalnya menggunakan SQL Server Management Studio.

  2. Di Object Explorer, klik kanan database, lalu pilih Kueri Baru.

  3. Di jendela kueri, masukkan perintah berikut ini:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Pada bilah alat, pilih Jalankan untuk membuat pengguna.

  5. Secara default, pengguna dapat tersambung ke database, tetapi tidak memiliki izin untuk membaca atau menulis data. Untuk memberikan izin ini, jalankan perintah berikut di jendela kueri baru:

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Catatan

Buat akun non-administrator di tingkat database, kecuali akun tersebut perlu menjalankan tugas administrator seperti membuat pengguna baru.

Autentikasi Microsoft Entra

Karena Azure SQL Database tidak mendukung prinsipal server Microsoft Entra (masuk), pengguna database yang dibuat dengan akun Microsoft Entra dibuat sebagai pengguna database mandiri. Pengguna database mandiri tidak terkait dengan login dalam master database, bahkan jika ada login dengan nama yang sama. Identitas Microsoft Entra dapat berupa untuk pengguna individual atau grup. Untuk informasi selengkapnya, lihat Pengguna database mandiri, membuat database Anda portabel dan meninjau tutorial Microsoft Entra tentang cara mengautentikasi menggunakan ID Microsoft Entra.

Catatan

Pengguna database (tidak termasuk administrator) tidak dapat dibuat menggunakan portal Microsoft Azure. Peran Microsoft Entra tidak menyebar ke server SQL, database, atau gudang data. Mereka hanya digunakan untuk mengelola sumber daya Azure dan tidak berlaku untuk izin database.

Misalnya, peran Kontributor SQL Server tidak memberikan akses untuk menyambungkan ke database atau gudang data. Izin ini harus diberikan dalam database menggunakan pernyataan T-SQL.

Penting

Karakter khusus seperti titik dua : atau ampersan & tidak didukung dalam nama pengguna di pernyataan CREATE LOGIN dan CREATE USER T-SQL.

Untuk menambahkan pengguna dengan autentikasi Microsoft Entra:

  1. Koneksi ke server Anda di Azure menggunakan akun Microsoft Entra dengan setidaknya UBAH IZIN PENGGUNA APA PUN.

  2. Di Object Explorer, klik kanan database, lalu pilih Kueri Baru.

  3. Di jendela kueri, masukkan perintah berikut dan ubah <Azure_AD_principal_name> ke nama utama pengguna Microsoft Entra atau nama tampilan grup Microsoft Entra:

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Catatan

Pengguna Microsoft Entra ditandai dalam metadata database dengan jenis E (EXTERNAL_USER) dan jenis X (EXTERNAL_GROUPS) untuk grup. Untuk informasi selengkapnya, lihat sys.databases_principals.

String koneksi yang aman

Untuk memastikan koneksi yang aman dan terenkripsi antara aplikasi klien dan Microsoft Azure SQL Database, string koneksi harus dikonfigurasi agar:

  • Meminta koneksi terenkripsi
  • Tidak memercayai sertifikat server

Koneksi dibuat menggunakan Transport Layer Security (TLS) dan mengurangi risiko serangan man-in-the-middle. String koneksi tersedia per database dan telah dikonfigurasi sebelumnya untuk mendukung driver klien seperti ADO.NET, JDBC, ODBC, dan PHP. Untuk informasi tentang TLS dan konektivitas, lihat pertimbangan TLS.

Untuk menyalin string koneksi yang aman:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

  2. Di halaman Ringkasan, pilih Tampilkan string koneksi database.

  3. Pilih tab driver, lalu salin string koneksi lengkap.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

Mengaktifkan fitur keamanan

Microsoft Azure SQL Database menyediakan fitur keamanan yang diakses menggunakan portal Microsoft Azure. Fitur-fitur ini tersedia untuk database dan server, kecuali untuk masking data, yang hanya tersedia di database. Untuk mempelajari lebih lanjut, lihat Pertahanan Microsoft untuk SQL, Pengauditan, Penyamaran data dinamis, dan Enkripsi data transparan.

Microsoft Defender untuk SQL

Fitur Pertahanan Microsoft untuk SQL mendeteksi potensi ancaman saat terjadi dan memberikan pemberitahuan keamanan saat terjadi aktivitas yang tidak wajar. Pengguna dapat menjelajahi peristiwa mencurigakan ini menggunakan fitur audit, dan menentukan apakah peristiwa itu dapat mengakses, melanggar, atau mengeksploitasi data di database. Pengguna juga diberikan ringkasan keamanan yang mencakup penilaian kerentanan, serta alat penemuan dan klasifikasi data.

Catatan

Contoh ancamannya adalah injeksi SQL, sebuah proses saat penyerang menyuntikkan SQL berbahaya ke dalam input aplikasi. Aplikasi kemudian tanpa sadar dapat mengeksekusi SQL berbahaya dan memungkinkan penyerang mengakses untuk melanggar atau memodifikasi data di database.

Untuk mengaktifkan Pertahanan Microsoft untuk SQL:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

  2. Pada halaman Ringkasan, pilih link Nama server. Halaman server akan terbuka.

  3. Di halaman server SQL, temukan bagian Keamanan dan pilih Pertahanan Microsoft untuk Cloud.

    1. Pilih ON di bagian Pertahanan Microsoft untuk SQL untuk mengaktifkan fitur tersebut. Pilih akun penyimpanan untuk menyimpan hasil penilaian kerentanan. Kemudian pilih Simpan.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      Anda juga dapat mengonfigurasi email untuk menerima peringatan keamanan, detail penyimpanan, dan jenis deteksi ancaman.

  4. Kembali ke halaman database SQL dalam database Anda dan pilih Pertahanan Microsoft untuk Cloud di bagian Keamanan. Di sini Anda akan menemukan berbagai indikator keamanan yang tersedia untuk database.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

Jika aktivitas anomali terdeteksi, Anda akan menerima email berisi informasi tentang peristiwa tersebut. Ini termasuk sifat aktivitas, database, server, waktu peristiwa, kemungkinan penyebab, dan tindakan yang direkomendasikan untuk menyelidiki dan memitigasi potensi ancaman. Jika email tersebut diterima, pilih link Log Audit Azure SQL untuk meluncurkan portal Microsoft Azure dan menampilkan catatan audit yang relevan untuk waktu peristiwa terjadi.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

Audit

Fitur pengauditan melacak peristiwa database dan menulis peristiwa ke log audit di penyimpanan Azure, log Azure Monitor, atau ke hub peristiwa. Audit membantu menjaga kepatuhan terhadap peraturan, memahami aktivitas database, dan memperoleh wawasan tentang adanya perbedaan dan anomali yang dapat menunjukkan dugaan ancaman keamanan.

Untuk mengaktifkan pengauditan:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

  2. Di bagian Keamanan, pilih Pengauditan.

  3. Di bawah Pengaturan pengauditan, atur nilai berikut ini:

    1. Atur Pengauditan ke ON.

    2. Pilih Tujuan log audit sebagai salah satu hal berikut ini:

      • Penyimpanan, akun penyimpanan Azure tempat log peristiwa disimpan dan dapat diunduh sebagai file .xel

        Tip

        Gunakan akun penyimpanan yang sama untuk semua database yang diaudit untuk mendapatkan hasil maksimal dari mengaudit templat laporan.

      • Analitik Log, yang secara otomatis menyimpan peristiwa untuk kueri atau analisis lebih lanjut

        Catatan

        Ruang kerja Analitik Log diperlukan untuk mendukung fitur tingkat lanjut seperti analitik, aturan pemberitahuan kustom, dan ekspor Excel atau Power BI. Tanpa ruang kerja, hanya editor kueri yang tersedia.

      • Event Hub, yang memungkinkan acara dirutekan untuk digunakan dalam aplikasi lain

    3. Pilih Simpan.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Sekarang Anda bisa memilih Tampilkan log audit untuk menampilkan data peristiwa database.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

Penting

Lihat pengauditan SQL Database tentang cara mengkustomisasi lebih lanjut peristiwa audit menggunakan PowerShell atau REST API.

Penyelubungan data dinamis

Fitur masking data akan secara otomatis menyembunyikan data sensitif di database Anda.

Untuk mengaktifkan masking data:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

  2. Di bagian Keamanan, pilih Masking Data Dinamis.

  3. Di bawah Pengaturan masking data dinamis, pilih Tambahkan masking untuk menambahkan aturan masking. Azure akan secara otomatis mengisi skema database, tabel, dan kolom yang tersedia untuk dipilih.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Pilih Simpan. Informasi yang dipilih sekarang diberi masking untuk privasi.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

Enkripsi data transparan

Fitur enkripsi secara otomatis mengenkripsi data tidak aktif, dan tidak memerlukan perubahan pada aplikasi yang mengakses database terenkripsi. Untuk database baru, enkripsi dilakukan secara default. Anda juga dapat mengenkripsi data menggunakan SSMS dan fitur Selalu dienkripsi.

Untuk mengaktifkan atau memverifikasi enkripsi:

  1. Di portal Microsoft Azure, pilih database SQL dari menu sebelah kiri, dan pilih database Anda di halaman database SQL.

  2. Di bagian Keamanan, pilih Enkripsi data transparan.

  3. Jika perlu, atur Enkripsi data ke ON. Pilih Simpan.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

Catatan

Untuk menampilkan status enkripsi, sambungkan ke database menggunakan SSMS dan kueri encryption_statekolom tampilan sys.dm_database_encryption_keys. Status 3 menunjukkan database dienkripsi.

Catatan

Beberapa item yang dianggap sebagai konten pelanggan, seperti nama tabel, nama objek, dan nama indeks, mungkin dikirimkan dalam file log untuk dukungan dan pemecahan masalah oleh Microsoft.

Tip

Siap untuk mulai mengembangkan aplikasi .NET? Modul Learn gratis ini menunjukkan kepada Anda cara Mengembangkan dan mengonfigurasi aplikasi ASP.NET yang meminta Azure SQL Database, termasuk pembuatan database sederhana.

Langkah selanjutnya

Lanjutkan ke tutorial berikutnya untuk mempelajari cara menerapkan distribusi geografis.