Bagikan melalui


Cara Mengontrol Lalu Lintas Masuk ke Lingkungan App Service

Penting

Artikel ini tentang Lingkungan App Service v1. App Service Environment v1 akan dihentikan pada 31 Agustus 2024. Terdapat versi baru Lingkungan App Service yang lebih mudah digunakan dan berjalan di infrastruktur yang lebih kuat. Untuk mempelajari selengkapnya tentang versi baru, mulai dengan Pengantar Lingkungan App Service. Jika saat ini Anda menggunakan Lingkungan App Service v1, ikuti langkah-langkah dalam artikel ini untuk bermigrasi ke versi baru.

Mulai 29 Januari 2024, Anda tidak dapat lagi membuat sumber daya App Service Environment v1 baru menggunakan salah satu metode yang tersedia termasuk templat ARM/Bicep, Portal Microsoft Azure, Azure CLI, atau REST API. Anda harus bermigrasi ke App Service Environment v3 sebelum 31 Agustus 2024 untuk mencegah penghapusan sumber daya dan kehilangan data.

Gambaran Umum

Lingkungan App Service dapat dibuat baik di jaringan virtual Azure Resource Manager, atau di jaringan virtual model penyebaran klasik. Jaringan virtual baru dan subnet baru dapat ditentukan pada saat Lingkungan App Service dibuat. Sebagai gantinya, Lingkungan App Service dapat dibuat di jaringan virtual yang sudah ada sebelumnya dan subnet yang sudah ada sebelumnya. Pada Juni 2016, ASE juga dapat disebarkan ke jaringan virtual yang menggunakan rentang alamat publik atau ruang alamat RFC1918 (alamat privat). Untuk informasi selengkapnya, lihat Cara Membuat ASEv1 dari templat.

Selalu buat Lingkungan App Service di dalam subnet. Subnet menyediakan batas jaringan yang dapat digunakan untuk mengunci lalu lintas masuk di belakang perangkat dan layanan hulu. Pengaturan ini hanya memungkinkan alamat IP hulu tertentu untuk menerima lalu lintas HTTP dan HTTPS.

Lalu lintas jaringan masuk dan keluar pada subnet dikontrol menggunakan kelompok keamanan jaringan. Untuk mengontrol lalu lintas masuk, buat aturan keamanan jaringan di dalam kelompok keamanan jaringan. Kemudian tetapkan kelompok keamanan jaringan untuk subnet yang berisi Lingkungan App Service.

Setelah Anda menetapkan kelompok keamanan jaringan ke subnet, lalu lintas masuk ke aplikasi di Lingkungan App Service diizinkan atau diblokir berdasarkan aturan izinkan dan tolak yang ditentukan dalam kelompok keamanan jaringan.

Catatan

Meskipun artikel ini mengacu pada aplikasi web, artikel ini juga berlaku untuk aplikasi API dan aplikasi seluler.

Port Jaringan Masuk Yang Digunakan di Lingkungan App Service

Sebelum Anda mengunci lalu lintas jaringan masuk dengan kelompok keamanan jaringan, ketahui kumpulan port jaringan wajib dan opsional yang digunakan oleh Lingkungan App Service. Secara tidak sengaja menutup lalu lintas ke beberapa port dapat mengakibatkan hilangnya fungsionalitas di Lingkungan App Service.

Daftar berikut ini berisi port yang digunakan oleh Lingkungan App Service. Semua port adalah TCP, kecuali dinyatakan dengan jelas:

  • 454: Port wajib yang digunakan oleh infrastruktur Azure untuk mengelola dan memelihara Lingkungan App Service melalui TLS. Jangan memblokir lalu lintas ke port ini. Port ini selalu terikat dengan VIP publik dari ASE.
  • 455: Port wajib yang digunakan oleh infrastruktur Azure untuk mengelola dan memelihara Lingkungan App Service melalui TLS. Jangan memblokir lalu lintas ke port ini. Port ini selalu terikat dengan VIP publik dari ASE.
  • 80: Port default untuk lalu lintas HTTP masuk ke aplikasi yang berjalan di Rencana App Service di Lingkungan App Service. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 443: Port default untuk lalu lintas TLS masuk ke aplikasi yang berjalan di App Service Plan di Lingkungan App Service. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 21: Saluran kontrol untuk FTP. Port ini dapat diblokir dengan aman jika FTP tidak digunakan. Pada ASE berkemampuan ILB, port ini dapat terikat ke alamat ILB untuk ASE.
  • 990: Saluran kontrol untuk FTPS. Port ini dapat diblokir dengan aman jika FTPS tidak digunakan. Pada ASE berkemampuan ILB, port ini dapat terikat ke alamat ILB untuk ASE.
  • 10001-10020: Saluran data untuk FTP. Seperti halnya saluran kontrol, port ini dapat diblokir dengan aman jika FTP tidak digunakan. Pada ASE berkemampuan ILB, port ini dapat terikat ke alamat ILB untuk ASE.
  • 4016: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2012. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 4018: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2013. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 4020: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2015. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 4022: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2017. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 4024: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2019. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.
  • 4026: Digunakan untuk penelusuran kesalahan jarak jauh dengan Visual Studio 2022. Port ini dapat diblokir dengan aman jika fitur tersebut tidak digunakan. Pada ASE berkemampuan ILB, port ini terikat ke alamat ILB ASE.

