Bagikan melalui


Mengonfigurasi App Service Environment Anda dengan penerowongan paksa

Penting

Artikel ini tentang Lingkungan Azure App Service v2 yang digunakan dengan paket Azure App Service Terisolasi. App Service Environment v2 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 v2, 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 v2 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.

Azure App Service Environment (ASE) adalah penyebaran Azure App Service di Azure Virtual Network milik pelanggan. Banyak pelanggan mengonfigurasi jaringan virtual Azure mereka untuk menjadi ekstensi jaringan lokal menggunakan VPN atau koneksi Azure ExpressRoute. Penerowongan paksa adalah kejadian ketika Anda mengalihkan lalu lintas internet ke VPN Anda atau alat virtual sebagai gantinya. Peralatan virtual seringkali digunakan untuk memeriksa dan mengaudit lalu lintas jaringan keluar.

ASE memiliki sejumlah dependensi eksternal, yang dijelaskan dalam dokumen arsitektur jaringan App Service Environment. Pada umumnya, semua lalu lintas dependensi keluar ASE harus melalui VIP yang disediakan bersama ASE. Jika Anda mengubah perutean untuk lalu lintas ke atau dari ASE tanpa mengikuti informasi di bawah ini, ASE Anda akan berhenti beroperasi.

Dalam jaringan virtual Azure, perutean dilakukan berdasarkan kesesuaian awalan terpanjang (LPM). Jika terdapat lebih dari satu rute dengan kecocokan LPM yang sama, rute akan dipilih berdasarkan asalnya dalam urutan berikut:

  • Rute menurut pengguna (UDR)
  • Rute BGP (dalam penggunaan ExpressRoute)
  • Rute sistem

Untuk mempelajari selengkapnya mengenai perutean di jaringan virtual, baca Rute yang ditentukan pengguna dan penerusan IP.

Jika Anda ingin merutekan lalu lintas keluar ASE Anda di tempat selain langsung ke internet, Anda memiliki pilihan berikut:

  • Aktifkan ASE Anda untuk memperoleh akses internet langsung
  • Konfigurasikan subjaringan ASE Anda untuk mengabaikan rute BGP
  • Konfigurasikan subjaringan ASE Anda untuk menggunakan Titik Akhir Layanan ke Azure SQL dan Microsoft Azure Storage
  • Tambahkan IP Anda sendiri ke firewall ASE Azure SQL

Aktifkan Azure App Service Environment Anda untuk memiliki akses internet langsung

Untuk memungkinkan ASE Anda langsung terhubung ke internet meskipun jaringan virtual Azure Anda dikonfigurasi dengan ExpressRoute, Anda dapat:

  • Mengonfigurasi ExpressRoute untuk menampilkan 0.0.0.0/0. Secara default, ExpressRoute akan merutekan semua lalu lintas keluar di tempat.
  • Buat UDR dengan alamat awalan 0.0.0.0/0, jenis hop Internet berikutnya dan terapkan ke subjaringan ASE.

Jika Anda membuat dua perubahan ini, lalu lintas internet yang berasal dari subjaringan Azure App Service Environment tidak akan memutuskan koneksi ExpressRoute secara paksa.

Jika jaringan sudah merutekan lalu lintas secara lokal, maka Anda perlu membuat subjaringan untuk menghost ASE Anda dan mengonfigurasi UDR untuk itu sebelum mencoba untuk menyebarkan ASE.

Penting

Rute yang ditentukan dalam UDR harus cukup spesifik untuk diutamakan atas rute apa pun yang ditampilkan oleh konfigurasi ExpressRoute. Contoh sebelumnya menggunakan rentang alamat 0.0.0.0/0 yang terlalu luas. Hal ini berpotensi untuk dihapus oleh tampilan rute yang menggunakan rentang alamat yang lebih spesifik secara tidak sengaja.

Azure App Service Environment tidak didukung dengan konfigurasi ExpressRoute yang mengiklankan rute dari jalur peering publik ke jalur peering privat. Konfigurasi ExpressRoute dengan peering publik yang dikonfigurasi menerima tampilan rute dari Microsoft. Tampilan berisi sekumpulan besar rentang alamat Microsoft Azure. Jika rentang alamat ditampilkan secara silang di jalur peering pribadi, semua paket jaringan keluar dari subjaringan Azure App Service Environment akan dirutekan ke infrastruktur jaringan lokal pelanggan. Aliran jaringan ini tidak didukung secara default oleh Azure App Service Environment. Salah satu solusi atas masalah ini adalah menghentikan rute lintas tampilan dari jalur peering publik ke jalur peering privat. Solusi lain adalah mengaktifkan Azure App Service Environment Anda untuk bekerja dalam konfigurasi penerowongan.

