Aplikasi web yang dikelola dengan aman

Azure App Service
Azure Application Gateway
Database Azure SQL
Azure VPN Gateway
Azure Web Application Firewall

Artikel ini menjelaskan cara menyebarkan aplikasi yang aman dengan menggunakan Lingkungan App Service. Arsitektur ini menggunakan Azure Application Gateway dan Azure Web Application Firewall untuk membatasi akses aplikasi dari internet. Artikel ini juga menjelaskan cara mengintegrasikan integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD) dengan Lingkungan App Service dengan menggunakan Azure DevOps.

Industri seperti perbankan dan asuransi sering menggunakan solusi ini karena pelanggan menghargai keamanan tingkat platform dan tingkat aplikasi. Untuk menunjukkan konsep-konsep ini, contoh aplikasi berikut memungkinkan pengguna untuk mengirimkan laporan pengeluaran.

Arsitektur

Diagram yang memperlihatkan arsitektur skenario contoh untuk penerapan App Service Environment dengan penyeimbang beban internal yang aman.

Unduh file Visio arsitektur ini.

Aliran Data

Aliran data berikut sesuai dengan diagram sebelumnya:

  1. Permintaan HTTP dan HTTPS mencapai gateway aplikasi.

  2. Secara opsional, autentikasi Microsoft Entra diaktifkan untuk aplikasi web. Setelah lalu lintas mencapai gateway aplikasi, pengguna diminta untuk menyediakan kredensial untuk mengautentikasi dengan aplikasi. Diagram tidak memperlihatkan langkah ini.

  3. Permintaan pengguna mengalir melalui penyeimbang beban internal (ILB) lingkungan, yang merutekan lalu lintas ke aplikasi web pengeluaran.

  4. Pengguna membuat laporan pengeluaran.

  5. Sebagai bagian dari membuat laporan pengeluaran, aplikasi API yang disebarkan dipanggil untuk mengambil nama dan email manajer pengguna.

  6. Sistem menyimpan laporan pengeluaran di Azure SQL Database.

  7. Untuk memfasilitasi penyebaran berkelanjutan, kode diperiksa ke instans Azure DevOps.

  8. Mesin virtual build (VM) mencakup agen Azure DevOps. Agen ini memungkinkan VM build untuk menarik artefak aplikasi web dan menggunakannya untuk menyebarkan aplikasi web ke App Service Environment. VM build berada di subnet dalam jaringan virtual yang sama dengan Lingkungan App Service.

Komponen

  • Lingkungan App Service menyediakan lingkungan khusus yang sepenuhnya terisolasi untuk menjalankan aplikasi dengan aman dalam skala tinggi. Baik Lingkungan App Service maupun beban kerjanya berada di belakang jaringan virtual, sehingga penyiapan menambahkan lapisan keamanan dan isolasi tambahan. Skenario ini menggunakan ILB App Service Environment untuk memenuhi kebutuhan akan skala tinggi dan isolasi.

  • Beban kerja ini menggunakan tingkat harga terisolasi App Service. Aplikasi ini berjalan di lingkungan khusus privat di pusat data Azure yang menggunakan prosesor yang lebih cepat dan penyimpanan solid-state drive (SSD), dan menyediakan kemampuan peluasan skala maksimum.

  • Fitur Web Apps dan API Apps dari App Service meng-host aplikasi web dan API RESTful. Aplikasi dan API ini dihosting pada paket layanan Terisolasi, yang juga menyediakan autoscaling, domain kustom, dan kemampuan lainnya di tingkat khusus.

  • Application Gateway adalah penyeimbang beban lalu lintas web layer-7 yang mengelola lalu lintas ke aplikasi web. Ini menyediakan offloading Secure Sockets Layer (SSL), yang menghapus overhead mendekripsi lalu lintas data dari server web yang bertugas menghosting aplikasi.

  • Web Application Firewall adalah fitur Application Gateway yang meningkatkan keamanan. Firewall aplikasi web menggunakan aturan Open Worldwide Application Security Project (OWASP) untuk melindungi aplikasi web dari serangan, seperti pembuatan skrip lintas situs, pembajakan sesi, dan injeksi SQL.

  • SQL Database menyimpan data aplikasi. Sebagian besar data bersifat relasional, dengan beberapa data disimpan sebagai dokumen dan blob.

  • Microsoft Azure Virtual Network menyediakan berbagai kemampuan jaringan di Azure. Anda dapat melakukan peering jaringan virtual bersama-sama dan membangun koneksi dengan pusat data lokal melalui ExpressRoute atau jaringan privat virtual (VPN) situs-ke-situs. Skenario ini memungkinkan titik akhir layanan di jaringan virtual untuk memastikan bahwa data hanya mengalir antara jaringan virtual Azure dan instans SQL Database.

  • Azure DevOps mendukung pengembangan tangkas dengan membantu tim berkolaborasi selama sprint dan dengan menyediakan alat untuk membuat alur build dan rilis.

  • Azure build VM memungkinkan agen yang diinstal untuk menurunkan build masing-masing dan menyebarkan aplikasi web ke lingkungan.

