Bagikan melalui


aturan firewall IP untuk Azure SQL Database dan Azure Synapse

Aplikasi ke:Azure SQL DatabaseAzure Synapse Analytics

Saat Anda membuat server baru di Azure SQL Database atau Azure Synapse Analytics bernama mysqlserver, misalnya, firewall tingkat server memblokir semua akses ke titik akhir publik untuk server (yang dapat diakses di mysqlserver.database.windows.net). Untuk kesederhanaan, SQL Database digunakan untuk merujuk ke SQL Database dan Azure Synapse Analytics. Artikel ini tidak berlaku untuk Azure SQL Managed Instance. Untuk informasi tentang konfigurasi jaringan, lihat Hubungkan aplikasi Anda ke Azure SQL Managed Instance.

Catatan

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

Cara firewall bekerja

Upaya koneksi dari internet dan Azure harus melewati firewall sebelum mencapai server atau database Anda, seperti yang ditunjukkan diagram berikut.

Diagram dari firewall Azure SQL Database.

Penting

Azure Synapse hanya mendukung aturan firewall IP tingkat server. Itu tidak mendukung aturan firewall IP tingkat basis data.

Aturan firewall IP tingkat server

Aturan ini memungkinkan klien untuk mengakses seluruh server Anda, yang mana, semua database dikelola server. Aturan disimpan dalam master database. Jumlah maksimum aturan firewall IP tingkat server dibatasi hingga 256 untuk server. Jika Anda mengaktifkan pengaturan Memungkinkan Layanan Azure dan sumber daya untuk mengakses server ini, ini dihitung sebagai satu aturan firewall untuk server.

Anda dapat mengonfigurasi aturan firewall IP tingkat server dengan menggunakan portal Azure, PowerShell, atau pernyataan Transact-SQL.

Catatan

Jumlah maksimum aturan firewall IP tingkat server dibatasi hingga 256 saat mengonfigurasi menggunakan portal Azure.

  • Untuk menggunakan portal atau PowerShell, Anda harus menjadi pemilik dari langganan atau kontributor dari langganan.
  • Untuk menggunakan Transact-SQL, Anda harus tersambung ke database master sebagai login utama tingkat server atau sebagai administrator Microsoft Entra. (Aturan firewall IP tingkat server harus terlebih dahulu dibuat oleh pengguna yang memiliki izin tingkat Azure.)

Catatan

Secara bawaan, selama pembuatan server SQL logis baru dari portal Azure, pengaturan Allow Azure Services dan sumber daya untuk mengakses server ini diatur ke No.

Aturan firewall IP tingkat basis data

Aturan firewall IP pada tingkat database mengizinkan klien untuk mengakses database (aman) tertentu. Anda membuat aturan untuk setiap database (termasuk master database), dan aturan disimpan dalam database individual.

  • Anda hanya dapat membuat dan mengelola aturan firewall IP tingkat database untuk master dan database pengguna dengan menggunakan pernyataan Transact-SQL dan hanya setelah Anda mengonfigurasi firewall tingkat server pertama.
  • Jika Anda menetapkan rentang alamat IP dalam aturan firewall IP taraf basis data yang di luar rentang dalam aturan firewall IP taraf server, hanya klien yang memiliki alamat IP dalam rentang taraf basis data yang dapat mengakses basis data.
  • Nilai defaultnya adalah hingga 256 aturan firewall IP pada tingkat database. Untuk informasi selengkapnya tentang mengonfigurasi aturan firewall IP tingkat database, lihat contoh nanti di artikel ini dan lihat sp_set_database_firewall_rule (Azure SQL Database).

Rekomendasi cara untuk mengatur aturan firewall

Gunakan aturan firewall IP tingkat database jika memungkinkan. Praktik ini meningkatkan keamanan dan membuat database Anda lebih portabel. Gunakan aturan firewall IP tingkat server untuk administrator. Gunakan juga saat Anda memiliki banyak database yang memiliki persyaratan akses yang sama, dan Anda tidak ingin mengonfigurasi setiap database secara individual.

Catatan

Untuk informasi tentang database portabel dalam konteks kelangsungan bisnis, lihat Konfigurasi dan kelola keamanan Azure SQL Database untuk pemulihan geografis atau failover.

Aturan firewall IP tingkat server versus tingkat database

Haruskah pengguna dari satu database sepenuhnya terisolasi dari database lain?

