Ringkasan kemampuan keamanan Azure SQL Database dan SQL Managed Instance

Berlaku untuk:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Artikel ini menguraikan dasar-dasar pengamanan tingkat data aplikasi menggunakan Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics. Strategi keamanan yang dideskripsikan mengikuti pendekatan mendalam pertahanan berlapis seperti yang ditunjukkan pada gambar di bawah ini, dan berpindah dari luar di:

Diagram of layered defense-in-depth. Customer data is encased in layers of network security, access management and threat and information protections.

Catatan

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

Keamanan jaringan

Microsoft Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics menyediakan layanan database relasional untuk aplikasi cloud dan perusahaan. Untuk membantu melindungi data pelanggan, firewall mencegah akses jaringan ke server hingga akses diberikan secara eksplisit berdasarkan alamat IP atau asal lalu lintas jaringan Virtual Azure.

Aturan firewall IP

Aturan firewall IP memberikan akses ke database berdasarkan alamat IP asal dari setiap permintaan. Untuk informasi selengkapnya, lihat Gambaran Umum Azure SQL Database dan aturan firewall Azure Synapse Analytics.

Aturan firewall jaringan virtual

Titik akhir layanan jaringan virtual memperluas konektivitas jaringan virtual Anda melalui tulang punggung Azure dan mengaktifkan Azure SQL Database untuk mengidentifikasi subnet jaringan virtual asal lalu lintas tersebut. Untuk mengizinkan lalu lintas mencapai Azure SQL Database, gunakan tag layanan SQL untuk mengizinkan lalu lintas keluar melalui Kelompok Keamanan Jaringan.

Aturan jaringan virtual mengaktifkan Azure SQL Database hanya menerima komunikasi yang dikirim dari subnet yang dipilih di dalam jaringan virtual.

Catatan

Mengontrol akses dengan aturan firewall tidak berlaku untuk SQL Managed Instance. Untuk informasi selengkapnya tentang konfigurasi jaringan yang diperlukan, lihat Menyambungkan ke instans terkelola

Manajemen akses

Penting

Mengelola database dan server di Azure dikontrol oleh penetapan peran akun pengguna portal Anda. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure di portal Microsoft Azure.

Autentikasi

Autentikasi adalah proses untuk membuktikan bahwa pengguna adalah yang mereka klaim. SQL Database dan SQL Managed Instance mendukung autentikasi dan autentikasi SQL dengan ID Microsoft Entra (sebelumnya Azure Active Directory). Instans Terkelola SQL juga mendukung autentikasi Windows untuk perwakilan Microsoft Entra.

  • Autentikasi SQL:

    Autentikasi SQL mengacu pada autentikasi pengguna saat menyambungkan ke Azure SQL Database atau Azure SQL Managed Instance menggunakan nama pengguna dan kata sandi. admin server masuk dengan nama pengguna dan kata sandi harus ditentukan ketika server sedang dibuat. Dengan menggunakan informasi masuk ini, admin server dapat mengautentikasi ke database apa pun di server atau instans tersebut sebagai pemilik database. Setelah itu, data masuk SQL dan pengguna tambahan dapat dibuat oleh admin server, yang memungkinkan pengguna untuk tersambung menggunakan nama pengguna dan kata sandi.

  • Autentikasi Microsoft Entra:

    Autentikasi Microsoft Entra adalah mekanisme untuk menyambungkan ke Azure SQL Database, Azure SQL Managed Instance , dan Azure Synapse Analytics dengan menggunakan identitas di ID Microsoft Entra. Autentikasi Microsoft Entra memungkinkan administrator mengelola identitas dan izin pengguna database secara terpusat bersama dengan layanan Azure lainnya di satu lokasi pusat. Ini meminimalkan penyimpanan kata sandi dan memungkinkan kebijakan rotasi kata sandi terpusat.

    Admin server yang disebut administrator Microsoft Entra harus dibuat untuk menggunakan autentikasi Microsoft Entra dengan SQL Database. Untuk informasi selengkapnya, lihat Koneksi ke SQL Database dengan autentikasi Microsoft Entra. Autentikasi Microsoft Entra mendukung akun terkelola dan federasi. Akun federasi mendukung pengguna dan grup Windows untuk domain pelanggan yang digabungkan dengan ID Microsoft Entra.

    Microsoft Entra mendukung beberapa opsi autentikasi yang berbeda, termasuk autentikasi multifaktor, autentikasi Windows Terintegrasi, dan Akses Bersyarkat.

  • Autentikasi Windows untuk perwakilan Microsoft Entra:

    Autentikasi Kerberos untuk perwakilan Microsoft Entra memungkinkan autentikasi Windows untuk Azure SQL Managed Instance. Autentikasi Windows untuk instans terkelola memberdayakan pelanggan untuk memindahkan layanan yang ada ke cloud sambil mempertahankan pengalaman pengguna yang mulus dan memberikan dasar untuk modernisasi infrastruktur.

    Untuk mengaktifkan autentikasi Windows untuk perwakilan Microsoft Entra, Anda akan mengubah penyewa Microsoft Entra Anda menjadi realm Kerberos independen dan membuat kepercayaan masuk di domain pelanggan. Pelajari bagaimana autentikasi Windows untuk Azure SQL Managed Instance diterapkan dengan ID Microsoft Entra dan Kerberos.