Konektivitas Keluar dan Persyaratan DNS

Agar Lingkungan App Service berfungsi dengan baik, diperlukan akses keluar ke berbagai titik akhir. Daftar lengkap titik akhir eksternal yang digunakan oleh ASE ada di bagian "Konektivitas Jaringan yang Diperlukan" dari artikel Konfigurasi Jaringan untuk ExpressRoute.

Lingkungan App Service memerlukan infrastruktur DNS yang valid yang dikonfigurasi untuk jaringan virtual. Jika konfigurasi DNS diubah setelah pembuatan Lingkungan App Service, pengembang dapat memaksa Lingkungan App Service untuk mengambil konfigurasi DNS baru. Jika Anda memicu reboot lingkungan bergulir menggunakan ikon Hidupkan ulang, lingkungan akan mengambil konfigurasi DNS baru. (Ikon Hidupkan ulang terletak di bagian atas bilah manajemen Lingkungan App Service, di portal Microsoft Azure.)

Disarankan juga bahwa server DNS kustom apa pun di vnet disiapkan sebelumnya sebelum membuat Lingkungan App Service. Jika konfigurasi DNS jaringan virtual diubah selama pembuatan Lingkungan App Service, proses pembuatan Lingkungan App Service akan gagal. Sama halnya, jika ada server DNS kustom yang tidak dapat dijangkau atau tidak tersedia di ujung lain gateway VPN, proses pembuatan Lingkungan App Service juga akan gagal.

Membuat Grup Keamanan Jaringan

Untuk detail selengkapnya tentang cara kerja grup keamanan jaringan, lihat informasi berikut ini. Contoh Manajemen Layanan Azure di bawah ini menyentuh sorotan kelompok keamanan jaringan. Contoh tersebut mengonfigurasi dan menerapkan grup keamanan jaringan ke subnet yang berisi Lingkungan App Service.

Catatan: Kelompok keamanan jaringan dapat dikonfigurasi secara grafis menggunakan portal Microsoft Azure atau melalui Azure PowerShell.

Kelompok keamanan jaringan pertama kali dibuat sebagai entitas mandiri yang terkait dengan langganan. Karena kelompok keamanan jaringan dibuat di wilayah Azure, buat kelompok keamanan jaringan di wilayah yang sama dengan Lingkungan App Service.

Perintah berikut ini menunjukkan pembuatan kelompok keamanan jaringan:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

Setelah kelompok keamanan jaringan dibuat, satu atau beberapa aturan keamanan jaringan ditambahkan ke dalamnya. Karena seperangkat aturan dapat berubah dari waktu ke waktu, Anda harus memberi spasi pada skema pe-nomor nama yang digunakan untuk prioritas aturan. Praktik ini memudahkan untuk memasukkan aturan tambahan dari waktu ke waktu.

Dalam contoh di bawah ini, aturan secara eksplisit memberikan akses ke port manajemen yang diperlukan oleh infrastruktur Azure untuk mengelola dan memelihara Lingkungan App Service. Semua arus lalu lintas manajemen mengalir melalui TLS dan diamankan oleh sertifikat klien. Meskipun port dibuka, port tersebut tidak dapat diakses oleh entitas apa pun selain infrastruktur manajemen Azure.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "ALLOW AzureMngmt" -Type Inbound -Priority 100 -Action Allow -SourceAddressPrefix 'INTERNET'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '454-455' -Protocol TCP

Saat Anda mengunci akses ke port 80 dan 443 untuk "menyembunyikan" Lingkungan App Service di belakang perangkat atau layanan hulu, ingat alamat IP hulu. Misalnya, jika Anda menggunakan firewall aplikasi web (WAF), WAF akan memiliki alamat atau alamat IP sendiri. WAF menggunakannya saat mem-proksi lalu lintas ke Lingkungan App Service hilir. Anda harus menggunakan alamat IP ini di parameter SourceAddressPrefix dari aturan keamanan jaringan.

Dalam contoh di bawah ini, lalu lintas masuk dari alamat IP hulu tertentu secara eksplisit diizinkan. Alamat 1.2.3.4 digunakan sebagai tempat penampung untuk alamat IP WAF hulu. Ubah nilai agar sesuai dengan alamat yang digunakan oleh perangkat atau layanan hulu Anda.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTP" -Type Inbound -Priority 200 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTPS" -Type Inbound -Priority 300 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Jika dukungan FTP diinginkan, gunakan aturan berikut sebagai templat untuk memberikan akses ke port kontrol FTP dan port saluran data. Karena FTP adalah protokol yang ketat, Anda mungkin tidak dapat merutekan lalu lintas FTP melalui firewall HTTP /HTTPS tradisional atau perangkat proksi. Dalam hal ini, Anda harus mengatur SourceAddressPrefix ke nilai yang berbeda, seperti rentang alamat IP pengembang atau mesin penyebaran tempat klien FTP berjalan.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPCtrl" -Type Inbound -Priority 400 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '21' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPDataRange" -Type Inbound -Priority 500 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '10001-10020' -Protocol TCP

