Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
API telah menjadi semakin integral dengan bagaimana organisasi dan pelanggan mereka mengakses layanan, baik dalam sistem internal maupun melalui saluran eksternal. Secara internal, API memfasilitasi akses ke aplikasi lini bisnis (LoB), solusi kepemilikan, dan integrasi mitra. Secara eksternal, semakin banyak organisasi yang berfokus pada peningkatan produktivitas dan menghasilkan pendapatan melalui monetisasi API. Mengingat tren ini, Azure API Management berfungsi sebagai elemen dasar dalam tata kelola standar, publikasi, dan pengawasan API baik untuk pemangku kepentingan internal maupun eksternal.
Azure Application Gateway berfungsi sebagai titik pemeriksaan keamanan untuk API. Alih-alih memungkinkan pengguna terhubung langsung melalui internet, Anda merutekan semua lalu lintas melalui gateway aplikasi. Penyiapan ini menambahkan kontrol akses tambahan untuk membantu melindungi API Anda. Dengan pendekatan ini, Anda dapat menggunakan satu instans API Management untuk mendukung API internal dalam organisasi dan API eksternal di luar organisasi Anda, sambil menjaga API yang diekspos secara publik diamankan di belakang gateway.
Arsitektur
Unduh file Visio dari arsitektur ini.
Arsitektur ini mengasumsikan bahwa kebijakan diterapkan dari referensi implementasi zona landasan Azure dan bahwa struktur diturunkan dari grup manajemen.
Alur kerja
Alamat IP publik ditetapkan ke gateway aplikasi, yang berfungsi sebagai titik masuk untuk lalu lintas eksternal. Titik akhir tersebut mengekspos API melalui domain kustom.
Gateway aplikasi disebarkan di subnetnya sendiri dan dilindungi oleh kebijakan Web Application Firewall (WAF) untuk memeriksa dan memfilter permintaan masuk.
Lalu lintas dirutekan dari gateway aplikasi menuju API Management (Premium), yang terletak di subnet API Management yang terpisah. Instans API Management dikonfigurasi dalam mode internal, yang mencegah akses publik langsung.
Titik akhir privat digunakan untuk menghubungkan API Management dengan aman ke server aplikasi back-end yang hanya diekspos ke jaringan virtual. API Management juga secara berkala menghubungkan dependensi, seperti Azure Key Vault. Biasanya, semua konektivitas privat ini terjadi pada titik akhir dalam subnet khusus titik akhir privat.
ruang kerja Log Analytics dan Application Insights terintegrasi untuk pencatatan log, pemantauan, dan telemetri.
Komponen
API Management adalah layanan terkelola yang memungkinkan Anda mengelola layanan di seluruh lingkungan hibrid dan multicloud. Ini memberikan kontrol dan keamanan untuk observabilitas dan konsumsi API oleh pengguna internal dan eksternal. Dalam arsitektur ini, API Management berfungsi sebagai fasad untuk mengabstraksi arsitektur back-end.
Application Gateway adalah layanan terkelola yang berfungsi sebagai penyeimbang beban layer-7 dan WAF. Application Gateway melindungi instans API Management internal, yang memungkinkan penggunaan mode internal dan eksternal. Dalam arsitektur ini, API Management mengamankan API, dan Application Gateway menambahkan kemampuan pelengkap seperti WAF.
zona Private Domain Name System (DNS) adalah fitur Azure DNS yang memungkinkan Anda mengelola dan mengatasi nama domain dalam jaringan virtual tanpa perlu menerapkan solusi DNS kustom. Zona DNS privat dapat diselaraskan ke satu atau beberapa jaringan virtual melalui tautan jaringan virtual. Dalam arsitektur ini, zona DNS privat diperlukan untuk memastikan resolusi nama yang tepat dalam jaringan virtual.
Application Insights adalah layanan manajemen performa aplikasi yang dapat diperluas yang membantu pengembang mendeteksi anomali, mendiagnosis masalah, dan memahami pola penggunaan. Application Insights menampilkan manajemen dan pemantauan performa aplikasi yang dapat diperluas untuk aplikasi web langsung. Berbagai platform didukung, termasuk .NET, Node.js, Java, dan Python. Ini mendukung aplikasi yang dihosting di Azure, lokal, di lingkungan hibrid, atau di cloud publik lainnya. Dalam arsitektur ini, Application Insights memantau perilaku aplikasi yang disebarkan.
Log Analytics adalah alat analisis data berbasis cloud yang memungkinkan Anda mengedit dan menjalankan kueri log terhadap data di Log Azure Monitor, secara opsional dari dalam portal Azure. Pengembang dapat menjalankan kueri sederhana untuk mengambil rekaman atau menggunakan Log Analytics untuk analisis tingkat lanjut, lalu memvisualisasikan hasilnya. Dalam arsitektur ini, Log Analytics menggabungkan semua log sumber daya platform untuk analisis dan pelaporan.
Azure Key Vault adalah layanan cloud yang menyimpan dan mengakses rahasia dengan aman. Rahasia ini berkisar dari kunci API dan kata sandi hingga sertifikat dan kunci kriptografi. Dalam arsitektur ini, Key Vault menyimpan sertifikat Secure Sockets Layer (SSL) yang digunakan Application Gateway.
Alternatif
Untuk layanan back-end yang terhubung dengan instans API Management, beberapa alternatif tersedia:
Azure App Service adalah layanan berbasis HTTP yang dikelola sepenuhnya yang membangun, menyebarkan, dan menskalakan aplikasi web. Ini mendukung .NET, .NET Core, Java, Ruby, Node.js, PHP, dan Python. Aplikasi dapat berjalan dan menskalakan di lingkungan berbasis Windows atau Linux.
Azure Kubernetes Service (AKS) adalah penawaran Kubernetes terkelola yang memberikan kluster yang dikelola sepenuhnya. Ini memungkinkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), bersama dengan tata kelola dan keamanan bawaan.
Azure Logic Apps adalah platform berbasis cloud yang membuat dan menjalankan alur kerja otomatis. Untuk informasi selengkapnya, lihat contoh arsitektur referensi.
Azure Container Apps adalah layanan kontainer tanpa server yang dikelola sepenuhnya yang memungkinkan Anda menjalankan layanan mikro dan aplikasi kontainer pada platform tanpa server.
Untuk penyebaran multiregion, pertimbangkan untuk menggunakan Azure Front Door untuk menyediakan akses yang cepat, andal, dan aman antara pengguna Dan konten web statis dan dinamis aplikasi Anda.
Untuk melihat contoh tambahan tentang bagaimana Application Gateway dapat melindungi API, lihat Melindungi API dengan Application Gateway dan API Management.
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.
Sebarkan setidaknya dua unit skala API Management yang tersebar di dua zona ketersediaan atau lebih di setiap wilayah. Pantau metrik kapasitas, dan provisikan unit kapasitas yang memadai sehingga Anda dapat terus beroperasi meskipun unit dalam satu zona ketersediaan hilang.
Kami menyarankan agar Anda menggunakan tingkat Premium karena mendukung zona ketersediaan dan penyebaran multiregion. Kemampuan ini berarti bahwa layanan Anda dapat terus berjalan meskipun satu wilayah atau zona tidak berfungsi. Fitur-fitur ini membantu melindungi aplikasi Anda selama pemadaman atau bencana.
Untuk pemulihan bencana, siapkan API Management dengan identitas terkelola yang ditetapkan pengguna alih-alih identitas yang ditetapkan sistem. Jika Anda menyebarkan ulang atau menghapus sumber daya, identitas dan izinnya tetap ada, sehingga Anda dapat memulihkan akses dengan lebih mudah. Gunakan Azure Pipelines untuk mengotomatiskan pencadangan. Tentukan apakah Anda perlu menyebarkan layanan Anda di lebih dari satu wilayah untuk keandalan yang lebih baik.
Peering jaringan virtual memberikan performa yang kuat dalam suatu wilayah, tetapi memiliki batas skalabilitas 500 jaringan. Jika Anda perlu menyambungkan lebih banyak beban kerja, gunakan desain hub-spoke atau Azure Virtual WAN.
Keamanan
Keamanan memberikan jaminan terhadap serangan yang disengaja dan penyalahgunaan data dan sistem penting Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keamanan.
Kebijakan validasi API Management memvalidasi permintaan dan respons API terhadap skema OpenAPI. Fitur-fitur ini bukan pengganti WAF, tetapi dapat memberikan perlindungan ekstra terhadap beberapa ancaman. Menambahkan kebijakan validasi dapat memiliki implikasi performa, jadi kami sarankan Anda menggunakan pengujian beban performa untuk menilai dampaknya pada throughput API.
Microsoft Defender untuk API memberikan perlindungan siklus hidup penuh, deteksi, dan respons untuk API yang diterbitkan dalam API Management. Salah satu kemampuan utama adalah mendeteksi eksploitasi kerentanan Open Web Application Security Project (OWASP) API Top 10 melalui pengamatan anomali runtime dengan menggunakan deteksi berbasis pembelajaran mesin dan berbasis aturan.
Ruang kerja API Management membantu Anda mengatur dan mengisolasi API Anda. Pendekatan ini memudahkan untuk mengontrol siapa yang dapat mengakses dan mengelolanya. Setiap ruang kerja dapat memiliki sekumpulan izinnya sendiri, sehingga Anda hanya dapat membatasi akses ke orang atau tim yang membutuhkannya. Pemisahan ini mengurangi risiko perubahan yang tidak disengaja atau akses yang tidak sah dan mendukung lingkungan API yang lebih aman.
Gunakan rahasia Key Vault sebagai nilai bernama dalam kebijakan API Management untuk melindungi informasi sensitif dalam kebijakan API Management.
Gunakan Application Gateway untuk akses eksternal instans API Management internal untuk melindungi instans API Management, melindungi dari eksploitasi dan kerentanan aplikasi web umum dengan menggunakan WAF, dan mengaktifkan konektivitas hibrid.
Sebarkan gateway API Management di jaringan virtual untuk mendukung konektivitas hibrid dan peningkatan keamanan.
Peering jaringan virtual meningkatkan performa di suatu wilayah dan memungkinkan komunikasi privat antar jaringan virtual.
Saat Anda menggunakan WAF, Anda menambahkan lapisan yang menginspeksi lalu lintas masuk untuk perilaku berbahaya. Perlindungan ini membantu memblokir ancaman umum seperti injeksi SQL dan skrip lintas situs. Application Gateway dan perlindungan penolakan layanan terdistribusi (DDoS) membantu mencegah lalu lintas atau banjir koneksi yang berlebihan dari instans API Management. Untuk informasi selengkapnya, lihat Melindungi API dengan menggunakan Application Gateway dan API Management.
Titik akhir privat untuk Azure Functions memungkinkan Anda terhubung dengan aman ke aplikasi fungsi Anda melalui alamat IP privat dalam jaringan virtual Anda. Penyiapan ini mencegah paparan fungsi Anda ke internet publik, yang mengurangi risiko akses yang tidak sah. Dalam arsitektur ini, titik akhir privat memastikan bahwa hanya sumber daya tepercaya dalam jaringan Anda yang dapat mengakses Azure Functions.
Mengelola kebijakan API Management di balik proksi terbalik
Application Gateway dengan Web Application Firewall (WAF) diposisikan di depan API Managment dan menangani semua lalu lintas API sebelum mencapai instans API Management internal. Tujuannya adalah menambahkan lapisan keamanan tingkat tepi yang memeriksa, memfilter, dan merutekan permintaan klien, sementara API Management berfokus pada tata kelola API, transformasi, dan integrasi backend.
Namun, topologi berlapis ini dilengkapi dengan implikasi perilaku untuk kebijakan API Management tertentu: ketika penghentian TLS, keputusan perutean, atau transformasi header/koneksi terjadi di batas Application Gateway, mesin kebijakan API Management mungkin tidak melihat detail permintaan klien asli yang diharapkan. Itu dapat menyebabkan kebijakan berperilaku berbeda dari ketika API Management diekspos secara langsung. Contohnya:
Pemfilteran berbasis IP klien: Kebijakan seperti
ip-filtertempat Anda dapat mengizinkan atau menolak lalu lintas berdasarkan alamat IP sumber sekarang akan melihat IP privat Application Gateway sebagai sumbernya, bukan alamat klien yang sebenarnya. Akibatnya,ip-filterkebijakan perlu direncanakan dengan cermat dan dikelola untuk memastikan lalu lintas yang tepat terfilter.Urutan kebijakan dan asumsi konteks: Kebijakan API Management diharapkan berjalan terhadap permintaan dengan header, nama host, atau karakteristik permintaan tertentu. Jika Application Gateway menulis ulang header (untuk perutean, domain kustom, atau offload SSL), konteks yang diandalkan kebijakan API Management hilir mungkin tidak cocok dengan apa yang ditentukan dalam kebijakan tersebut. Hal ini dapat menyebabkan kebijakan perutean, validasi, atau logika transformasi di dalam API Management tidak cocok dengan niat klien.
Application Gateway dan API Management menjadi dua lapisan penegakan, dan API Management memandang permintaan masuk sebagai satu langkah yang terpisah dari konteks klien asli. Anda harus menghindari kebijakan penggunaan dalam API Management yang bergantung pada atribut klien mentah kecuali atribut tersebut dipertahankan secara end-to-end, dan mungkin perlu membuat kebijakan kustom berdasarkan data yang tersedia dalam permintaan HTTP.
Untuk beberapa rekomendasi tambahan tentang cara mempertahankan data seperti host header, lihat Mempertahankan nama host HTTP asli antara reverse proxy dan aplikasi web back-end-nya.
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 optimalisasi biaya.
Penyebaran ini menggunakan paket Premium untuk mendukung zona ketersediaan dan kemampuan jaringan virtual. Jika Anda tidak memerlukan instans khusus, Anda juga dapat menggunakan Flex Consumption, yang mendukung akses jaringan dan zona ketersediaan. Tinjau kalkulator biaya untuk penyebaran ini.
Untuk bukti konsep atau prototipe, kami sarankan Anda menggunakan tingkat API Management lainnya, seperti Pengembang atau Standar.
Keunggulan Operasi
Keunggulan Operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keunggulan Operasional.
Mewakili konfigurasi API Management sebagai templat Azure Resource Manager, dan menerapkan pendekatan infrastruktur sebagai kode (IaC).
Gunakan proses CI/CD untuk mengelola, membuat versi, dan memperbarui konfigurasi API Management.
Buat pemeriksaan kesehatan kustom untuk membantu memvalidasi status instans API Management Anda. Gunakan URL
/status-0123456789abcdefuntuk membuat titik akhir kesehatan umum untuk layanan API Management di gateway aplikasi.Sertifikat yang diperbarui di brankas kunci secara otomatis diputar dalam API Management, yang mencerminkan perubahan dalam waktu empat jam.
Jika Anda menggunakan alat DevOps, seperti Azure DevOps atau GitHub, maka agen atau pelari yang dihosting cloud beroperasi melalui internet publik. Karena API Management dalam arsitektur ini diatur ke jaringan internal, Anda perlu menggunakan agen DevOps yang memiliki akses ke jaringan virtual. Agen DevOps membantu Anda menyebarkan kebijakan dan perubahan lain pada API dalam arsitektur Anda. Anda dapat menggunakan templat CI/CD ini untuk memisahkan proses menjadi beberapa bagian sehingga tim pengembangan Anda dapat menyebarkan perubahan untuk setiap API. Runner DevOps menginisiasi templat untuk menangani penyebaran individual ini.
Menyebarkan skenario ini
Arsitektur ini tersedia di GitHub. Ini berisi semua file IaC yang diperlukan dan instruksi deployment.
Kontributor
Microsoft mempertahankan artikel ini. Kontributor berikut menulis artikel ini.
Penulis utama:
- Pete Messina | Arsitek Solusi Cloud Senior
- Anthony Nevico | Arsitek Solusi Cloud Senior
Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.
Langkah berikutnya
Sumber daya terkait
- Menggunakan gateway API di layanan mikro
- Topologi jaringan Hub-Spoke dalam Azure
- Integrasi perusahaan dasar pada Azure
- Lindungi API dengan menggunakan Application Gateway dan API Management