Dengan lebih banyak beban kerja yang mematuhi pendekatan API-first untuk desain mereka, dan semakin banyaknya jumlah dan tingkat ancaman terhadap aplikasi web melalui internet, sangat penting untuk memiliki strategi keamanan untuk melindungi API. Salah satu langkah menuju keamanan API adalah melindungi lalu lintas jaringan dengan menggunakan pola Perutean Gateway. Anda menggunakan gateway untuk membatasi lokasi sumber lalu lintas dan kualitas lalu lintas selain mendukung aturan perutean yang fleksibel. Artikel ini menjelaskan cara menggunakan Azure Application Gateway dan Azure API Management untuk melindungi akses API.
Artikel ini tidak membahas platform yang mendasar aplikasi, seperti App Service Environment, Azure SQL Managed Instance, dan Azure Kubernetes Services. Bagian-bagian diagram itu hanya menampilkan apa yang dapat Anda lakukan sebagai solusi yang lebih luas. Artikel ini secara khusus membahas area yang diarsir, API Management dan Application Gateway.
Unduh file Visio arsitektur ini.
Application Gateway menerima permintaan HTTP yang telah diizinkan oleh Kelompok Keamanan Jaringan (NSG) subnet-nya.
Web Application Firewall (WAF) di Application Gateway kemudian memeriksa permintaan terhadap aturan WAF, termasuk aturan kustom Geomatch. Jika permintaan valid, permintaan akan dilanjutkan.
Application Gateway menyiapkan mekanisme proksi URL yang mengirim permintaan ke kumpulan backend yang tepat. Misalnya, bergantung pada format URL panggilan API:
URL yang diformat seperti
api.<some-domain>/external/*
dapat mencapai back end untuk berinteraksi dengan API yang diminta.Panggilan yang diformat sebagai
api.<some-domain>/*
masuk ke buntu (sinkpool), yang merupakan kumpulan back-end tanpa target.
Selain itu, Application Gateway menerima dan memproksi panggilan internal, yang berasal dari sumber daya di jaringan virtual Azure yang sama, di bawah
api.<some-domain>/internal/*
.Akhirnya, di tingkat API Management, API disiapkan untuk menerima panggilan menurut pola berikut:
api.<some-domain>/external/*
api.<some-domain>/internal/*
Dalam skenario ini, API Management menggunakan dua jenis alamat IP, publik dan pribadi. Alamat IP publik adalah untuk komunikasi internal pada port 3443, dan untuk lalu lintas waktu-jalan API dalam konfigurasi jaringan virtual eksternal. Ketika API Management mengirimkan permintaan ke back end publik yang berhadapan-dengan-internet, itu menunjukkan alamat IP publik sebagai asal permintaan. Untuk informasi selengkapnya, lihat alamat IP dari layanan API Management di VNet.
Aturan perutean di tingkat Application Gateway mengalihkan pengguna
portal.<some-domain>/*
dengan benar ke portal pengembang, sehingga pengembang dapat mengelola API dan konfigurasi mereka dari lingkungan internal dan eksternal.
Azure Virtual Network memungkinkan banyak jenis sumber daya Azure untuk berkomunikasi secara privat satu sama lain, internet, dan jaringan lokal. Dalam arsitektur ini, Application Gateway bertanggung jawab untuk mengalihkan lalu lintas Internet publik ke dalam jaringan privat ini.
Azure Application Gateway adalah penyeimbang beban lalu lintas web yang mengelola lalu lintas ke aplikasi web. Jenis perutean ini dikenal sebagai penyeimbangan beban lapisan aplikasi (OSI layer 7). Dalam arsitektur ini, tidak hanya gateway yang digunakan untuk perutean, gateway juga menghosting Web Application Firewall (WAF) untuk melindungi dari vektor serangan berbasis web umum.
Azure API Management adalah platform manajemen multicloud hibrid untuk API di semua lingkungan. API Management membuat API gateway yang konsisten, modern untuk layanan backend yang ada. Dalam arsitektur ini, API Management digunakan dalam mode yang sepenuhnya privat untuk membongkar masalah lintas pemotongan dari kode API dan host.
Solusi ini berfokus pada penerapan seluruh solusi, dan pengujian akses API dari dalam dan luar jaringan virtual API Management. Untuk informasi selengkapnya tentang proses integrasi jaringan virtual API Management, lihat Mengintegrasikan API Management dalam VNET internal dengan Application Gateway.
Untuk berkomunikasi dengan sumber daya privat di ujung belakang, Application Gateway dan API Management harus berada di jaringan virtual yang sama dengan sumber daya atau di jaringan virtual yang di-peering.
Model penyebaran internal, pribadi memungkinkan API Management untuk terhubung ke jaringan virtual yang ada, sehingga dapat dijangkau dari dalam konteks jaringan itu. Untuk mengaktifkan fitur ini, sebarkan tingkat Pengembang atau Premium API Management.
Mengelola sertifikat App Gateway di Azure Key Vault.
Untuk menyesuaikan interaksi dengan layanan, Anda dapat menggunakan entri CNAME.
Anda dapat menggunakan layanan lain untuk memberikan tingkat perlindungan firewall dan Web Application Firewall (WAF) yang serupa:
- Azure Front Door
- Azure Firewall
- Solusi mitra seperti Barracuda
- Solusi lain yang tersedia di Azure Marketplace
Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.
Keandalan memastikan aplikasi Anda dapat memenuhi komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat daftar periksa tinjauan desain untukKeandalan .
Azure Application Gateway selalu disebarkan dengan cara yang sangat tersedia, apa pun jumlah instansnya. Untuk menghindari dampak kerusakan zona, Anda dapat mengonfigurasi Application Gateway untuk menjangkau beberapa Zona Ketersediaan. Untuk informasi lebih lanjut, lihat Penskalaan otomatis dan Ketersediaan Tinggi.
Aktifkan redundansi zona untuk komponen layanan API Management Anda untuk memberikan ketahanan dan ketersediaan tinggi. Redundansi zona mereplikasi API Management gateway dan bidang kontrol di seluruh pusat data di zona yang terpisah secara fisik, sehingga tahan terhadap kegagalan zona. Tingkat API Management Premium diperlukan untuk mendukung Zona ketersediaan.
API Management juga mendukung penyebaran multi-wilayah, yang dapat meningkatkan ketersediaan jika satu wilayah offline. Untuk informasi selengkapnya, lihat Penyebaran multi-wilayah. Dalam topologi ini, penting untuk juga memiliki satu Application Gateway per wilayah, karena Application Gateway adalah layanan regional.
Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat daftar periksa tinjauan desain untuk Keamanan.
Untuk informasi lebih lanjut tentang keamanan Application Gateway, lihat Dasar keamanan Azure untuk Application Gateway.
Untuk informasi lebih lanjut tentang keamanan API Management, lihat Dasar keamanan Azure untuk API Management.
Azure DDoS Protection, dikombinasikan dengan praktik terbaik desain aplikasi, menyediakan fitur mitigasi DDoS yang ditingkatkan untuk memberikan lebih banyak pertahanan terhadap serangan DDoS. Anda harus mengaktifkan Azure DDOS Protection di jaringan virtual perimeter apa pun.
Pengoptimalan Biaya adalah tentang melihat cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat daftar periksa Design review untuk Pengoptimalan Biaya.
Biaya desain ini tergantung pada aspek konfigurasi, seperti:
- Tingkat layanan
- Skalabilitas, berarti jumlah instans yang dialokasikan secara dinamis oleh layanan untuk mendukung permintaan tertentu
- Apakah desain ini akan berjalan terus-menerus atau hanya beberapa jam sebulan
Setelah memeriksa aspek-aspek ini, buka Azure Pricing Calculator untuk memperkirakan biaya.
Efisiensi Performa adalah kemampuan beban kerja Anda untuk memenuhi tuntutan yang ditempatkan di dalamnya oleh pengguna dengan cara yang efisien. Untuk informasi selengkapnya, lihat daftar periksa tinjauan Desain untukEfisiensi Performa .
Application Gateway adalah titik masuk untuk desain ini, dan fitur WAF memerlukan daya pemrosesan tambahan untuk setiap analisis permintaan. Untuk membolehkan Application Gateway memperluas kapasitas komputasinya di tempat, penting untuk mengaktifkan penskalaan otomatis. Untuk informasi lebih lanjut, lihat Tentukan autoscale. Ikuti rekomendasi dokumentasi produk ukuran subnet untuk Application Gateway. Ini memastikan subnet cukup besar untuk mendukung peluasan skala penuh.
Untuk mendukung skenario yang sangat bersamaan, aktifkan autoscaling API Management. Penskalaan otomatis memperluas kemampuan API Management sebagai respons terhadap meningkatnya jumlah permintaan masuk. Untuk informasi selengkapnya, lihat Menskalakan instans Azure API Management secara otomatis.
Skenario ini ditunjukkan dalam publikasi galeri Mulai Cepat Azure Application Gateway dengan API Management internal dan Aplikasi Web.
Rancang API Anda dengan mengikuti panduan desain API Web yang baik dan terapkan menggunakan praktik implementasi API Web yang baik.