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. Untuk mempelajari selengkapnya tentang pembatasan akses, buka gambaran umum pembatasan akses.

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 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 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.

Diagram of the flow of access restrictions.

Mengelola aturan pembatasan akses di portal

Untuk menambahkan aturan pembatasan akses ke aplikasi Anda, lakukan langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Pilih aplikasi yang ingin Anda tambahkan pembatasan aksesnya.

  3. Di menu sebelah kiri, pilih Jaringan.

  4. Pada halaman Jaringan , di bawah Konfigurasi lalu lintas masuk, pilih Pengaturan akses jaringan publik.

    Screenshot of the App Service networking options page in the Azure portal.

  5. Pada halaman Pembatasan Akses, tinjau daftar aturan pembatasan akses yang ditentukan untuk aplikasi Anda.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    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, Anda harus memastikan bahwa langganan dengan jaringan virtual terdaftar untuk Microsoft.Web penyedia sumber daya. Anda dapat secara eksplisit mendaftarkan penyedia dengan mengikuti dokumentasi ini, tetapi juga secara otomatis terdaftar saat membuat aplikasi web pertama dalam langganan.

Menambahkan aturan pembatasan akses

Untuk menambahkan aturan pembatasan akses ke aplikasi Anda, pada halaman Pembatasan Akses, pilih Tambahkan. Aturan ini hanya efektif setelah disimpan.

Aturan diberlakukan dalam urutan prioritas, dimulai 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:

  1. Pada Tindakan, pilih Izinkan atau Tolak.

    Screenshot of the 'Add Access Restriction' pane.

  2. Atau, masukkan nama dan deskripsi aturan.

  3. Dalam kotak Prioritas, masukkan nilai prioritas.

  4. Dalam daftar drop-down Jenis, pilih jenis aturan. Berbagai jenis aturan dijelaskan di bagian berikut.

  5. 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, 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.

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 multipenyewa, 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, dalam daftar drop-down Jenis, pilih Virtual Network.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

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 akan diaktifkan secara otomatis kecuali Anda memilih kotak centang Abaikan titik akhir layanan yang hilangMicrosoft.Web. 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 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 mengetahui informasi selengkapnya, lihat Fitur jaringan dan App Service dan Integrasi Application Gateway dengan titik akhir layanan.

Catatan

  • Titik akhir layanan tidak didukung untuk aplikasi web yang menggunakan pengikatan TLS/SSL berbasis IP dengan IP virtual (VIP).

Mengatur aturan berbasis tag layanan

  • Untuk langkah 4, dalam daftar drop-down Jenis, pilih Tag Layanan.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

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

  1. Untuk mulai mengedit aturan pembatasan akses yang sudah ada, pada halaman Pembatasan Akses, pilih aturan yang ingin Anda edit.

  2. Pada panel Edit Pembatasan Akses, buat perubahan Anda, lalu pilih Perbarui aturan.

  3. Pilih Simpan untuk menyimpan perubahan.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Catatan

    Saat mengedit aturan, Anda tidak bisa beralih antar jenis aturan.

Hapus aturan

  1. Untuk menghapus aturan, pada halaman Pembatasan Akses, periksa aturan atau peraturan yang ingin Anda hapus, lalu pilih Hapus.

  2. Pilih Simpan untuk menyimpan perubahan.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

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. Anda menggunakan 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 dan konfigurasikan tindakan aturan yang tidak cocok ke Izinkan.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

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 kotak centang Gunakan aturan situs utama, daftar aturan disembunyikan, dan menggunakan aturan dari situs utama. Jika Anda mengosongkan kotak centang, pengaturan situs SCM Anda akan muncul lagi.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

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, di bawah ini Anda dapat menemukan contoh 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 az webapp config access-restriction perintah, kunjungi halaman ini.

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 az webapp config access-restriction perintah, kunjungi halaman ini.

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 az resource perintah, kunjungi halaman ini. 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 az resource perintah, kunjungi halaman ini. 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.

Langkah berikutnya

Mengakses pembatasan untuk Azure Functions
Integrasi Azure Application Gateway dengan titik akhir layanan
Skenario pembatasan akses tingkat lanjut di Azure App Service - posting blog