Alternatif

Lingkungan App Service dapat menjalankan aplikasi web reguler di Windows atau, seperti dalam contoh ini, aplikasi web yang berjalan sebagai kontainer Linux yang disebarkan di dalam lingkungan. Skenario ini menggunakan Lingkungan App Service untuk menghosting aplikasi kontainer instans tunggal ini. Pertimbangkan alternatif berikut saat Anda merancang solusi Anda:

  • Azure Container Apps adalah platform tanpa server yang mengurangi overhead infrastruktur dan menghemat biaya saat menjalankan aplikasi dalam kontainer. Ini menghilangkan kebutuhan untuk mengelola konfigurasi server, orkestrasi kontainer, dan detail penyebaran. Container Apps menyediakan semua sumber daya server up-to-date yang diperlukan untuk menjaga aplikasi Anda tetap stabil dan aman.

  • Azure Kubernetes Service (AKS) adalah proyek sumber terbuka dan platform orkestrasi yang dirancang untuk menghosting aplikasi multikontainer kompleks yang biasanya menggunakan arsitektur berbasis layanan mikro. AKS adalah layanan Azure terkelola yang menyederhanakan provisi dan konfigurasi kluster Kubernetes. Anda harus memiliki pengetahuan yang signifikan tentang platform Kubernetes untuk mendukung dan memeliharanya, jadi hanya menghosting beberapa aplikasi web kontainer instans tunggal yang mungkin bukan pilihan terbaik.

Gunakan alternatif berikut untuk tingkat data:

  • Azure Cosmos DB adalah opsi yang baik jika sebagian besar data Anda dalam format nonrelasional.

Kemungkinan kasus penggunaan

Pertimbangkan solusi ini untuk kasus penggunaan berikut:

  • Buat aplikasi web Azure yang memerlukan keamanan tambahan.
  • Sediakan tenant khusus daripada tenant bersama pada paket App Service.
  • Gunakan Azure DevOps dengan App Service Environment yang diseimbangkan beban secara internal.

Menyikapi keputusan desain TLS dan DNS

Pengaturan Sistem Nama Domain (DNS) untuk akhiran domain default Lingkungan App Service tidak membatasi keterjangkauan aplikasi ke nama tersebut. Fitur akhiran domain kustom untuk ILB App Service Environment memungkinkan Anda menggunakan akhiran domain Anda sendiri untuk mengakses aplikasi yang dihosting di Lingkungan App Service Anda.

Akhiran domain kustom mendefinisikan domain akar yang digunakan Lingkungan App Service. Untuk ILB App Service Environment, domain akar defaultnya adalah appserviceenvironment.net. ILB App Service Environment bersifat internal untuk jaringan virtual pelanggan, sehingga pelanggan dapat menggunakan domain akar selain domain default yang selaras dengan lingkungan jaringan virtual mereka. Misalnya, Contoso Corporation mungkin menggunakan root domain default internal.contoso.com untuk aplikasi yang dimaksudkan agar dapat di-resolusi dan hanya dapat dijangkau dalam jaringan virtual Contoso. Aplikasi di jaringan virtual ini dapat dijangkau dengan mengakses APP-NAME.internal.contoso.com.

Akhiran domain kustom diterapkan pada App Service Environment. Fitur ini berbeda dari pengikatan domain kustom pada instans App Service individual.

Jika sertifikat yang digunakan untuk akhiran domain kustom berisi entri Nama Alternatif Subjek (SAN) untuk *.scm.CUSTOM-DOMAIN, situs Source Control Manager (SCM) menjadi dapat dijangkau dari APP-NAME.scm.CUSTOM-DOMAIN. Anda hanya dapat mengakses SCM melalui domain kustom dengan menggunakan autentikasi dasar. Single sign-on hanya tersedia saat Anda menggunakan domain akar bawaan.

Pertimbangkan faktor-faktor berikut saat Anda mengelola sertifikat di ILB App Service Environment:

  • Simpan sertifikat SSL atau Keamanan Lapisan Transportasi (TLS) yang valid di brankas kunci Azure di . Format PFX.

  • Pastikan sertifikat kurang dari 20 KB.

  • Gunakan sertifikat wildcard untuk domain kustom yang dipilih.

  • Konfigurasikan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna untuk Lingkungan App Service Anda. Identitas terkelola mengautentikasi terhadap brankas kunci Azure tempat sertifikat SSL atau TLS berada.

  • Diharapkan Lingkungan Layanan Aplikasi akan menerapkan perubahan sertifikat dalam waktu 24 jam setelah rotasi kunci di brankas.