Penting

Mengelola database dan server di Azure dikontrol oleh penetapan peran akun pengguna portal Anda. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure di portal Microsoft Azure. Mengontrol akses dengan aturan firewall tidak berlaku untuk SQL Managed Instance. Harap lihat artikel berikut tentang menyambungkan ke instans terkelola untuk informasi lebih lanjut tentang konfigurasi jaringan yang diperlukan.

Authorization

Otorisasi mengacu pada pengendalian akses pada sumber daya dan perintah dalam database. Hal ini dilakukan dengan menetapkan izin kepada pengguna dalam database dalam Azure SQL Database atau Azure SQL Managed Instance. Izin idealnya dikelola dengan menambahkan akun pengguna ke peran basis data dan menetapkan izin tingkat basis data ke peran tersebut. Atau, pengguna individu juga dapat diberikan izin tingkat objek tertentu. Untuk informasi selengkapnya, lihat Data masuk dan pengguna

Sebagai praktik terbaik, buat peran khusus saat diperlukan. Tambahkan pengguna ke peran dengan hak istimewa paling sedikit yang diperlukan untuk melakukan fungsi pekerjaannya. Jangan menetapkan izin secara langsung kepada pengguna. Akun administrator server adalah anggota peran db_owner bawaan, yang memiliki izin luas dan hanya boleh diberikan kepada beberapa pengguna dengan tugas administratif. Untuk lebih membatasi cakupan dari apa yang dapat dilakukan pengguna, EXECUTE AS dapat digunakan untuk menentukan konteks eksekusi dari modul yang dipanggil. Mengikuti praktik terbaik ini juga merupakan langkah mendasar menuju Pemisahan Tugas.

Keamanan tingkat baris

Keamanan Tingkat Baris memungkinkan pelanggan mengontrol akses ke baris dalam tabel database berdasarkan karakteristik pengguna yang menjalankan kueri (misalnya, keanggotaan grup atau konteks eksekusi). Keamanan Tingkat Baris juga dapat digunakan untuk mengimplementasikan konsep keamanan berbasis Label kustom. Untuk informasi selengkapnya, lihat Keamanan Tingkat Baris.

Diagram showing that Row-Level Security shields individual rows of a SQL database from access by users via a client app.

Perlindungan terhadap ancaman

SQL Database dan SQL Managed Instance mengamankan data pelanggan dengan menyediakan kemampuan audit dan deteksi ancaman.

Pengauditan SQL di log Azure Monitor dan Azure Event Hubs

Pengauditan SQL Database dan SQL Managed Instance melacak aktivitas database dan membantu menjaga kepatuhan dengan standar keamanan dengan merekam peristiwa database ke log audit di akun penyimpanan Azure milik pelanggan. Pengauditan memungkinkan pengguna untuk memantau aktivitas database yang sedang berlangsung, serta menganalisis dan menyelidiki aktivitas riwayat untuk mengidentifikasi potensi ancaman atau dugaan pelanggaran penyalahgunaan dan keamanan. Untuk informasi selengkapnya, lihat Memulai dengan Pengauditan SQL Database.

Perlindungan Tingkat Lanjut terhadap Ancaman