Direct internet access

Konfigurasikan subjaringan ASE Anda untuk mengabaikan rute BGP

Anda dapat mengonfigurasi subjaringan ASE dengan tujuan mengabaikan semua rute BGP. Ketika dikonfigurasi untuk mengabaikan rute BGP, ASE akan dapat mengakses dependensi tanpa masalah. Namun, Anda harus membuat UDR agar aplikasi Anda dapat mengakses sumber daya lokal.

Untuk mengonfigurasi subjaringan ASE Anda dengan tujuan mengabaikan rute BGP:

  • buat UDR dan tetapkan ke subjaringan ASE jika Anda belum memilikinya.
  • Di portal Microsoft Azure, buka UI untuk tabel rute yang ditetapkan ke subjaringan ASE Anda. Pilih Konfigurasi. Autr propagasi rute gateway jaringan virtual ke Dinonaktifkan. Klik Simpan. Dokumentasi saat menonaktifkannya ada di dokumen Buat tabel rute.

Setelah Anda mengonfigurasi subjaringan ASE untuk mengabaikan semua rute BGP, aplikasi Anda tidak dapat diakses lagi secara lokal. Untuk memungkinkan aplikasi Anda mengakses sumber daya secara lokal, edit UDR yang ditetapkan ke subjaringan ASE Anda dan tambahkan rute untuk rentang alamat lokal Anda. Tipe hop selanjutnya harus diatur ke gateway jaringan Virtual.

Konfigurasikan ASE Anda dengan Titik Akhir Layanan

Untuk merutekan semua lalu lintas keluar dari ASE Anda, kecuali yang masuk ke Azure SQL dan Azure Storage, silakan lakukan langkah-langkah berikut:

  1. Buat tabel rute dan tetapkan pada subjaringan ASE Anda. Temukan alamat yang cocok dengan wilayah Anda di alamat manajemen Azure App Service Environment. Buat rute untuk alamat tersebut atau gunakan tag layanan AppServiceManagement dengan lompatan internet berikutnya. Rute ini diperlukan karena lalu lintas manajemen masuk Azure App Service Environment harus membalas dari alamat yang sama dengan pengiriman.

  2. Aktifkan Titik Akhir Layanan dengan Azure SQL dan Microsoft Azure Storage dengan subjaringan ASE Anda. Setelah langkah ini selesai, Anda kemudian dapat mengonfigurasi VNet Anda dengan penerowongan paksa.

Untuk detail tentang menggunakan ASE dengan templat, baca Membuat Lingkungan Azure App Service menggunakan template.

Titik Akhir Layanan memungkinkan Anda membatasi akses ke layanan multi-penyewa ke serangkaian jaringan dan subnet virtual Azure. Anda dapat membaca selengkapnya tentang Titik Akhir Layanan di dokumentasi Titik Akhir Layanan Jaringan Virtual.

Saat Anda mengaktifkan Titik Akhir Layanan pada sumber daya, terdapat rute yang dibuat dengan prioritas lebih tinggi dibandingkan semua rute lainnya. Jika Anda menggunakan Service Endpoints dengan ASE penerowongan paksa, lalu lintas manajemen Azure SQL dan Microsoft Azure Storage tidak akan melakukan penerowongan paksa. Lalu lintas dependensi ASE lainnya akan mengalami penerowongan paksa dan tidak dapat dihapus, atau ASE tidak akan berfungsi dengan baik.

Saat Titik Akhir Layanan diaktifkan di subjaringan dengan instans Azure SQL, semua instans Azure SQL yang terhubung ke atau dari subjaringan tersebut harus mengaktifkan Titik Akhir Layanan. jika Anda ingin mengakses beberapa instans Azure SQL dari subnet yang sama, Anda tidak dapat mengaktifkan Service Endpoints pada satu instans Azure SQL dan tidak pada yang lain. Microsoft Azure Storage tidak berfungsi sama dengan Azure SQL. Saat Anda mengaktifkan Service Endpoints dengan Azure Storage, Anda mengunci akses ke sumber daya tersebut dari subnet Anda tetapi masih dapat mengakses akun Azure Storage lainnya meskipun mereka tidak mengaktifkan Service Endpoints.