Jika ya, gunakan aturan firewall IP tingkat database untuk memberikan akses. Metode ini menghindari penggunaan aturan firewall IP tingkat server, yang mengizinkan akses melalui firewall ke semua basis data. Itu akan mengurangi kedalaman pertahanan Anda.

Apakah pengguna di alamat IP memerlukan akses ke semua database?

Jika ya, gunakan aturan firewall IP tingkat server untuk mengurangi berapa kali Anda harus mengonfigurasi aturan firewall IP.

Apakah orang atau tim yang mengatur aturan firewall IP hanya memiliki akses melalui portal Azure, PowerShell, atau REST API?

Jika demikian, Anda harus menggunakan aturan firewall IP pada tingkat server. Aturan firewall IP tingkat database hanya dapat dikonfigurasi melalui Transact-SQL.

Apakah orang atau tim yang mengonfigurasi aturan firewall IP dilarang memiliki izin tingkat tinggi di tingkat database?

Jika demikian, gunakan aturan firewall IP tingkat server. Anda memerlukan setidaknya izin CONTROL DATABASE di tingkat database untuk mengonfigurasi aturan firewall IP tingkat database melalui Transact-SQL.

Apakah orang atau tim yang mengonfigurasi atau mengaudit aturan firewall IP mengelola aturan firewall IP secara terpusat untuk banyak (mungkin ratusan) database?

Dalam skenario ini, praktik terbaik ditentukan oleh kebutuhan dan lingkungan Anda. Aturan firewall IP tingkat server lebih mudah dikonfigurasi, tetapi pembuatan skrip dapat mengonfigurasi aturan di tingkat database. Dan bahkan jika Anda menggunakan aturan firewall IP tingkat server, Anda mungkin perlu mengaudit aturan firewall IP tingkat database untuk melihat apakah pengguna dengan izin CONTROL pada database membuat aturan firewall IP tingkat database.

Bisakah saya menggunakan campuran aturan firewall IP tingkat server dan tingkat database?

Ya. Beberapa pengguna, seperti administrator, mungkin memerlukan aturan firewall IP level-server. Pengguna lainnya, seperti pengguna aplikasi database, mungkin memerlukan aturan firewall IP tingkat database.

Koneksi dari internet

Saat komputer mencoba untuk terhubung ke server Anda dari internet, firewall terlebih dahulu memeriksa alamat IP asal dari permintaan terhadap aturan firewall IP tingkat basis data untuk basis data yang diminta koneksi.

  • Jika alamat ada di dalam rentang yang ditentukan dalam aturan firewall IP pada tingkat basis data, koneksi diberikan ke database yang mengandung aturan tersebut.
  • Jika alamat tidak dalam rentang yang ditentukan di aturan firewall IP tingkat basis data, firewall memeriksa aturan firewall IP tingkat server. Jika alamat berada dalam rentang yang ada di aturan firewall IP tingkat server, koneksi diizinkan. Aturan firewall IP tingkat server diterapkan pada semua database yang dikelola oleh server.
  • Jika alamat tidak termasuk dalam rentang yang terdapat dalam aturan firewall IP level basis data atau aturan firewall IP pada suatu level server, permintaan koneksi akan gagal.

Catatan

Untuk mengakses Azure SQL Database dari komputer lokal Anda, pastikan firewall pada jaringan dan komputer lokal Anda mengizinkan komunikasi keluar pada port TCP 1433.

Koneksi dari dalam Azure

Untuk memungkinkan aplikasi yang dihosting di dalam Azure terhubung ke server SQL, Anda perlu mengaktifkan koneksi Azure. Untuk melakukan ini, buat aturan firewall dengan alamat IP awal dan akhir yang diatur ke 0.0.0.0. Aturan ini hanya berlaku untuk Azure SQL Database.

Ketika aplikasi dari Azure mencoba menyambungkan ke server, firewall memeriksa apakah koneksi Azure diizinkan dengan memverifikasi aturan firewall ini ada. Ini dapat diaktifkan langsung melalui panel portal Azure dengan mengubah Perbolehkan layanan dan sumber daya Azure untuk mengakses server ini ke ON pada pengaturan Firewalls dan jaringan virtual. Mengalihkan pengaturan ke AKTIF membuat aturan firewall masuk untuk IP 0.0.0.0 - 0.0.0.0 bernama AllowAllWindowsAzureIps. Aturan dapat dilihat dalam tampilan master database Anda. Gunakan PowerShell atau Azure CLI untuk membuat aturan firewall dengan alamat IP awal dan akhir yang diatur ke 0.0.0.0 jika Anda tidak menggunakan portal.

