Menggunakan titik akhir layanan virtual dan aturan untuk server di Azure SQL Database
Berlaku untuk: Azure SQL Database Azure Synapse Analytics
Aturan jaringan virtual adalah fitur keamanan firewall yang mengontrol apakah server untuk database dan kumpulan elastis Anda di Azure SQL Database atau untuk database kumpulan SQL khusus (sebelumnya SQL DW) di Azure Synapse Analytics menerima komunikasi yang dikirim dari subnet tertentu di jaringan virtual. Artikel ini menjelaskan mengapa aturan jaringan virtual terkadang merupakan opsi terbaik untuk mengizinkan komunikasi ke database Anda dengan aman di SQL Database dan Azure Synapse Analytics.
Catatan
Artikel ini berlaku untuk SQL Database dan Azure Synapse Analytics. Untuk memudahkan, istilah database mengacu pada kedua database di SQL Database dan Azure Synapse Analytics. Demikian juga, referensi apa pun ke server merujuk ke server logis yang menghosting SQL Database dan Azure Synapse Analytics.
Untuk membuat aturan jaringan virtual, pertama-tama harus ada titik akhir layanan jaringan virtual agar aturan tersebut dapat dirujuk.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Membuat aturan jaringan virtual
Jika Anda hanya ingin membuat aturan jaringan virtual, Anda dapat langsung melanjutkan ke langkah-langkah dan penjelasan di artikel ini nanti.
Detail tentang aturan jaringan virtual
Bagian ini menjelaskan beberapa detail tentang aturan jaringan virtual.
Hanya satu wilayah geografis
Setiap titik akhir layanan jaringan virtual hanya berlaku untuk satu wilayah Azure. Titik akhir tidak memungkinkan wilayah lain untuk menerima komunikasi dari subnet.
Setiap aturan jaringan virtual terbatas pada wilayah tempat titik akhir yang mendasarinya penerapannya.
Tingkat server, bukan tingkat database
Setiap aturan jaringan virtual berlaku untuk seluruh server Anda, bukan hanya untuk satu database tertentu di server. Dengan kata lain, aturan jaringan virtual berlaku di tingkat server, bukan di tingkat database.
Sebaliknya, aturan IP dapat berlaku di salah satu tingkat.
Peran administrasi keamanan
Ada pemisahan peran keamanan dalam administrasi titik akhir layanan jaringan virtual. Tindakan diperlukan dari masing-masing peran berikut:
- Admin Jaringan (peran Kontributor Jaringan): Aktifkan titik akhir.
- Admin Database (peran Kontributor SQL Server): Perbarui daftar kontrol akses (ACL) untuk menambahkan subnet yang diberikan ke server.
Alternatif RBAC Azure
Peran Admin Jaringan dan Admin Database memiliki lebih banyak kemampuan daripada yang diperlukan untuk mengelola aturan jaringan virtual. Hanya sebagian kemampuan mereka yang diperlukan.
Anda memiliki opsi untuk menggunakan kontrol akses berbasis peran (RBAC) di Azure untuk membuat satu peran kustom yang hanya memiliki subset kemampuan yang diperlukan. Peran kustom dapat digunakan alih-alih melibatkan Admin Jaringan atau Admin Database. Area permukaan pemaparan keamanan Anda lebih rendah jika Anda menambahkan pengguna ke peran kustom versus menambahkan pengguna ke dua peran administrator utama lainnya.
Catatan
Dalam beberapa kasus, database di SQL Database dan subnet jaringan virtual berada dalam langganan yang berbeda. Dalam kasus ini, Anda harus memastikan konfigurasi berikut:
- Kedua langganan harus berada di penyewa Microsoft Entra yang sama.
- Pengguna memiliki izin yang diperlukan untuk memulai operasi, seperti mengaktifkan titik akhir layanan dan menambahkan subnet jaringan virtual ke server yang diberikan.
- Kedua langganan harus memiliki penyedia Microsoft.Sql yang terdaftar.
Batasan
Untuk SQL Database, fitur aturan jaringan virtual memiliki batasan berikut:
- Di firewall untuk database Anda di SQL Database, setiap aturan jaringan virtual mereferensikan subnet. Semua subnet yang direferensikan ini harus dihosting di wilayah geografis yang sama yang menghosting database tersebut.
- Setiap server dapat memiliki hingga 128 entri ACL untuk jaringan virtual apa pun.
- Aturan jaringan virtual hanya berlaku untuk jaringan virtual Azure Resource Manager dan bukan untuk jaringan model penyebaran klasik.
- Mengaktifkan titik akhir layanan jaringan virtual ke SQL Database juga mengaktifkan titik akhir untuk Azure Database for MySQL dan Azure Database for PostgreSQL. Dengan titik akhir diatur ke AKTIF, upaya untuk menyambungkan dari titik akhir ke instans Azure Database for MySQL atau Azure Database for PostgreSQL mungkin gagal.
- Alasan yang mendasarinya adalah bahwa Azure Database for MySQL dan Azure Database for PostgreSQL kemungkinan tidak memiliki aturan jaringan virtual yang dikonfigurasi. Anda harus mengonfigurasi aturan jaringan virtual Azure Database for MySQL dan Azure Database for PostgreSQL.
- Untuk menentukan aturan firewall jaringan virtual di server logis SQL yang sudah dikonfigurasi dengan titik akhir privat, atur Tolak akses jaringan publik ke Tidak.
- Pada firewall, rentang alamat IP berlaku untuk item jaringan berikut, tetapi aturan jaringan virtual tidak:
Berbagai pertimbangan saat menggunakan titik akhir layanan
Saat Anda menggunakan titik akhir layanan untuk SQL Database, tinjau pertimbangan berikut:
- Keluar ke IP publik Azure SQL Database diperlukan. Grup keamanan jaringan (NSG) harus dibuka ke IP SQL Database untuk memungkinkan konektivitas. Anda dapat melakukan ini dengan menggunakan tag layanan NSG untuk SQL Database.
ExpressRoute
Jika Anda menggunakan ExpressRoute dari tempat Anda, untuk peering publik atau peering Microsoft, Anda harus mengidentifikasi alamat IP NAT yang digunakan. Untuk peering publik, setiap sirkuit ExpressRoute secara default menggunakan dua alamat IP NAT yang diterapkan ke lalu lintas layanan Azure saat lalu lintas memasuki backbone jaringan Microsoft Azure. Untuk peering Microsoft, alamat IP NAT yang digunakan disediakan oleh pelanggan atau penyedia layanan. Untuk mengizinkan akses ke sumber daya layanan, Anda harus mengizinkan alamat IP publik ini di pengaturan firewall IP sumber daya. Untuk menemukan alamat IP sirkuit ExpressRoute peering publik Anda, buka tiket dukungan dengan ExpressRoute melalui portal Azure. Untuk mempelajari NAT selengkapnya untuk peering publik dan Microsoft ExpressRoute, lihat Persyaratan NAT untuk peering publik Azure.
Untuk mengizinkan komunikasi dari sirkuit Anda ke SQL Database, Anda harus membuat aturan jaringan IP untuk alamat IP publik NAT Anda.
Dampak penggunaan titik akhir layanan jaringan virtual dengan Azure Storage
Azure Storage telah menerapkan fitur yang sama yang memungkinkan Anda membatasi konektivitas ke akun Azure Storage Anda. Jika Anda memilih untuk menggunakan fitur ini dengan akun Azure Storage yang sedang digunakan oleh SQL Database, Anda dapat mengalami masalah. Berikutnya adalah daftar dan diskusi terkait fitur SQL Database dan Azure Synapse Analytics yang terpengaruh oleh ini.
Pernyataan PolyBase dan COPY Azure Synapse Analytics
Pernyataan PolyBase dan COPY umumnya digunakan untuk memuat data ke Azure Synapse Analytics dari akun Azure Storage untuk konsumsi data throughput tinggi. Jika akun Azure Storage tempat Anda memuat data membatasi akses hanya ke sekumpulan subnet jaringan virtual, konektivitas saat Anda menggunakan pernyataan PolyBase dan COPY ke akun penyimpanan akan putus. Untuk mengaktifkan skenario impor dan ekspor dengan menggunakan COPY dan PolyBase dengan Azure Synapse Analytics yang tersambung ke Azure Storage yang diamankan ke jaringan virtual, ikuti langkah-langkah di bagian ini.
Prasyarat
- Pasang Azure PowerShell. Untuk informasi selengkapnya, lihat Menginstal modul Azure PowerShell.
- Jika Anda memiliki akun penyimpanan v1 tujuan umum atau Azure Blob Storage, Anda harus terlebih dahulu melakukan peningkatan ke v2 tujuan umum dengan mengikuti langkah-langkah di Meningkatkan ke akun penyimpanan v2 tujuan umum.
- Anda harus mengaktifkan Izinkan layanan Microsoft tepercaya untuk mengakses akun penyimpanan ini di bawah menu pengaturan Jaringan Virtual dan Firewall akun Azure Storage. Mengaktifkan konfigurasi ini akan memungkinkan pernyataan PolyBase dan COPY untuk tersambung ke akun penyimpanan dengan menggunakan autentikasi yang kuat di mana lalu lintas jaringan tetap berada di backbone Azure. Untuk informasi selengkapnya, lihat panduan ini.
Penting
Modul PowerShell Azure Resource Manager masih didukung oleh Azure SQL Database, tetapi semua pengembangan di masa mendatang adalah untuk Az.Sql
modul. Modul AzureRM akan terus menerima perbaikan bug hingga setidaknya bulan Desember 2020. Argumen untuk perintah dalam modul Az dan dalam modul AzureRm secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitas keduanya, lihat Memperkenalkan modul Azure PowerShell Az baru.
Langkah-langkah
Jika Anda memiliki kumpulan SQL khusus mandiri (sebelumnya SQL DW), daftarkan server SQL Anda dengan MICROSOFT Entra ID dengan menggunakan PowerShell:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
Langkah ini tidak diperlukan untuk kumpulan SQL khusus dalam ruang kerja Azure Synapse Analytics. Identitas terkelola yang ditetapkan sistem (SA-MI) dari ruang kerja adalah anggota dari peran Administrator Synapse dan dengan demikian memiliki hak yang lebih tinggi pada kumpulan SQL khusus dari ruang kerja.
Buat Akun Penyimpanan v2 tujuan umum dengan mengikuti langkah-langkah di Membuat akun penyimpanan.
- Jika Anda memiliki akun penyimpanan v1 tujuan umum atau Azure Blob Storage, Anda harus terlebih dahulu melakukan peningkatan ke v2 dengan mengikuti langkah-langkah di Meningkatkan ke akun penyimpanan v2 tujuan umum.
- Untuk mengetahui masalah umum tentang Azure Data Lake Storage Gen2, lihat Masalah umum dengan Azure Data Lake Storage Gen2.
Di halaman akun penyimpanan, pilih Kontrol akses (IAM).
Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.
Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Pengaturan Nilai Peran Kontributor Data Blob Penyimpanan Tetapkan akses ke Pengguna, grup, atau perwakilan layanan Anggota Server atau ruang kerja yang menghosting kumpulan SQL khusus yang telah Anda daftarkan dengan ID Microsoft Entra Catatan
Hanya anggota dengan hak istimewa Pemilik di akun penyimpanan yang dapat melakukan langkah ini. Untuk mengetahui berbagai peran bawaan Azure, lihat Peran bawaan Azure.
Untuk mengaktifkan konektivitas PolyBase ke akun Azure Storage:
Buat kunci induk database jika sebelumnya Anda belum membuatnya.
CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
Buat kredensial lingkup database dengan IDENTITY = 'Identitas Layanan Terkelola'.
CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
Tidak perlu menentukan SECRET dengan kunci akses Azure Storage karena mekanisme ini menggunakan Identitas Terkelola secara rahasia. Langkah ini tidak diperlukan untuk kumpulan SQL khusus dalam ruang kerja Azure Synapse Analytics. Identitas terkelola yang ditetapkan sistem (SA-MI) dari ruang kerja adalah anggota dari peran Administrator Synapse dan dengan demikian memiliki hak yang lebih tinggi pada kumpulan SQL khusus dari ruang kerja.
Nama IDENTITY harus 'Identitas Layanan Terkelola' agar konektivitas PolyBase berfungsi dengan akun Azure Storage yang diamankan ke jaringan virtual.
Buat sumber data eksternal dengan skema
abfss://
untuk menyambungkan ke akun penyimpanan v2 tujuan umum Anda menggunakan PolyBase.CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
- Jika Anda sudah memiliki tabel eksternal yang terkait dengan akun penyimpanan v1 tujuan umum atau Blob Storage, Anda harus terlebih dahulu menghilangkan tabel eksternal tersebut. Lalu hilangkan sumber data eksternal terkait. Berikutnya, buat sumber data eksternal dengan skema
abfss://
yang tersambung ke akun penyimpanan v2 tujuan umum, seperti yang ditunjukkan sebelumnya. Lalu buat ulang semua tabel eksternal dengan menggunakan sumber data eksternal baru ini. Anda dapat menggunakan Buat dan Terbitkan Panduan Skrip untuk menghasilkan skrip buat untuk semua tabel eksternal untuk kemudahan. - Untuk informasi selengkapnya tentang skema
abfss://
, lihat Menggunakan URI Azure Data Lake Storage Gen2. - Untuk informasi selengkapnya tentang perintah T-SQL, lihat MEMBUAT SUMBER DATA EKSTERNAL.
- Jika Anda sudah memiliki tabel eksternal yang terkait dengan akun penyimpanan v1 tujuan umum atau Blob Storage, Anda harus terlebih dahulu menghilangkan tabel eksternal tersebut. Lalu hilangkan sumber data eksternal terkait. Berikutnya, buat sumber data eksternal dengan skema
Membuat kueri seperti biasa dengan menggunakan tabel eksternal.
Audit blob SQL Database
Audit Azure SQL dapat menulis log audit SQL ke akun penyimpanan Anda sendiri. Jika akun penyimpanan ini menggunakan fitur titik akhir layanan jaringan virtual, lihat cara menulis audit ke akun penyimpanan di belakang VNet dan firewall.
Menambahkan aturan firewall jaringan virtual ke server Anda
Dulu sebelum fitur ini ditingkatkan, Anda diharuskan untuk mengaktifkan titik akhir layanan jaringan virtual sebelum dapat menerapkan aturan jaringan virtual langsung di firewall. Titik akhir tersebut mengaitkan subnet jaringan virtual yang diberikan ke database di SQL Database. Pada Januari 2018, Anda dapat menghindari persyaratan ini dengan mengatur bendera IgnoreMissingVNetServiceEndpoint. Sekarang, Anda dapat menambahkan aturan firewall jaringan virtual ke server Anda tanpa mengaktifkan titik akhir layanan jaringan virtual.
Hanya mengatur aturan firewall tidak membantu mengamankan server. Anda juga harus mengaktifkan titik akhir layanan jaringan virtual agar keamanan berlaku. Saat Anda mengaktifkan titik akhir layanan, subnet jaringan virtual Anda mengalami waktu henti hingga ia menyelesaikan transisi dari nonaktif ke aktif. Periode waktu henti ini terutama berlaku dalam konteks jaringan virtual besar. Anda dapat menggunakan bendera IgnoreMissingVNetServiceEndpoint untuk mengurangi atau menghilangkan waktu henti selama transisi.
Anda bisa mengatur bendera IgnoreMissingVNetServiceEndpoint dengan menggunakan PowerShell. Untuk informasi selengkapnya, lihat PowerShell untuk membuat titik akhir layanan jaringan virtual dan aturan untuk SQL Database.
Catatan
Untuk petunjuk serupa di Azure Synapse Analytics, lihat Aturan firewall IP Azure Synapse Analytics
Gunakan portal Microsoft Azure untuk membuat aturan jaringan virtual
Bagian ini menggambarkan cara menggunakan portal Microsoft Azure untuk membuat aturan jaringan virtual di database Anda di SQL Database. Aturan ini memberi tahu database Anda untuk menerima komunikasi dari subnet tertentu yang telah ditandai sebagai titik akhir layanan jaringan virtual.
Catatan
Jika Anda ingin menambahkan titik akhir layanan ke aturan firewall jaringan virtual server Anda, pertama-tama pastikan bahwa titik akhir layanan diaktifkan untuk subnet.
Jika titik akhir layanan tidak diaktifkan untuk subnet, portal akan meminta Anda untuk mengaktifkannya. Pilih tombol Aktifkan pada panel yang sama tempat Anda menambahkan aturan.
Prasyarat
Anda harus sudah memiliki subnet yang ditandai dengan nama jenis titik akhir layanan jaringan virtual tertentu yang relevan dengan SQL Database.
- Nama jenis titik akhir yang relevan adalah Microsoft.Sql.
- Jika subnet Anda mungkin tidak ditandai dengan nama jenis, lihat Memverifikasi subnet Anda adalah titik akhir.
Langkah-langkah portal Microsoft Azure
Masuk ke portal Azure.
Cari dan pilih server SQL, lalu pilih server Anda. Di bawah Keamanan, pilih Jaringan.
Di bawah tab Akses publik, pastikan Akses jaringan publik diatur ke Pilih jaringan, jika tidak , pengaturan Jaringan virtual disembunyikan. Pilih + Tambahkan jaringan virtual yang ada di bagian Jaringan virtual.
Di panel Buat/Perbarui baru, isi kotak dengan nama sumber daya Azure Anda.
Tip
Anda harus menyertakan awalan alamat yang benar untuk subnet Anda. Anda dapat menemukan nilai Awalan alamat di portal. Buka Semua sumber daya>Semua jenis>Jaringan virtual. Filter menampilkan jaringan virtual Anda. Pilih jaringan virtual Anda, lalu pilih Subnet. Kolom RENTANG ALAMAT memiliki awalan alamat yang Anda butuhkan.
Lihat aturan jaringan virtual yang dihasilkan pada panel Firewall.
Set Izinkan layanan dan sumber daya Azure untuk mengakses server ini ke Tidak.
Penting
Jika Anda membiarkan Izinkan layanan dan sumber daya Azure untuk mengakses server ini dicentang, server Anda menerima komunikasi dari subnet apa pun di dalam batas Azure. Itu adalah komunikasi yang berasal dari salah satu alamat IP yang dikenali sebagai alamat dalam rentang yang didefinisikan untuk pusat data Azure. Membiarkan kontrol diaktifkan mungkin merupakan akses yang berlebihan dari sudut pandang keamanan. Fitur titik akhir layanan Microsoft Azure Virtual Network yang berkoordinasi dengan fitur aturan jaringan virtual SQL Database bersama-sama dapat mengurangi area permukaan keamanan Anda.
Pilih tombol OK di dekat bagian bawah panel.
Catatan
Status atau kondisi berikut berlaku untuk aturan:
- Siap: Menunjukkan bahwa operasi yang Anda mulai telah berhasil.
- Gagal: Menunjukkan bahwa operasi yang Anda mulai telah gagal.
- Dihapus: Hanya berlaku untuk
Delete
operasi dan menunjukkan bahwa aturan telah dihapus dan tidak lagi berlaku. - InProgress: Menunjukkan bahwa operasi sedang berlangsung. Aturan lama berlaku selama operasi dalam keadaan ini.
Menggunakan PowerShell untuk membuat aturan jaringan virtual
Skrip juga dapat membuat aturan jaringan virtual dengan menggunakan cmdlet PowerShell New-AzSqlServerVirtualNetworkRule
atau az network vnet create. Untuk informasi selengkapnya, lihat PowerShell untuk membuat titik akhir layanan jaringan virtual dan aturan untuk SQL Database.
Menggunakan REST API untuk membuat aturan jaringan virtual
Secara internal, cmdlet PowerShell untuk tindakan jaringan virtual SQL memanggil REST API. Anda dapat memanggil REST API secara langsung. Untuk informasi selengkapnya, lihat Aturan jaringan virtual: Operasi.
Memecahkan masalah kesalahan 40914 dan 40615
Kesalahan koneksi 40914 berkaitan dengan aturan jaringan virtual, seperti yang ditetapkan pada panel Firewall di portal Microsoft Azure.
Kesalahan 40615 bersifat serupa. Bedanya, ia berkaitan dengan aturan alamat IP pada firewall.
Kesalahan 40914
Teks pesan: "Tidak dapat membuka server '[nama server]' diminta oleh proses masuk. Klien tidak diperbolehkan mengakses server."
Deskripsi kesalahan: Klien berada dalam subnet yang memiliki titik akhir server jaringan virtual. Namun, server tidak memiliki aturan jaringan virtual yang memberikan hak kepada subnet untuk berkomunikasi dengan database.
Resolusi kesalahan: Pada panel Firewall portal Microsoft Azure, gunakan kontrol aturan jaringan virtual untuk menambahkan aturan jaringan virtual untuk subnet.
Kesalahan 40615
Teks pesan: "Tidak dapat membuka server '{0}' diminta oleh proses masuk. Klien dengan alamat IP '{1}' tidak diizinkan untuk mengakses server."
Deskripsi kesalahan: Klien mencoba menyambungkan dari alamat IP yang tidak berwenang untuk tersambung ke server. Firewall server tidak memiliki aturan alamat IP yang mengizinkan klien untuk berkomunikasi dari alamat IP yang diberikan ke database.
Resolusi kesalahan: Masukkan alamat IP klien sebagai aturan IP. Lakukan ini dengan menggunakan panel Firewall di portal Microsoft Azure.