Perlindungan Ancaman Tingkat Lanjut sedang menganalisis log Anda untuk mendeteksi perilaku yang tidak biasa dan upaya yang berpotensi berbahaya untuk mengakses atau mengeksploitasi database. Pemberitahuan dibuat untuk aktivitas mencurigakan seperti injeksi SQL, infiltrasi data potensial, dan serangan brute force atau untuk anomali dalam pola akses untuk menangkap eskalasi hak istimewa dan penggunaan informasi masuk yang dilanggar. Pemberitahuan ditampilkan dari Pertahanan Microsoft untuk Cloud, di mana detail aktivitas mencurigakan disediakan dan rekomendasi untuk penyelidikan lebih lanjut yang diberikan bersama dengan tindakan untuk memitigasi ancaman. Perlindungan Ancaman Tingkat Lanjut dapat diaktifkan per server dengan biaya tambahan. Untuk informasi selengkapnya, lihat Mulai dengan Perlindungan Ancaman Tingkat Lanjut SQL Database.

Diagram showing SQL Threat Detection monitoring access to the SQL database for a web app from an external attacker and malicious insider.

Perlindungan dan enkripsi informasi

Keamanan Lapisan Transportasi (Enkripsi-dalam-transit)

SQL Database, SQL Managed Instance, dan Azure Synapse Analytics mengamankan data pelanggan dengan mengenkripsi data yang bergerak dengan Keamanan Lapisan Transportasi (TLS).

SQL Database, SQL Managed Instance, dan Azure Synapse Analytics memberlakukan enkripsi (SSL/TLS) setiap saat untuk semua koneksi. Ini memastikan semua data dienkripsi "dalam transit" antara klien dan server terlepas dari pengaturan Enkripsi atau TrustServerCertificate dalam string koneksi.

Sebagai praktik terbaik, merekomendasikan bahwa dalam string koneksi yang digunakan oleh aplikasi, Anda menentukan koneksi terenkripsi dan tidak memercayai sertifikat server. Ini memaksa aplikasi Anda untuk memverifikasi sertifikat server dan dengan demikian mencegah aplikasi Anda rentan terhadap serangan tipe menengah.

Misalnya saat menggunakan driver ADO.NET ini dicapai melalui Encrypt=True dan TrustServerCertificate=False. Jika Anda mendapatkan string koneksi dari portal Microsoft Azure, string tersebut akan memiliki pengaturan yang benar.

Penting

Perhatikan bahwa beberapa driver non-Microsoft mungkin tidak menggunakan TLS secara default atau mengandalkan versi TLS yang lebih lama (<1.2) untuk berfungsi. Dalam kasus ini server masih memungkinkan Anda untuk menyambungkan ke database Anda. Namun, kami rekomendasikan Anda mengevaluasi risiko keamanan yang memungkinkan driver dan aplikasi tersebut tersambung ke SQL Database, terutama jika Anda menyimpan data sensitif.

Untuk informasi lebih lanjut tentang TLS dan konektivitas, lihat pertimbangan TLS

Enkripsi Data Transparan (Enkripsi tidak aktif)

Enkripsi data transparan (TDE) untuk SQL Database, SQL Managed Instance, dan Azure Synapse Analytics menambahkan lapisan keamanan untuk membantu melindungi data tidak aktif dari akses tidak sah atau offline ke file atau cadangan mentah. Skenario umum termasuk pencurian pusat data atau pembuangan perangkat keras atau media yang tidak aman seperti drive disk dan pita cadangan. TDE mengenkripsi seluruh database menggunakan algoritma enkripsi AES, yang tidak mewajibkan pengembang aplikasi membuat perubahan apa pun pada aplikasi yang ada.

Di Azure, semua database yang baru dibuat dienkripsi secara default dan kunci enkripsi database dilindungi oleh sertifikat server bawaan. Pemeliharaan dan rotasi sertifikat dikelola oleh layanan dan tidak memerlukan input dari pengguna. Pelanggan yang lebih suka mengontrol kunci enkripsi dapat mengelola kunci di Azure Key Vault.

Manajemen kunci dengan Azure Key Vault