Peringatan

Mengaktifkan opsi ini memungkinkan koneksi dari semua layanan Azure, termasuk layanan yang beroperasi dalam langganan Azure pelanggan lain. Aturan ini tidak membatasi akses ke langganan atau grup sumber daya Anda — sumber daya Azure apa pun dengan konektivitas keluar ke Azure SQL Database dapat tersambung. Saat Anda mengaktifkan pengaturan ini, pastikan izin masuk dan pengguna Anda membatasi akses hanya untuk pengguna yang berwenang.

Layanan Azure berikut ini biasanya menggunakan aturan ini untuk menyambungkan ke Azure SQL Database:

  • Azure App Service dan Azure Functions
  • Azure Data Factory
  • Azure Stream Analytics
  • Azure Logic Apps
  • Azure Power BI
  • Azure AI services

Untuk keamanan yang ditingkatkan, pertimbangkan untuk menggunakan titik akhir layanan jaringan virtual atau titik akhir privat , bukan aturan AllowAllWindowsAzureIps . Alternatif ini membatasi konektivitas ke subnet atau jaringan privat tertentu alih-alih mengizinkan semua alamat IP Azure.

Izin

Untuk membuat dan mengelola aturan firewall IP untuk Azure SQL Server, Anda harus memiliki salah satu peran berikut:

Buat dan kelola aturan firewall IP

Anda membuat pengaturan firewall tingkat server pertama dengan menggunakan portal Azure atau secara terprogram dengan menggunakan Azure PowerShell, Azure CLI, atau Azure REST API. Anda membuat dan mengelola aturan firewall IP tingkat server tambahan dengan menggunakan metode atau Transact-SQL ini.

Penting

Aturan firewall IP tingkat database hanya dapat dibuat dan dikelola dengan menggunakan Transact-SQL.

Untuk meningkatkan kinerja, aturan firewall IP tingkat server untuk sementara di-cache di tingkat database. Untuk memperbarui cache, lihat DBCC FLUSHAUTHCACHE.

Petunjuk / Saran

Anda dapat menggunakan Auditing untuk Azure SQL Database dan Azure Synapse Analytics untuk mengaudit perubahan firewall tingkat server dan tingkat database.

Gunakan portal Azure untuk mengelola aturan firewall IP tingkat server

Untuk mengatur aturan firewall IP tingkat server di portal Azure, buka halaman gambaran umum untuk database atau server Anda.

Petunjuk / Saran

Untuk tutorial, lihat Quickstart: Membuat database tunggal - Azure SQL Database.

Dari halaman ringkasan database

  1. Untuk mengatur aturan firewall IP tingkat server dari halaman gambaran umum database, pilih Atur firewall server pada toolbar, seperti yang ditunjukkan gambar berikut.

    Screenshot pengaturan firewall server yang ditetapkan di portal Azure.

    Halaman Jaringan untuk server terbuka.

  2. Tambahkan aturan di bagian Aturan firewall untuk menambahkan alamat IP komputer yang Anda gunakan, lalu pilih Simpan. Aturan firewall IP tingkat server dibuat untuk alamat IP Anda saat ini.

    Cuplikan layar memperlihatkan halaman Jaringan tempat Anda dapat mengatur aturan firewall IP tingkat server.

Dari halaman ikhtisar server

Halaman ikhtisar untuk server Anda terbuka. Ini menunjukkan nama server yang sepenuhnya memenuhi syarat (seperti mynewserver20170403.database.windows.net) dan menyediakan opsi untuk konfigurasi lebih lanjut.

  1. Untuk mengatur aturan tingkat server dari halaman ini, pilih Jaringan dari menu Pengaturan di sisi kiri.

  2. Tambahkan aturan di bagian Aturan firewall untuk menambahkan alamat IP komputer yang Anda gunakan, lalu pilih Simpan. Aturan firewall IP tingkat server dibuat untuk alamat IP Anda saat ini.

Menggunakan Transact-SQL untuk mengelola aturan firewall IP

Tampilan katalog atau prosedur tersimpan Tingkat Deskripsi
sys.firewall_rules pelayan Menampilkan aturan firewall IP level-server saat ini
sp_atur_aturan_firewall pelayan Membuat atau memperbarui aturan firewall IP tingkat server
sp_hapus_aturan_firewall pelayan Menghapus aturan firewall IP level-server
sys.database_firewall_rules Basis data Menampilkan aturan firewall IP pada tingkat basis data saat ini.
sp_set_database_firewall_rule Basis data Membuat atau memperbarui aturan firewall IP pada tingkat database
sp_delete_database_firewall_rule Database Menghapus aturan firewall IP tingkat basis data