Jika Anda mengonfigurasi penerowongan paksa dengan alat pemfilter jaringan, ingatlah bahwa ASE memiliki dependensi selain Azure SQL dan Azure Storage. Jika lalu lintas ke dependensi tersebut diblokir, ASE tidak akan berfungsi dengan baik.

Forced tunnel with service endpoints

Tambahkan IP Anda sendiri ke firewall ASE Azure SQL

Untuk melakukan penerowongan pada semua lalu lintas keluar dari ASE Anda, kecuali yang masuk ke Microsoft Azure Storage, lakukan langkah-langkah berikut:

  1. Buat tabel rute dan tetapkan pada subjaringan ASE Anda. Temukan alamat yang cocok dengan wilayah Anda di alamat manajemen Azure App Service Environment. Buat rute untuk alamat tersebut menggunakan hop internet berikutnya. Rute ini diperlukan karena lalu lintas manajemen masuk Azure App Service Environment harus membalas dari alamat yang sama dengan pengiriman.

  2. Mengaktifkan Titik Akhir Layanan dengan Microsoft Azure Storage dengan subjaringan ASE Anda

  3. Dapatkan alamat yang akan digunakan untuk semua lalu lintas keluar dari Lingkungan Azure App Service Anda ke internet. Jika Anda merutekan lalu lintas di tempat, alamat ini merupakan POP atau IP gateway Anda. Jika Anda ingin merutekan lalu lintas keluar Azure App Service Environment melalui NVA, alamat keluar merupakan IP publik NVA.

  4. Untuk mengatur alamat jalan keluar di App Service Environment yang ada: Buka resources.azure.com, dan buka Subscription/<subscription id>/resourceGroups/<ase resource group>/providers/Microsoft.Web/hostingEnvironments/<ase name>. Kemudian Anda dapat melihat JSON yang menjelaskan Azure App Service Environment Anda. Pastikan tertulis baca/tulis di bagian atas. Pilih Edit. Gulirkan ke paling bawah. Ubah nilai userWhitelistedIpRanges dari null menjadi seperti berikut ini. Gunakan alamat yang ingin Anda gunakan sebagai rentang alamat keluar.

    "userWhitelistedIpRanges": ["11.22.33.44/32", "55.66.77.0/24"]
    

    Pilih TETAPKAN di bagian atas. Opsi ini memicu operasi skala pada Azure App Service Environment Anda dan menyesuaikan firewall.

Untuk membuat ASE Anda dengan alamat keluar: Ikuti petunjuk di Membuat Azure App Service Environment dengan template dan menarik ke bawah template yang sesuai. Edit bagian "sumber daya" di azuredeploy.jsfile, tetapi tidak di blok "properti" dan masukkan baris untuk userWhitelistedIpRanges dengan nilai Anda.

"resources": [
    {
        "apiVersion": "2015-08-01",
        "type": "Microsoft.Web/hostingEnvironments",
        "name": "[parameters('aseName')]",
        "kind": "ASEV2",
        "location": "[parameters('aseLocation')]",
        "properties": {
            "name": "[parameters('aseName')]",
            "location": "[parameters('aseLocation')]",
            "ipSslAddressCount": 0,
            "internalLoadBalancingMode": "[parameters('internalLoadBalancingMode')]",
            "dnsSuffix" : "[parameters('dnsSuffix')]",
            "virtualNetwork": {
                "Id": "[parameters('existingVnetResourceId')]",
                "Subnet": "[parameters('subnetName')]"
            },
            "userWhitelistedIpRanges":  ["11.22.33.44/32", "55.66.77.0/30"]
        }
    }
]

Perubahan ini mengirim lalu lintas ke Microsoft Azure Storage langsung dari ASE dan memungkinkan akses ke Azure SQL dari alamat tambahan selain VIP ASE.

Forced tunnel with SQL allowlist

Pencegahan masalah

Jika komunikasi antara ASE dan dependensinya terputus, ASE akan menjadi tidak sehat. Jika ASE berada dalam kondisi tidak sehat terlalu lama, maka ASE akan ditangguhkan. Untuk membatalkan pembayaran ASE, ikuti instruksi pada portal ASE Anda.

Selain memutuskan komunikasi, Anda dapat merugikan ASE Anda karena memasukkan terlalu banyak latensi. Latensi yang terlalu banyak dapat terjadi jika ASE Anda terlalu jauh dari jaringan lokal Anda. Maksudnya terlalu jauh adalah terpisah oleh lautan atau benua untuk mencapai jaringan lokal. Latensi juga dapat terhadi karena kemacetan intranet atau kendala bandwidth keluar.