Menyiapkan pembatasan akses Azure 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.
Kemampuan pembatasan akses berfungsi dengan semua beban kerja yang dihosting Azure App Service. Beban kerja dapat mencakup aplikasi web, aplikasi API, aplikasi Linux, kontainer Linux kustom, dan Functions.
Saat permintaan dibuat ke aplikasi Anda, alamat FROM dievaluasi berdasarkan aturan di daftar pembatasan akses Anda. Jika alamat FROM berada dalam subnet yang dikonfigurasi dengan titik akhir layanan ke Microsoft.Web, subnet sumber akan 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 adalah daftar kontrol akses jaringan (ACL).
Kemampuan untuk membatasi akses ke aplikasi web Anda dari jaringan virtual Azure diaktifkan oleh titik akhir layanan. Dengan titik akhir layanan, Anda dapat membatasi akses ke layanan multi-penyewa dari subjaringan 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, lakukan hal berikut:
Masuk ke portal Azure.
Pilih aplikasi yang ingin tambahkan dengan pembatasan akses.
Di panel kiri, pilih Jaringan.
Di panel Jaringan, pada Pembatasan Akses, pilih Konfigurasi Pembatasan Akses.
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, aplikasi dapat diakses dari mana saja.
Izin
Anda harus memiliki setidaknya izin kontrol akses berbasis Peran berikut di subnet atau pada tingkat yang lebih tinggi untuk mengonfigurasi pembatasan akses melalui portal Microsoft 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 |
*hanya diperlukan saat menambahkan aturan jaringan virtual (titik akhir layanan).
Jika Anda menambahkan aturan berbasis titik akhir layanan dan jaringan virtual berada dalam langganan yang berbeda dengan aplikasi, Anda harus memastikan bahwa langganan dengan jaringan virtual tersebut terdaftar untuk penyedia sumber daya Microsoft.Web. Anda dapat secara eksplisit mendaftarkan penyedia dengan mengikuti dokumentasi ini, tetapi penyedia juga akan secara otomatis didaftarkan saat membuat aplikasi web pertama dalam langganan.
Menambahkan aturan pembatasan akses
Untuk menambahkan aturan pembatasan akses ke aplikasi Anda, pada panel Pembatasan Akses, pilih Tambahkan aturan. Setelah Anda menambahkan aturan, aturan akan langsung berlaku.
Aturan diberlakukan dalam urutan prioritas, dimulai dari angka terendah di kolom Prioritas. deny all yang implisit 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.
Dalam daftar drop-down Jenis, pilih jenis aturan.
Berbagai jenis aturan dijelaskan di bagian berikut.
Catatan
- Ada batas 512 aturan pembatasan akses. Jika Anda memerlukan lebih dari 512 aturan pembatasan akses, sebaiknya pertimbangkan untuk menginstal produk keamanan mandiri, seperti 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, dalam daftar drop-down 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.
Mengatur aturan berbasis titik akhir layanan
Untuk langkah 4, dalam daftar drop-down 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 akan diaktifkan secara otomatis kecuali Anda memilih kotak centang Abaikan titik akhir layanan Microsoft.Web yang tidak ada. 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 ingin orang lain untuk mengaktifkan titik akhir layanan pada subnet, pilih kotak centang Abaikan titik akhir layanan Microsoft.Web yang tidak ada. Aplikasi Anda akan dikonfigurasi untuk titik akhir layanan sebagai antisipasi pengaktifkan kemudian 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 mengetahui informasi selengkapnya, lihat Fitur jaringan dan App Service dan Integrasi Application Gateway dengan titik akhir layanan.
Catatan
- Titik akhir layanan saat ini tidak didukung untuk aplikasi web yang menggunakan binding TLS/SSL berbasis IP dengan IP virtual (VIP).
Mengatur aturan berbasis tag layanan
Untuk langkah 4, dalam daftar drop-down Jenis, pilih Tag Layanan.
Semua tag layanan yang tersedia 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.
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. Pengeditan segera berlaku, termasuk perubahan urutan prioritas.
Catatan
Saat mengedit aturan, Anda tidak bisa beralih antar jenis aturan.
Menghapus aturan
Untuk menghapus aturan, pada halaman Pembatasan Akses, pilih elipsis ( ... ) di samping aturan yang ingin Anda hapus, lalu pilih Hapus.
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 tambahan. 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. Anda dapat menggunakan ini jika Anda memiliki lebih dari 512 rentang IP atau Anda ingin membuat aturan logis di mana beberapa rentang IP digabungkan 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
Saat Anda menambahkan aturan pembatasan akses pertama, layanan menambahkan aturan Deny all eksplisit dengan prioritas 2147483647. Dalam praktiknya, aturan Deny all yang eksplisit adalah aturan terakhir yang harus dijalankan dan aturan tersebut akan memblokir akses ke alamat IP apa pun yang tidak secara eksplisit diizinkan oleh aturan Allow.
Untuk skenario di mana Anda ingin secara eksplisit memblokir satu alamat IP atau satu blok alamat IP, tetapi mengizinkan akses ke yang lainnya, tambahkan aturan Allow All yang eksplisit.
Membatasi akses ke situs SCM
Selain dapat mengontrol akses ke aplikasi, Anda dapat membatasi akses ke situs SCM 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 kotak centang Pembatasan yang sama dengan <nama aplikasi>, semuanya akan kosong. Jika Anda mengosongkan kotak centang, pengaturan situs SCM Anda akan diterapkan kembali.
Membatasi akses ke instans Azure Front Door tertentu
Lalu lintas dari Azure Front Door ke aplikasi Anda berasal dari serangkaian rentang IP yang dikenali dan ditentukan dalam tag layanan AzureFrontDoor.Backend. 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 harus memfilter lebih lanjut permintaan masuk berdasarkan header http unik yang dikirim oleh 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 aturan pembatasan akses secara terprogram
Anda dapat menambahkan pembatasan akses secara terprogram dengan melakukan salah satu hal berikut ini:
Menggunakan Azure CLI. Contohnya:
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 100Catatan
Untuk bekerja dengan tag layanan, header http, atau aturan multi-sumber di Azure CLI, diperlukan setidaknya versi 2.23.0. Anda dapat memverifikasi versi modul yang diinstal dengan:
az versionMenggunakan Azure PowerShell. Contohnya:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24Catatan
Bekerja dengan tag layanan, header http, atau aturan multi-sumber di Azure PowerShell memerlukan setidaknya versi 5.7.0. Anda dapat memverifikasi versi modul yang diinstal dengan:
Get-InstalledModule -Name Az
Anda juga bisa mengatur nilai secara manual dengan melakukan salah satu hal berikut:
Menggunakan operasi PUT REST API Azure pada konfigurasi aplikasi di Azure Resource Manager. Lokasi untuk informasi ini di Azure Resource Manager adalah:
management.azure.com/subscriptions/ID langganan/resourceGroups/resource groups/providers/Microsoft.Web/sites/nama aplikasi web/config/web?api-version=2020-06-01
Gunakan templat Resource Manager. Sebagai contoh, Anda dapat menggunakan resources.azure.com dan mengedit blok ipSecurityRestrictions untuk menambahkan JSON yang diperlukan.
Sintaks JSON untuk contoh sebelumnya adalah:
{ "properties": { "ipSecurityRestrictions": [ { "ipAddress": "122.133.144.0/24", "action": "Allow", "priority": 100, "name": "IP example rule" } ] } }Sintaks JSON untuk contoh tingkat lanjut menggunakan tag layanan dan pembatasan header http adalah:
{ "properties": { "ipSecurityRestrictions": [ { "ipAddress": "AzureFrontDoor.Backend", "tag": "ServiceTag", "action": "Allow", "priority": 100, "name": "Azure Front Door example", "headers": { "x-azure-fdid": [ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } ] } }
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.
Langkah berikutnya
Mengakses pembatasan untuk Azure Functions
Integrasi Azure Application Gateway dengan titik akhir layanan