Contoh berikut meninjau aturan yang ada, memungkinkan rentang alamat IP di server Contoso, dan menghapus aturan firewall IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Berikutnya, tambahkan aturan firewall IP level-server.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Untuk menghapus aturan firewall IP tingkat server, jalankan prosedur tersimpan sp_delete_firewall_rule . Contoh berikut menghapus aturan ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Gunakan PowerShell untuk mengelola aturan firewall IP level-server

Catatan

Artikel ini menggunakan modul Az PowerShell Azure, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.

Penting

Modul PowerShell Azure Resource Manager (AzureRM) tidak digunakan lagi pada 29 Februari 2024. Semua pengembangan di masa mendatang harus menggunakan modul Az.Sql. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan. Modul AzureRM tidak lagi dipertahankan atau didukung. Argumen untuk perintah dalam modul Az PowerShell dan dalam modul AzureRM secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitasnya, lihat Memperkenalkan modul Az PowerShell baru.

Cmdlet Tingkat Deskripsi
Dapatkan-AzSqlServerFirewallRule pelayan Mengembalikan aturan firewall tingkat server saat ini
New-AzSqlServerFirewallRule pelayan Membuat aturan firewall pada level server baru
Set-AzSqlServerFirewallRule pelayan Memperbarui properti aturan firewall tingkat server yang ada
Remove-AzSqlServerFirewallRule pelayan Menghapus aturan firewall tingkat server

Contoh berikut menggunakan PowerShell untuk mengatur aturan firewall IP level-server:

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Petunjuk / Saran

Untuk $servername, tentukan nama server dan bukan nama DNS yang sepenuhnya memenuhi syarat (misalnya, tentukan mysqldbserver alih-alih mysqldbserver.database.windows.net).

Untuk contoh PowerShell dalam konteks mulai cepat, lihat sampel Azure PowerShell untuk Azure SQL Database dan Menggunakan PowerShell untuk membuat database tunggal dan mengonfigurasi aturan firewall tingkat server.

Gunakan CLI untuk mengelola aturan firewall IP tingkat server

Cmdlet Tingkat Deskripsi
az sql server aturan firewall buat pelayan Membuat aturan firewall untuk IP server
az sql server daftar aturan firewall pelayan Buat daftar aturan firewall IP pada server
az sql server firewall-rule tampilkan pelayan Tunjukkan detail aturan firewall IP
az sql server perbarui aturan firewall pelayan Pembaruan aturan firewall IP
az sql server hapus aturan firewall pelayan Hapus aturan firewall IP

Contoh berikut menggunakan CLI untuk mengatur aturan firewall IP level-server:

az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255

Petunjuk / Saran

Untuk $servername, tentukan nama server dan bukan nama DNS yang sepenuhnya memenuhi syarat. Misalnya, gunakan mysqldbserver, bukan mysqldbserver.database.windows.net.

Untuk contoh CLI dalam konteks mulai cepat, lihat sampel Azure CLI untuk Azure SQL Database dan Buat database tunggal dan konfigurasikan aturan firewall menggunakan Azure CLI.

Untuk Azure Synapse Analytics, lihat contoh berikut:

Cmdlet Tingkat Deskripsi
az synapse workspace firewall-rule create (perintah untuk membuat aturan firewall di workspace Azure Synapse) pelayan Membuat aturan firewall
az synapse workspace firewall-rule delete pelayan Hapus aturan firewall
az synapse ruang kerja daftar aturan firewall pelayan Daftar semua aturan firewall
Perintah untuk menampilkan aturan firewall di az synapse workspace: az synapse workspace firewall-rule show pelayan Dapatkan aturan firewall
az synapse workspace firewall-rule update pelayan Perbarui aturan firewall
az synapse workspace firewall-rule wait pelayan Tempatkan CLI dalam status tunggu hingga kondisi aturan firewall terpenuhi

Contoh berikut menggunakan CLI untuk mengatur aturan firewall IP tingkat server di Azure Synapse:

az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Gunakan REST API untuk mengelola aturan firewall IP level-server

