Melindungi API dengan Application Gateway dan API Management

Azure API Management
Azure Application Gateway

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.

Arsitektur

Artikel ini tidak membahas layanan utama 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.

Diagram showing how Application Gateway and API Management protect APIs.

Unduh file Visio arsitektur ini.

Alur kerja

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

Komponen

  • Azure Virtual Network memungkinkan banyak jenis sumber daya Azure untuk berkomunikasi secara privat satu sama lain, internet, dan jaringan lokal.

  • 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). Ini 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.

Rekomendasi

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.

  • Kelola sertifikat dan kata sandi di Azure Key Vault.

  • Untuk menyesuaikan interaksi dengan layanan, Anda dapat menggunakan entri CNAME.

Alternatif

Anda dapat menggunakan layanan lain untuk memberikan tingkat perlindungan firewall dan Web Application Firewall (WAF) yang serupa:

Pertimbangan

Keandalan

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

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

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 kinerja

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.

Menyebarkan skenario ini

Skenario ini ditunjukkan dalam publikasi galeri Mulai Cepat Azure Application Gateway dengan API Management internal dan Aplikasi Web.

Langkah berikutnya

Rancang API Anda dengan mengikuti panduan desain API Web yang baik dan terapkan menggunakan praktik implementasi API Web yang baik.