Akses jaringan ke Azure Key Vault

  • Anda dapat mengakses brankas kunci secara publik atau melalui titik akhir privat yang dapat dijangkau dari subnet tempat Lingkungan App Service disebarkan.

  • Jika Anda menggunakan akses publik, Anda dapat mengamankan key vault untuk hanya menerima lalu lintas dari alamat IP keluar Lingkungan Layanan Aplikasi.

  • Lingkungan App Service menggunakan alamat IP keluar platform sebagai alamat sumber saat mengakses brankas kunci. Anda dapat menemukan alamat IP ini di halaman Alamat IP di portal Microsoft Azure.

Konfigurasi DNS

Untuk mengakses aplikasi Anda di Lingkungan App Service dengan menggunakan akhiran domain kustom Anda, konfigurasikan server DNS Anda sendiri atau konfigurasikan DNS di zona DNS privat Azure untuk domain kustom Anda. Untuk informasi selengkapnya, lihat Konfigurasi DNS.

Memastikan keamanan nama host baku yang unik

Fitur nama host default unik yang aman menyediakan solusi jangka panjang untuk melindungi sumber daya Anda dari data DNS yang tidak stabil dan pengambilalihan subdomain. Jika Anda mengaktifkan fitur ini untuk sumber daya App Service, tidak ada orang di luar organisasi Anda yang dapat membuat ulang sumber daya yang memiliki nama host default yang sama. Perlindungan ini mencegah penyerang berbahaya mengeksploitasi entri DNS yang menggantung dan mengambil alih subdomain. Untuk informasi selengkapnya, lihat Mengamankan nama host default unik.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat Anda gunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Well-Architected Framework.

Keandalan

Keandalan membantu memastikan bahwa aplikasi Anda dapat memenuhi komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keandalan.

Ketersediaan

Keamanan

Keamanan memberikan perlindungan dari serangan yang disengaja dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keamanan.

Pengoptimalan Biaya

Pengoptimalan Biaya berfokus pada cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Pengoptimalan Biaya.

Jelajahi biaya menjalankan skenario ini. Contoh profil biaya berikut didasarkan pada lalu lintas yang diharapkan. Semua layanan telah dikonfigurasi sebelumnya dalam kalkulator biaya.

  • Penyebaran kecil: Contoh harga ini mewakili komponen untuk instans tingkat produksi minimum yang melayani beberapa ribu pengguna setiap bulan. Aplikasi ini menggunakan satu instans kecil aplikasi web yang terisolasi. Setiap komponen tambahan diskalakan ke tingkat Dasar untuk meminimalkan biaya sekaligus memastikan dukungan perjanjian tingkat layanan (SLA) dan kapasitas yang memadai untuk menangani beban kerja tingkat produksi.

  • Penyebaran sedang: Contoh harga ini mewakili komponen untuk penyebaran ukuran sedang yang melayani sekitar 100.000 pengguna setiap bulan. Instans berukuran sedang dari App Service terisolasi tunggal mengelola lalu lintas. Peningkatan kapasitas Application Gateway dan SQL Database untuk mendukung beban kerja yang ditambahkan.

  • Penyebaran besar: Contoh harga ini mewakili komponen untuk aplikasi skala tinggi yang melayani jutaan pengguna setiap bulan dan memindahkan terabyte data. Tingkat penggunaan ini memerlukan aplikasi web berkinerja tinggi dan terisolasi yang disebarkan di beberapa wilayah yang dikelola oleh Azure Traffic Manager. Perkiraan tersebut mencakup Traffic Manager dan instance Application Gateway dan Virtual Network tambahan. Kapasitas SQL Database meningkat untuk mendukung beban kerja yang ditambahkan.

Untuk melihat harga untuk kasus penggunaan khusus Anda, ubah variabel yang sesuai agar sesuai dengan lalu lintas yang Diharapkan.

Efisiensi Performa

Efisiensi Performa mengacu pada kemampuan beban kerja Anda untuk menskalakan untuk memenuhi tuntutan pengguna secara efisien. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Efisiensi Performa.

Kontributor

Microsoft mempertahankan artikel ini. Kontributor berikut menulis artikel ini.

Penulis utama:

  • Nicholas McCollum | Insinyur Pelanggan Utama

Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.

Langkah berikutnya