API Tingkat Deskripsi
Mencantumkan aturan firewall pelayan Menampilkan aturan firewall IP level-server saat ini
Membuat atau memperbarui aturan firewall pelayan Membuat atau memperbarui aturan firewall IP tingkat server
Hapus aturan firewall pelayan Menghapus aturan firewall IP level-server
Dapatkan aturan firewall pelayan Mengambil aturan firewall IP di tingkat server

Memahami latensi pembaruan firewall

Model autentikasi server memiliki latensi 5 menit untuk setiap perubahan pengaturan keamanan, kecuali jika database bersifat contained dan tidak memiliki mitra failover. Perubahan yang dilakukan pada database mandiri tanpa mitra failover bersifat instan. Untuk database terkandung dengan mitra failover, setiap pembaruan keamanan dilakukan seketika pada database utama, tetapi database sekunder dapat memakan waktu hingga 5 menit untuk mencerminkan perubahan.

Tabel berikut ini menjelaskan latensi perubahan pengaturan keamanan berdasarkan jenis database dan konfigurasi failover:

Model autentikasi Failover dikonfigurasi Latensi untuk perubahan pengaturan keamanan Instans laten
Autentikasi Server Ya 5 menit semua database
Autentikasi Server Tidak. 5 menit semua database
Database yang terkandung Ya 5 menit database sekunder
Database yang terkandung Tidak. tidak ada tidak ada

Memperbarui aturan firewall secara manual

Jika Anda perlu melihat aturan firewall diperbarui lebih cepat dari latensi 5 menit, Anda dapat me-refresh aturan firewall secara manual. Masuk ke instans database yang memerlukan aturannya diperbarui, dan jalankan DBCC FLUSHAUTHCACHE. Ini akan menyebabkan instans database menghapus cache lokalnya dan menyegarkan aturan firewall.

DBCC FLUSHAUTHCACHE[;]

Pemecahan masalah firewall database

Pertimbangkan poin-poin berikut ketika akses ke Azure SQL Database tidak berperilaku seperti yang Anda harapkan.

  • Konfigurasi firewall lokal:

    Sebelum komputer Anda dapat mengakses Azure SQL Database, Anda mungkin perlu membuat pengecualian firewall pada komputer Anda untuk port TCP 1433. Untuk membuat koneksi di dalam batas cloud Azure, Anda mungkin harus membuka port tambahan. Untuk informasi selengkapnya, lihat bagian "Basis Data SQL: Luar vs dalam" dari Ports di luar 1433 untuk ADO.NET 4.5.

  • Terjemahan alamat jaringan:

    Karena terjemahan alamat jaringan (NAT), alamat IP yang digunakan oleh komputer Anda untuk tersambung ke Azure SQL Database mungkin berbeda dari alamat IP di pengaturan konfigurasi IP komputer Anda. Untuk melihat alamat IP yang digunakan komputer Anda untuk menyambungkan ke Azure:

    1. Masuk ke portal.
    2. Buka tab Konfigurasi pada server yang menghosting database Anda.
    3. Alamat IP Klien Saat Ini ditampilkan di bagian Alamat IP yang Diizinkan. Pilih Tambahkan untuk Alamat IP yang Diizinkan untuk memperbolehkan komputer ini mengakses server.
  • Perubahan pada daftar perkenankan belum berlaku:

    Mungkin ada penundaan hingga lima menit agar perubahan pada konfigurasi firewall Azure SQL Database diterapkan.

  • Login tidak diotorisasi, atau kata sandi yang salah digunakan:

    Jika login tidak memiliki izin pada server atau kata sandi salah, koneksi ke server ditolak. Membuat pengaturan firewall hanya memberi klien kesempatan untuk mencoba menyambungkan ke server Anda. Klien masih harus menyediakan kredensial keamanan yang diperlukan. Untuk informasi selengkapnya tentang menyiapkan login, lihat Otorisasi akses database ke SQL Database, SQL Managed Instance, dan Azure Synapse Analytics.

  • Alamat IP dinamis:

    Jika Anda memiliki koneksi internet yang menggunakan alamat IP dinamis dan Anda memiliki masalah melewati firewall, cobalah solusi berikut ini:

    • Tanyakan penyedia layanan internet Anda rentang alamat IP yang ditetapkan untuk komputer klien yang mengakses server. Tambahkan rentang alamat IP sebagai aturan firewall IP.
    • Dapatkan alamat IP statis sebagai gantinya untuk komputer klien Anda. Tambahkan alamat IP sebagai aturan IP firewall.