(Catatan: rentang port saluran data dapat berubah selama periode pratinjau.)

Jika penelusuran kesalahan jarak jauh dengan Visual Studio digunakan, aturan berikut menunjukkan cara memberikan akses. Ada aturan terpisah untuk setiap versi Visual Studio yang didukung karena setiap versi menggunakan port yang berbeda untuk penelusuran kesalahan jarak jauh. Seperti halnya akses FTP, lalu lintas penelusuran kesalahan jarak jauh mungkin tidak mengalir dengan benar melalui WAF tradisional atau perangkat proksi. SourceAddressPrefix sebagai gantinya dapat diatur ke rentang alamat IP mesin pengembang yang menjalankan Visual Studio.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2012" -Type Inbound -Priority 600 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4016' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2013" -Type Inbound -Priority 700 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4018' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2015" -Type Inbound -Priority 800 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4020' -Protocol TCP

Menetapkan Kelompok Keamanan Jaringan ke Subnet

Kelompok keamanan jaringan memiliki aturan keamanan default yang menolak akses ke semua lalu lintas eksternal. Saat Anda menggabungkan aturan ini dengan aturan keamanan jaringan di atas, hanya lalu lintas dari rentang alamat sumber yang terkait dengan tindakan Izinkan akan dapat mengirim lalu lintas ke aplikasi yang berjalan di Lingkungan App Service.

Setelah kelompok keamanan jaringan diisi dengan aturan keamanan, tetapkan ke subnet yang berisi Lingkungan App Service. Perintah tugas mereferensikan dua nama: nama jaringan virtual tempat Lingkungan App Service berada, dan nama subnet tempat Lingkungan App Service dibuat.

Contoh di bawah ini memperlihatkan kelompok keamanan jaringan yang ditetapkan ke subnet dan jaringan maya:

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'

Tugas ini adalah operasi jangka panjang, dan bisa memakan waktu beberapa menit untuk menyelesaikannya. Setelah penetapan kelompok keamanan jaringan berhasil, hanya lalu lintas masuk yang cocok dengan aturan Izinkan yang akan berhasil menjangkau aplikasi di Lingkungan App Service.

Untuk kelengkapan, contoh berikut menunjukkan cara menghapus dan memisahkan kelompok keamanan jaringan dari subnet tersebut:

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Remove-AzureNetworkSecurityGroupFromSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'

Pertimbangan Khusus untuk IP-SSL Eksplisit

Jika aplikasi dikonfigurasi dengan alamat IP-SSL eksplisit (hanya berlaku untuk ASE yang memiliki VIP publik), alih-alih menggunakan alamat IP default Lingkungan App Service, lalu lintas HTTP dan HTTPS akan mengalir ke subnet melalui port selain port 80 dan 443.

Untuk menemukan sepasang port individual yang digunakan oleh setiap alamat IP-SSL, buka portal dan lihat bilah UX detail Lingkungan App Service. Pilih Semua pengaturan>Alamat IP. Bilah Alamat IP menampilkan tabel semua alamat IP-SSL yang dikonfigurasi secara eksplisit untuk Lingkungan App Service. Bilah tersebut juga menunjukkan pasangan port khusus yang digunakan untuk merutekan lalu lintas HTTP dan HTTPS yang terkait dengan setiap alamat IP-SSL. Gunakan pasangan port ini untuk parameter DestinationPortRange ketika mengonfigurasi aturan dalam kelompok keamanan jaringan.

Saat aplikasi di ASE dikonfigurasi untuk menggunakan IP-SSL, pelanggan eksternal tidak akan melihat atau perlu khawatir tentang pemetaan pasangan port khusus. Lalu lintas ke aplikasi akan mengalir secara normal ke alamat IP-SSL yang dikonfigurasi. Terjemahan ke pasangan port khusus secara otomatis terjadi secara internal, selama pencabangan terakhir lalu lintas perutean ke subnet yang berisi ASE.

Memulai

Untuk memulai dengan Lingkungan App Service, lihat Pengantar Lingkungan App Service.

Untuk informasi selengkapnya, lihat Menyambungkan ke Backend Resources dengan Aman dari Lingkungan App Service.

Catatan

Jika Anda ingin mulai menggunakan Azure App Service sebelum mendaftar untuk akun Azure, buka Coba Layanan Aplikasi, di mana Anda dapat segera membuat aplikasi web starter berumur pendek di Layanan Aplikasi. Tidak diperlukan kartu kredit; tidak ada komitmen.