Menyiapkan pembatasan akses Azure App Service
Catatan
Mulai 1 Juni 2024, aplikasi App Service yang baru dibuat dapat menghasilkan nama host default unik yang menggunakan konvensi <app-name>-<random-hash>.<region>.azurewebsites.net
penamaan . Nama aplikasi yang ada tetap tidak berubah. Contohnya:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Untuk informasi selengkapnya, lihat Nama Host Default Unik untuk Sumber Daya App Service.
Dengan menyiapkan pembatasan akses, Anda dapat menentukan daftar izin/tolak yang diurutkan berdasarkan prioritas yang mengontrol akses jaringan ke aplikasi Anda. Daftar ini dapat menyertakan alamat IP atau subnet Azure Virtual Network. Jika ada satu atau beberapa entri, sebuah implisit deny all akan ada di akhir daftar. Untuk informasi selengkapnya, lihat Pembatasan akses Azure App Service.
Kemampuan pembatasan akses berfungsi dengan semua beban kerja yang dihosting Azure App Service. Beban kerja dapat mencakup aplikasi web, aplikasi API, aplikasi Linux, kontainer kustom Linux, dan Functions.
Saat seseorang membuat permintaan ke aplikasi Anda, alamat FROM dievaluasi terhadap aturan dalam daftar pembatasan akses Anda. Jika alamat FROM berada dalam subnet yang dikonfigurasi dengan titik akhir layanan ke Microsoft.Web
, subnet sumber dibandingkan dengan aturan jaringan virtual dalam daftar pembatasan akses Anda. Jika alamat tidak diizinkan akses berdasarkan aturan dalam daftar, layanan akan membalas dengan kode status HTTP 403.
Kemampuan pembatasan akses diimplementasikan dalam peran ujung-depan App Service, yang merupakan upstream dari host pekerja tempat kode Anda dijalankan. Oleh karena itu, pembatasan akses secara efektif merupakan daftar kontrol akses jaringan.
Kemampuan untuk membatasi akses ke aplikasi web Anda dari jaringan virtual Azure menggunakan titik akhir layanan. Dengan titik akhir layanan, Anda dapat membatasi akses ke layanan multitenant dari subnet yang dipilih. Titik akhir layanan tidak berfungsi untuk membatasi lalu lintas ke aplikasi yang dihosting di Lingkungan App Service. Saat aplikasi berada di Lingkungan App Service, Anda dapat mengontrol akses ke aplikasi tersebut dengan menerapkan aturan alamat IP.
Catatan
Titik akhir layanan harus diaktifkan baik di sisi jaringan maupun untuk layanan Azure yang sedang diaktifkan. Untuk mengetahui daftar layanan Azure yang mendukung titik akhir layanan, lihat Titik akhir layanan Virtual Network.
Mengelola aturan pembatasan akses di portal
Untuk menambahkan aturan pembatasan akses ke aplikasi Anda:
Masuk ke portal Azure.
Pilih aplikasi yang ingin Anda tambahkan pembatasan aksesnya.
Di menu sebelah kiri, pilih Pengaturan>Jaringan.
Pada halaman Jaringan , di bawah Konfigurasi lalu lintas masuk, pilih Pengaturan akses jaringan publik.
Pada halaman Pembatasan Akses, tinjau daftar aturan pembatasan akses yang ditentukan untuk aplikasi Anda.
Daftar menampilkan semua pembatasan saat ini yang diterapkan ke aplikasi. Jika Anda memiliki batasan jaringan virtual pada aplikasi Anda, tabel akan memperlihatkan apakah titik akhir layanan diaktifkan untuk Microsoft.Web. Jika tidak ada batasan yang ditentukan pada aplikasi Anda dan aturan anda yang tidak cocok tidak diatur ke Tolak, aplikasi dapat diakses dari mana saja.
Izin
Izin kontrol akses berbasis Peran berikut pada subnet atau pada tingkat yang lebih tinggi diperlukan untuk mengonfigurasi pembatasan akses melalui portal Azure, CLI, atau saat mengatur properti konfigurasi situs secara langsung:
Tindakan | Deskripsi |
---|---|
Microsoft.Web/sites/config/read | Mendapatkan pengaturan Aplikasi Web |
Microsoft.Web/sites/config/write | Memperbarui pengaturan konfigurasi Aplikasi Web |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Menggabungkan sumber daya seperti akun penyimpanan atau database SQL ke subnet |
Microsoft.Web/sites/write** | Memperbarui pengaturan Aplikasi Web |
* hanya diperlukan saat menambahkan aturan jaringan virtual (titik akhir layanan).
** hanya diperlukan jika Anda memperbarui pembatasan akses melalui portal Azure.
Jika Anda menambahkan aturan berbasis titik akhir layanan dan jaringan virtual berada dalam langganan yang berbeda dari aplikasi, pastikan langganan dengan jaringan virtual terdaftar untuk Microsoft.Web
penyedia sumber daya. Anda dapat secara eksplisit mendaftarkan penyedia, tetapi juga secara otomatis terdaftar saat membuat aplikasi web pertama dalam langganan. Untuk informasi selengkapnya, lihat Mendaftarkan penyedia sumber daya.
Menambahkan aturan pembatasan akses
Untuk menambahkan aturan pembatasan akses ke aplikasi Anda, pada halaman Pembatasan Akses, pilih Tambahkan. Aturan ini hanya efektif setelah Anda menyimpannya.
Aturan diberlakukan dalam urutan prioritas, dari angka terendah di kolom Prioritas . Jika Anda tidak mengonfigurasi aturan yang tidak cocok, tolak implisit semua berlaku setelah Anda menambahkan bahkan satu aturan.
Pada panel Tambahkan Pembatasan Akses, saat Anda membuat aturan, lakukan hal berikut:
Pada Tindakan, pilih Izinkan atau Tolak.
Atau, masukkan nama dan deskripsi aturan.
Dalam kotak Prioritas, masukkan nilai prioritas.
Di daftar dropdown Jenis, pilih jenis aturan. Berbagai jenis aturan dijelaskan di bagian berikut.
Pilih Tambahkan aturan setelah mengetikkan input khusus aturan untuk menambahkan aturan ke daftar.
Terakhir pilih Simpan kembali di halaman Pembatasan Akses.
Catatan
Ada batas 512 aturan pembatasan akses. Jika Anda memerlukan lebih dari 512 aturan pembatasan akses, kami sarankan Anda mempertimbangkan produk keamanan mandiri. Pertimbangkan Azure Front Door, Azure App Gateway, atau WAF alternatif.
Mengatur aturan berbasis alamat IP
Ikuti prosedur seperti yang diuraikan di bagian sebelumnya, tetapi dengan tambahan berikut:
- Untuk langkah 4, di daftar dropdown Jenis , pilih IPv4 atau IPv6.
Tentukan Blok Alamat IP dalam notasi Perutean Antar-Domain Tanpa Kelas (CIDR) untuk alamat IPv4 dan IPv6. Untuk menentukan alamat, Anda dapat menggunakan alamat seperti 1.2.3.4/32, di mana empat oktet pertama mewakili alamat IP Anda dan /32 adalah masker. Notasi CIDR IPv4 untuk semua alamat adalah 0.0.0.0/0. Untuk mempelajari notasi CIDR lebih lanjut, lihat Perutean Antar-Domain Tanpa Kelas.
Catatan
Aturan pembatasan akses berbasis IP hanya menangani rentang alamat jaringan virtual saat aplikasi Anda berada di Lingkungan App Service. Jika aplikasi Anda berada dalam layanan multi-penyewa, Anda harus menggunakan titik akhir layanan guna membatasi lalu lintas untuk memilih subnet di jaringan virtual Anda.
Mengatur aturan berbasis titik akhir layanan
Untuk langkah 4, di daftar dropdown Jenis , pilih Virtual Network.
Tentukan daftar drop-down Langganan, Virtual Network, dan Subnet yang cocok dengan apa yang ingin Anda batasi aksesnya.
Dengan menggunakan titik akhir layanan, Anda dapat membatasi akses ke subnet jaringan virtual Azure yang dipilih. Jika titik akhir layanan belum diaktifkan dengan Microsoft.Web
untuk subnet yang Anda pilih, titik akhir layanan tersebut diaktifkan secara otomatis kecuali Anda memilih Abaikan titik akhir layanan Microsoft.Web yang hilang. Skenario di mana Anda mungkin ingin mengaktifkan titik akhir layanan pada aplikasi dan bukan pada subnet yang bergantung terutama pada apakah Anda memiliki izin untuk mengaktifkannya di subnet.
Jika Anda memerlukan orang lain untuk mengaktifkan titik akhir layanan pada subnet, pilih Abaikan titik akhir layanan Microsoft.Web yang hilang. Aplikasi Anda dikonfigurasi untuk titik akhir layanan untuk mengantisipasi mengaktifkannya nanti di subnet.
Anda tidak dapat menggunakan titik akhir layanan untuk membatasi akses ke aplikasi yang berjalan di Lingkungan App Service. Saat aplikasi berada di Lingkungan App Service, Anda dapat mengontrol akses ke aplikasi tersebut dengan menerapkan aturan akses IP.
Dengan titik akhir layanan, Anda dapat mengonfigurasi aplikasi dengan gateway aplikasi atau perangkat firewall aplikasi web (WAF) lainnya. Anda juga dapat mengonfigurasi aplikasi multi-tingkat dengan ujung belakang yang aman. Untuk informasi selengkapnya, lihat Fitur jaringan App Service dan integrasi Application Gateway.
Catatan
Titik akhir layanan tidak didukung untuk aplikasi web yang menggunakan pengikatan TLS/SSL berbasis IP dengan IP virtual.
Mengatur aturan berbasis tag layanan
Untuk langkah 4, di daftar dropdown Jenis , pilih Tag Layanan.
Semua tag layanan yang tersedia untuk umum didukung dalam aturan pembatasan akses. Setiap tag layanan mewakili daftar rentang IP dari layanan Azure. Daftar layanan ini dan tautan ke rentang tertentu dapat ditemukan di dokumentasi tag layanan. Gunakan templat atau skrip Azure Resource Manager untuk mengonfigurasi aturan tingkat lanjut seperti aturan cakupan regional.
Catatan
Saat Anda membuat aturan berbasis tag layanan melalui portal Azure atau Azure CLI, Anda memerlukan akses baca di tingkat langganan untuk mendapatkan daftar lengkap tag layanan untuk pemilihan/validasi. Selain itu, Microsoft.Network
penyedia sumber daya perlu didaftarkan pada langganan.
Mengedit aturan
Untuk mulai mengedit aturan pembatasan akses yang sudah ada, pada halaman Pembatasan Akses, pilih aturan yang ingin Anda edit.
Pada panel Edit Pembatasan Akses, buat perubahan Anda, lalu pilih Perbarui aturan.
Pilih Simpan untuk menyimpan perubahan.
Catatan
Saat mengedit aturan, Anda tidak bisa beralih antar jenis aturan.
Hapus aturan
Untuk menghapus aturan, pada halaman Pembatasan Akses, periksa aturan atau peraturan yang ingin Anda hapus, lalu pilih Hapus.
Pilih Simpan untuk menyimpan perubahan.
Skenario tingkat lanjut pembatasan akses
Bagian berikut ini menjelaskan beberapa skenario tingkat lanjut menggunakan pembatasan akses.
Memfilter menurut header http
Sebagai bagian dari aturan apa pun, Anda dapat menambahkan filter header http. Nama header http berikut ini didukung:
- X-Forwarded-For
- X-Forwarded-Host
- X-Azure-FDID
- X-FD-HealthProbe
Untuk setiap nama header, Anda bisa menambahkan hingga delapan nilai yang dipisahkan oleh koma. Filter header http dievaluasi setelah aturan itu sendiri dan kedua kondisi harus benar agar aturan dapat diterapkan.
Aturan multi-sumber
Aturan multi-sumber memungkinkan Anda menggabungkan hingga delapan rentang IP atau delapan Tag Layanan dalam satu aturan. Gunakan aturan multi-sumber jika Anda memiliki lebih dari 512 rentang IP atau Anda ingin membuat aturan logis. Aturan logis bisa menjadi tempat beberapa rentang IP dikombinasikan dengan satu filter header http.
Aturan multi-sumber didefinisikan dengan cara yang sama seperti Anda menentukan aturan sumber tunggal, tetapi dengan setiap rentang dipisahkan dengan koma.
Contoh PowerShell:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Memblokir satu alamat IP
Untuk skenario di mana Anda ingin secara eksplisit memblokir satu alamat IP atau blok alamat IP, tetapi mengizinkan akses ke yang lain, tambahkan aturan Tolak untuk alamat IP tertentu. Kemudian konfigurasikan tindakan aturan yang tidak cocok untuk Izinkan.
Membatasi akses ke situs SCM
Selain dapat mengontrol akses ke aplikasi, Anda dapat membatasi akses ke situs SCM (Alat tingkat lanjut) yang digunakan oleh aplikasi Anda. Situs SCM adalah titik akhir penyebaran web dan konsol Kudu. Anda dapat menetapkan batasan akses ke situs SCM dari aplikasi secara terpisah atau menggunakan kumpulan batasan yang sama untuk aplikasi dan situs SCM. Saat Anda memilih Gunakan aturan situs utama, daftar aturan disembunyikan. Situs SCM menggunakan aturan dari situs utama. Jika Anda membatalkan pilihan kotak centang, pengaturan situs SCM Anda akan muncul lagi.
Membatasi akses ke instans Azure Front Door tertentu
Lalu lintas dari Azure Front Door ke aplikasi Anda berasal dari serangkaian rentang IP terkenal yang ditentukan dalam AzureFrontDoor.Backend
tag layanan. Dengan menggunakan aturan pembatasan tag layanan, Anda dapat membatasi lalu lintas hanya berasal dari Azure Front Door. Untuk memastikan lalu lintas hanya berasal dari instans spesifik Anda, Anda perlu memfilter permintaan masuk lebih lanjut berdasarkan header http unik yang dikirim Azure Front Door.
Contoh PowerShell:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Mengelola pembatasan akses secara terprogram
Anda dapat mengelola pembatasan akses secara terprogram. Contoh berikut menunjukkan cara menambahkan aturan untuk mengakses pembatasan dan cara mengubah tindakan Aturan yang tidak cocok untuk situs Utama dan situs alat Tingkat Lanjut.
Menambahkan aturan pembatasan akses untuk situs utama
Anda dapat menambahkan aturan pembatasan akses untuk situs Utama secara terprogram dengan memilih salah satu opsi berikut:
Anda dapat menjalankan perintah berikut di Cloud Shell. Untuk informasi selengkapnya tentang perintah, lihat az webapp config access-restriction.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Menambahkan aturan pembatasan akses untuk situs alat tingkat lanjut
Anda dapat menambahkan aturan pembatasan akses untuk situs alat Tingkat Lanjut secara terprogram dengan memilih salah satu opsi berikut:
Anda dapat menjalankan perintah berikut di Cloud Shell. Untuk informasi selengkapnya tentang perintah, lihat az webapp config access-restriction.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Mengubah tindakan aturan yang tidak cocok untuk situs utama
Anda dapat mengubah tindakan Aturan yang tidak cocok untuk Situs utama secara terprogram dengan memilih salah satu opsi berikut:
Anda dapat menjalankan perintah berikut di Cloud Shell. Untuk informasi selengkapnya tentang perintah, lihat sumber daya az. Nilai yang diterima untuk ipSecurityRestrictionsDefaultAction
adalah Allow
atau Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Mengubah tindakan aturan yang tidak cocok untuk situs alat tingkat lanjut
Anda dapat mengubah tindakan Aturan yang tidak cocok untuk situs alat Tingkat Lanjut secara terprogram dengan memilih salah satu opsi berikut:
Anda dapat menjalankan perintah berikut di Cloud Shell. Untuk informasi selengkapnya tentang perintah, lihat sumber daya az. Nilai yang diterima untuk scmIpSecurityRestrictionsDefaultAction
adalah Allow
atau Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Menyiapkan pembatasan akses Azure Functions
Pembatasan akses juga tersedia untuk aplikasi fungsi dengan fungsionalitas yang sama seperti paket App Service. Saat Anda mengaktifkan pembatasan akses, Anda juga menonaktifkan editor kode portal Microsoft Azure untuk IP yang tidak diizinkan.