Gambaran umum gateway yang dihosting sendiri
BERLAKU UNTUK: Pengembang | Premium
Gateway yang dihosting sendiri adalah gateway terkelola default versi opsional yang terkontainerisasi yang disertakan dalam setiap layanan API Management. Ini berguna untuk skenario seperti menempatkan gateway di lingkungan yang sama tempat Anda menghosting API. Gunakan gateway yang dihosting sendiri untuk meningkatkan arus lalu lintas API dan mengatasi persyaratan kepatuhan dan keamanan API.
Artikel ini menjelaskan bagaimana fitur gateway yang dihost sendiri dari Azure API Management memungkinkan manajemen API hibrid dan multicloud, menyajikan arsitektur tingkat tinggi, dan menyoroti kemampuannya.
Untuk gambaran umum fitur di berbagai penawaran gateway, lihat Gateway API di API Management.
Manajemen API hibrid dan multi-cloud
Fitur gateway yang di-host sendiri memperluas dukungan API Management untuk lingkungan hibrid dan multi-cloud serta memungkinkan organisasi untuk secara efisien dan aman mengelola API yang di-host secara lokal dan lintas cloud dari satu layanan API Management di Azure.
Dengan gateway yang dihosting sendiri, pelanggan memiliki fleksibilitas untuk menerapkan versi komponen gateway API Management ke dalam lingkungan yang sama tempat mereka menghosting API-nya. Semua gateway yang dihosting sendiri dikelola dari layanan API Management tempat mereka digabungkan, sehingga memberikan visibilitas dan pengalaman pengelolaan terpadu pada semua API internal dan eksternal kepada pelanggan.
Setiap layanan API Management terdiri dari komponen utama berikut:
- Bidang manajemen, diekspos sebagai API, digunakan untuk mengonfigurasi layanan melalui portal Azure, PowerShell, dan mekanisme lain yang didukung.
- Gateway (atau data plane), yang bertanggung jawab untuk membuat proksi permintaan API, menerapkan kebijakan, dan mengumpulkan telemetri
- Portal pengembang yang digunakan oleh pengembang untuk menemukan, belajar, dan onboard untuk menggunakan API
Secara default, semua komponen ini disebarkan di Azure, menyebabkan semua lalu lintas API (ditampilkan sebagai panah hitam utuh pada gambar berikut) mengalir melalui Azure terlepas di mana backend yang menerapkan API dihosting. Kesederhanaan operasional model ini menyebabkan peningkatan latensi, masalah kepatuhan, dan dalam beberapa kasus, biaya transfer data tambahan.
Dengan menyebarkan gateway yang dihost sendiri ke dalam lingkungan yang sama tempat implementasi API backend dihosting, lalu lintas API dapat mengalir langsung ke API backend, yang mengurangi latensi, mengoptimalkan biaya transfer data, dan mengaktifkan kepatuhan sambil tetap mempertahankan keuntungan memiliki titik tunggal manajemen, observabilitas, dan penemuan semua API dalam organisasi terlepas dari di mana penerapannya dihosting.
Pengemasan
Gateway yang dihost sendiri tersedia sebagai gambar kontainer Docker berbasis-Linux dari Microsoft Artifact Registry. Hal ini dapat diterapkan ke Docker, Kubernetes, atau solusi orkestrasi kontainer lainnya yang berjalan di cluster server di lokasi, infrastruktur cloud, atau untuk tujuan evaluasi dan pengembangan, di komputer pribadi. Anda juga dapat menyebarkan gateway yang dihost sendiri ke kluster Kube berkemampuan Azure Arc.
Gambar kontainer
Kami menyediakan berbagai citra kontainer untuk gateway yang dihost sendiri guna memenuhi kebutuhan Anda:
Konvensi tag | Rekomendasi | Contoh | Tag bergulir | Direkomendasikan untuk produksi |
---|---|---|---|---|
{major}.{minor}.{patch} |
Gunakan tag berikut ini untuk selalu menjalankan versi gateway yang sama | 2.0.0 |
❌ | ✔️ |
v{major} |
Gunakan tag ini untuk selalu menjalankan versi besar gateway dengan setiap fitur dan patch baru. | v2 |
✔️ | ❌ |
v{major}-preview |
Gunakan tag ini jika Anda selalu ingin menjalankan citra kontainer pratinjau terbaru kami. | v2-preview |
✔️ | ❌ |
latest |
Gunakan tag ini jika Anda ingin mengevaluasi gateway yang dihost sendiri. | latest |
✔️ | ❌ |
beta 1 |
Gunakan tag ini jika Anda ingin mengevaluasi versi pratinjau gateway yang dihost sendiri. | beta |
✔️ | ❌ |
Anda dapat menemukan daftar penuh tag yang tersedia di sini.
1Versi pratinjau tidak didukung secara resmi dan hanya untuk tujuan eksperimental. Lihat kebijakan dukungan gateway yang dihost sendiri.
Penggunaan tag dalam opsi penyebaran resmi kami
Opsi penyebaran kami pada portal Microsoft Azure menggunakan tag v2
, yang memungkinkan pelanggan menggunakan versi terbaru dari gambar kontainer v2 gateway yang dihost sendiri dengan semua pembaruan fitur dan patch.
Catatan
Kami menyediakan perintah dan cuplikan YAML sebagai referensi, jangan ragu untuk menggunakan tag yang lebih spesifik jika Anda ingin.
Saat menginstal dengan bagan Helm kami, pemberian tag citra dioptimalkan untuk Anda. Versi aplikasi bagan Helm menyematkan gateway pada versi yang diberikan serta tidak bergantung pada latest
.
Pelajari selengkapnya cara menginstal gateway API Management yang dihost sendiri di Kubernetes dengan Helm.
Risiko menggunakan tag bergulir
Tag bergulir adalah tag yang dapat diperbarui saat versi baru citra kontainer dirilis. Ini memungkinkan pengguna kontainer untuk menerima pembaruan pada citra kontainer tanpa harus memperbarui penyebaran mereka.
Artinya, Anda dapat menjalankan versi yang berbeda secara paralel tanpa melihatnya, misalnya ketika Anda melakukan tindakan penskalaan setelah tag v2
diperbarui.
Contoh - tag v2
dirilis dengan citra kontainer 2.0.0
, tetapi saat 2.1.0
akan dirilis, tag v2
akan ditautkan ke citra 2.1.0
.
Penting
Pertimbangkan untuk menggunakan tag versi tertentu dalam produksi untuk menghindari peningkatan yang tidak disengaja ke versi yang lebih baru.
Konektivitas ke Azure
Gateway yang dihosting sendiri memerlukan konektivitas TCP/IP keluar ke Azure pada port 443. Setiap gateway yang dihosting sendiri harus dikaitkan dengan satu layanan API Management dan dikonfigurasi melalui bidang pengelolaannya. Gateway yang dihost sendiri menggunakan konektivitas ke Azure untuk:
- Melaporkan statusnya dengan mengirimkan pesan heartbeat setiap menit
- Secara teratur memeriksa (setiap 10 detik) serta menerapkan pembaruan konfigurasi setiap kali tersedia
- Mengirim metrik ke Azure Monitor, jika dikonfigurasi untuk melakukannya
- Mengirim kejadian ke Application Insights, jika disetel untuk melakukannya
Penting
Dukungan untuk gateway yang dihost sendiri Azure API Management versi 0 dan gambar kontainer versi 1 berakhir pada 1 Oktober 2023, bersama dengan Api Konfigurasi v1 yang sesuai. Gunakan panduan migrasi kami untuk menggunakan gateway yang dihost sendiri v2.0.0 atau yang lebih tinggi dengan Configuration API v2. Pelajari lebih lanjut dalam dokumentasi penghentian kami
dependensi FQDN
Untuk mengoperasikannya dengan benar, setiap gateway yang dihost sendiri memerlukan konektivitas keluar pada port 443 ke titik akhir berikut yang terkait dengan instans API Management berbasis-cloudnya:
Deskripsi | Diperlukan untuk v1 | Diperlukan untuk v2 | Catatan |
---|---|---|---|
Nama host titik akhir konfigurasi | <apim-service-name>.management.azure-api.net |
<apim-service-name>.configuration.azure-api.net 1 |
Nama host kustom juga didukung dan dapat digunakan alih-alih nama host default. |
Alamat IP publik instans API Management | ✔️ | ✔️ | Alamat IP lokasi utama sudah cukup. |
Alamat IP publik tag layanan Azure Storage | ✔️ | Opsional2 | Alamat IP harus sesuai dengan lokasi utama instans API Management. |
Nama host akun Azure Blob Storage | ✔️ | Opsional2 | Akun yang terkait dengan instans (<blob-storage-account-name>.blob.core.windows.net ) |
Nama host akun Azure Table Storage | ✔️ | Opsional2 | Akun yang terkait dengan instans (<table-storage-account-name>.table.core.windows.net ) |
Titik akhir untuk Azure Resource Manager | ✔️ | Opsional3 | Titik akhir yang diperlukan adalah management.azure.com . |
Titik akhir untuk integrasi Microsoft Entra | ✔️ | Opsional4 | Titik akhir yang diperlukan adalah <region>.login.microsoft.com dan login.microsoftonline.com . |
Titik akhir untuk integrasi Azure Application Insights | Opsional5 | Opsional5 | Titik akhir minimal yang diperlukan adalah:
|
Titik akhir untuk integrasi Azure Event Hubs | Opsional5 | Opsional5 | Pelajari selengkapnya di dokumen Azure Event Hubs |
Titik akhir untuk integrasi cache eksternal | Opsional5 | Opsional5 | Persyaratan ini tergantung pada cache eksternal yang sedang digunakan |
1Untuk instans API Management di jaringan virtual internal, aktifkan konektivitas privat ke titik akhir konfigurasi v2 dari lokasi gateway yang dihost sendiri, misalnya, menggunakan DNS privat di jaringan yang di-peering.
2Hanya diperlukan di v2 saat pemeriksa API atau kuota digunakan dalam kebijakan.
3Hanya diperlukan saat menggunakan autentikasi Microsoft Entra untuk memverifikasi izin RBAC.
4Hanya diperlukan saat menggunakan autentikasi Microsoft Entra atau kebijakan terkait Microsoft Entra.
5Hanya diperlukan saat fitur digunakan dan memerlukan alamat IP publik, port, dan informasi nama host.
Penting
- Nama host DNS harus dapat diperbaiki ke alamat IP dan alamat IP yang sesuai harus dapat dijangkau.
- Nama akun penyimpanan terkait terdaftar di halaman Status konektivitas jaringan layanan di portal Azure.
- Alamat IP publik yang mendasari akun penyimpanan terkait bersifat dinamis dan dapat berubah tanpa pemberitahuan.
Opsi autentikasi
Untuk mengautentikasi koneksi antara gateway yang dihost sendiri dan titik akhir konfigurasi instans API Management berbasis cloud, Anda memiliki opsi berikut di pengaturan konfigurasi kontainer gateway.
Opsi | Pertimbangan |
---|---|
Autentikasi Microsoft Entra | Mengonfigurasi satu atau beberapa aplikasi Microsoft Entra untuk akses ke gateway Mengelola akses secara terpisah per aplikasi Mengonfigurasi waktu kedaluwarsa yang lebih lama untuk rahasia sesuai dengan kebijakan organisasi Anda Gunakan prosedur Microsoft Entra standar untuk menetapkan atau mencabut izin pengguna atau grup ke aplikasi dan untuk memutar rahasia |
Token akses gateway (juga disebut kunci autentikasi) | Token kedaluwarsa setiap 30 hari maksimal dan harus diperpanjang dalam kontainer Didukung oleh kunci gateway yang dapat diputar secara independen (misalnya, untuk mencabut akses) Meregenerasi kunci gateway membatalkan semua token akses yang dibuat dengannya |
Kegagalan konektivitas
Saat konektivitas ke Azure hilang, gateway yang dihost sendiri tidak dapat menerima pembaruan konfigurasi, melaporkan statusnya, atau mengunggah telemetri.
Gateway yang dihosting sendiri dirancang untuk "gagal statis" dan dapat bertahan dari hilangnya konektivitas sementara ke Azure. Hal ini dapat diterapkan dengan atau tanpa cadangan konfigurasi lokal. Dengan cadangan konfigurasi, gateway yang dihost sendiri secara teratur menyimpan cadangan konfigurasi yang diunduh terakhir pada volume tetap yang terlampir ke kontainer atau podnya.
Saat cadangan konfigurasi dimatikan dan konektivitas ke Azure terputus:
- Menjalankan gateway yang dihosting sendiri akan terus berfungsi menggunakan salinan konfigurasi dalam memori
- Gateway yang dihosting sendiri dan dihentikan tidak akan dapat dimulai
Saat cadangan konfigurasi diaktifkan dan konektivitas ke Azure terputus:
- Menjalankan gateway yang dihosting sendiri akan terus berfungsi menggunakan salinan konfigurasi dalam memori
- Gateway yang dihosting sendiri yang dihentikan akan dapat mulai menggunakan salinan cadangan konfigurasi
Saat konektivitas dipulihkan, setiap gateway yang dihosting sendiri yang terpengaruh oleh pemadaman akan secara otomatis terhubung kembali dengan layanan API Management terkait dan mengunduh semua pembaruan konfigurasi yang terjadi saat gateway "offline".
Keamanan
Batasan
Fungsionalitas berikut yang ditemukan di gateway terkelola tidak tersedia di gateway yang dihosting sendiri:
- Dimulainya kembali sesi TLS.
- Negosiasi ulang sertifikat klien. Untuk menggunakan autentikasi sertifikat klien, konsumen API harus menunjukkan sertifikat mereka sebagai bagian dari handshake TLS awal. Untuk memastikan perilaku ini, aktifkan pengaturan Negosiasi Sertifikat Klien saat mengonfigurasi nama host kustom gateway yang dihosting sendiri (nama domain).
Keamanan Lapisan Transportasi (TLS)
Penting
Gambaran umum ini hanya berlaku untuk gateway yang dihost sendiri v1 & v2.
Protokol yang Didukung
Gateway yang dihost sendiri menyediakan dukungan bagi TLS v1.2 secara default.
Pelanggan yang menggunakan domain kustom dapat mengaktifkan TLS v1.0 dan/atau v1.1 pada sarana kontrol.
Cipher suite tersedia
Penting
Gambaran umum ini hanya berlaku bagi gateway v2 yang dihost sendiri.
Gateway yang dihost sendiri menggunakan cipher suite berikut ini bagi koneksi klien dan server:
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
Mengelola sebuah cipher suite
Pada v2.1.1 ke atas, Anda bisa mengelola cipher yang digunakan dalam konfigurasi:
net.server.tls.ciphers.allowed-suites
memungkinkan Anda untuk menentukan daftar cipher yang dipisahkan koma, untuk digunakan koneksi TLS antara klien API dan gateway yang dihost sendiri.net.client.tls.ciphers.allowed-suites
memungkinkan Anda untuk menentukan daftar cipher yang dipisahkan koma, untuk digunakan koneksi TLS antara gateway yang dihost sendiri dan backend.
Langkah berikutnya
- Pelajari lebih lanjut tentang berbagai gateway di gambaran umum gateway API kami
- Pelajari selengkapnya tentang kebijakan dukungan untuk gateway yang dihost sendiri
- Pelajari selengkapnya tentang API Management di dunia hibrid dan multicloud
- Pelajari selengkapnya tentang panduan untuk menjalankan gateway yang dihost sendiri di Kubernetes dalam produksi
- Terapkan gateway yang dihosting sendiri ke Docker
- Terapkan gateway yang dihosting sendiri ke Kubernetes
- Sebarkan gateway yang dihost sendiri ke kluster berkemampuan Azure Arc
- Menyebarkan gateway yang dihost sendiri ke Azure Container Apps
- Pengaturan konfigurasi gateway yang dihosting sendiri
- Pelajari tentang kemampuan observabilitas dalam API Management
- Pelajari tentang integrasi Dapr dengan gateway yang dihosting sendiri