DukunganBring Your Own Key (BYOK) untuk Enkripsi Data Transparan (TDE) memungkinkan pelanggan untuk mengambil kepemilikan manajemen dan rotasi kunci menggunakan Azure Key Vault, sistem manajemen kunci eksternal berbasis cloud Azure. Jika akses database ke brankas kunci dicabut, database tidak dapat didekripsi dan dibaca ke dalam memori. Azure Key Vault menyediakan platform manajemen kunci pusat, memanfaatkan modul keamanan perangkat keras (HSM) yang dipantau dengan ketat, dan memungkinkan pemisahan tugas antara manajemen kunci dan data untuk membantu memenuhi persyaratan kepatuhan keamanan.

Always Encrypted (Enkripsi sedang digunakan)

Diagram showing the basics of the Always Encrypted feature. An SQL database with a lock is only accessed by an app containing a key.

Always Encrypted adalah fitur yang dirancang untuk melindungi data sensitif yang disimpan dalam kolom database tertentu dari akses (misalnya, nomor kartu kredit, nomor identifikasi nasional/regional, atau data yang perlu diketahui ). Ini termasuk administrator database atau pengguna istimewa lainnya yang berwenang untuk mengakses database untuk melakukan tugas manajemen, tetapi tidak perlu mengakses data tertentu di kolom terenkripsi. Data selalu dienkripsi, yang berarti data terenkripsi hanya didekripsi untuk diproses oleh aplikasi klien dengan akses ke kunci enkripsi. Kunci enkripsi tidak pernah diekspos ke SQL Database atau SQL Managed Instance dan dapat disimpan baik di Windows Certificate Store atau di Azure Key Vault.

Penyelubungan data dinamis

Diagram showing dynamic data masking. A business app sends data to a SQL database which masks the data before sending it back to the business app.

Masking data dinamis untuk membatasi eksposur data sensitif dengan menutupinya dari pengguna tanpa hak istimewa. Masking data dinamis secara otomatis menemukan data yang berpotensi sensitif di Azure SQL Database dan SQL Managed Instance dan memberikan rekomendasi yang dapat ditindak untuk menutupi bidang tersebut, dengan dampak minimal ke lapisan aplikasi. Ini bekerja dengan menyembunyikan data sensitif dalam set hasil kueri di atas bidang database yang ditunjuk, sementara data dalam database tidak diubah. Untuk informasi selengkapnya, lihat Mulai dengan SQL Database dan masking data dinamis SQL Managed Instance.

Manajemen keamanan

Penilaian kerentanan

Penilaian kerentanan adalah layanan yang mudah dikonfigurasi yang dapat menemukan, melacak, dan membantu meremediasi potensi kerentanan database dengan tujuan untuk secara proaktif meningkatkan keamanan database secara keseluruhan. Penilaian Kerentanan (Vulnerability Assessment - VA) adalah bagian dari penawaran Pertahanan Microsoft untuk SQL, yang merupakan paket terpadu untuk kemampuan keamanan SQL tingkat lanjut. Penilaian kerentanan dapat diakses dan dikelola melalui portal Pertahanan Microsoft untuk SQL pusat.

Penemuan dan klasifikasi data

Penemuan dan klasifikasi data (saat ini dalam pratinjau) menyediakan kemampuan dasar yang dibangun ke dalam Azure SQL Database dan SQL Managed Instance untuk menemukan, mengklasifikasikan, dan memberi label pada data sensitif dalam database Anda. Menemukan dan mengklasifikasikan data anda yang paling sensitif (bisnis/finansial, kesehatan, data pribadi, dll.) dapat memainkan peran penting dalam perawakan perlindungan Informasi organisasi Anda. Ini dapat berfungsi sebagai infrastruktur untuk:

  • Berbagai skenario keamanan, seperti pemantauan (pengauditan) dan pemberitahuan tentang akses anomali ke data sensitif.
  • Mengontrol akses ke, dan menambah keamanan database yang berisi data yang sangat sensitif.
  • Membantu memenuhi standar privasi data dan persyaratan kepatuhan peraturan.

Untuk informasi selengkapnya, lihat Mulai dengan penemuan dan klasifikasi data.

Kepatuhan

Selain fitur dan fungsionalitas di atas yang dapat membantu aplikasi Anda memenuhi berbagai persyaratan keamanan, Azure SQL Database juga berpartisipasi dalam audit reguler, dan telah disertifikasi terhadap sejumlah standar kepatuhan. Untuk informasi selengkapnya, lihat Microsoft Azure Trust Center, di mana Anda dapat menemukan daftar terbaru sertifikasi kepatuhan SQL Database.

Langkah berikutnya