Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejsy API stały się coraz bardziej integralne dla sposobu, w jaki organizacje i ich klienci uzyskują dostęp do usług, zarówno w systemach wewnętrznych, jak i za pośrednictwem kanałów zewnętrznych. Wewnętrznie interfejsy API ułatwiają dostęp do aplikacji biznesowych , zastrzeżonych rozwiązań i integracji partnerów. Zewnętrznie coraz większa liczba organizacji koncentruje się na zwiększaniu produktywności i generowaniu przychodów za pośrednictwem monetyzacji interfejsu API. Biorąc pod uwagę ten trend, usługa Azure API Management pełni rolę podstawowego elementu standardowego ładu, publikacji i nadzoru nad interfejsami API zarówno dla uczestników projektu wewnętrznego, jak i zewnętrznego.
Usługa Azure Application Gateway służy jako punkt kontrolny zabezpieczeń dla interfejsów API. Zamiast zezwalać użytkownikom na bezpośrednie połączenie za pośrednictwem Internetu, cały ruch jest kierowany przez bramę aplikacji. Ta konfiguracja dodaje dodatkowe mechanizmy kontroli dostępu, które ułatwiają ochronę interfejsów API. Dzięki temu podejściu można użyć jednego wystąpienia usługi API Management do obsługi zarówno wewnętrznych interfejsów API w organizacji, jak i zewnętrznych interfejsów API spoza organizacji, zachowując jednocześnie wszystkie publicznie uwidocznione interfejsy API zabezpieczone za bramą.
Uwaga
Ta architektura stanowi podstawę wskazówek dotyczących usługi API Management w strefie docelowej platformy Azure w przewodniku Cloud Adoption Framework dla platformy Azure.
Architektura
Pobierz plik programu Visio z tą architekturą.
Ta architektura zakłada, że zasady są wdrażane z implementacji referencyjnej strefy docelowej platformy Azure i że struktura jest kierowana w dół od grupy zarządzania.
Workflow
Publiczne adresy IP są przypisywane do bramy aplikacji, która służy jako punkt wejścia dla ruchu zewnętrznego. Ten punkt końcowy uwidacznia interfejsy API za pośrednictwem domeny niestandardowej.
Brama aplikacji jest wdrażana we własnej podsieci i chroniona przez zasady zapory aplikacji internetowej (WAF) w celu sprawdzania i filtrowania żądań przychodzących.
Ruch jest kierowany z bramy aplikacji do usługi API Management (Premium), która znajduje się w oddzielnej podsieci usługi API Management. Wystąpienie usługi API Management jest skonfigurowane w trybie wewnętrznym, co uniemożliwia bezpośredni dostęp publiczny.
Prywatne punkty końcowe są używane do bezpiecznego łączenia usługi API Management z serwerami aplikacji zaplecza, które są widoczne tylko w sieci wirtualnej. Usługa API Management okresowo łączy zależności, takie jak magazyny kluczy platformy Azure. Zazwyczaj wszystkie te prywatne połączenia występują z punktami końcowymi w dedykowanej podsieci prywatnego punktu końcowego.
Obszary robocze usługi Log Analytics i usługa Application Insights są zintegrowane z rejestrowaniem, monitorowaniem i telemetrią.
Składniki
API Management to zarządzana usługa, która umożliwia zarządzanie usługami w środowiskach hybrydowych i wielochmurowych. Zapewnia ona kontrolę i zabezpieczenia pod kątem wglądu i zużycia interfejsu API zarówno przez użytkowników wewnętrznych, jak i zewnętrznych. W tej architekturze usługa API Management służy jako fasada do abstrakcji architektury zaplecza.
Application Gateway to usługa zarządzana, która służy jako moduł równoważenia obciążenia warstwy 7 i zapora aplikacji internetowej. Usługa Application Gateway chroni wewnętrzne wystąpienie usługi API Management, które umożliwia korzystanie zarówno z trybów wewnętrznych, jak i zewnętrznych. W tej architekturze usługa API Management zabezpiecza interfejsy API, a usługa Application Gateway dodaje dodatkowe możliwości, takie jak zapora aplikacji internetowej.
Strefy systemu nazw domen prywatnych (DNS) to funkcja usługi Azure DNS, która umożliwia zarządzanie i rozpoznawanie nazw domen w sieci wirtualnej bez konieczności implementowania niestandardowego rozwiązania DNS. Prywatna strefa DNS może być wyrównana do co najmniej jednej sieci wirtualnej za pośrednictwem łączy sieci wirtualnej. W tej architekturze prywatna strefa DNS jest wymagana, aby zapewnić prawidłowe rozpoznawanie nazw w sieci wirtualnej.
Application Insights to rozszerzalna usługa zarządzania wydajnością aplikacji, która ułatwia deweloperom wykrywanie anomalii, diagnozowanie problemów i zrozumienie wzorców użycia. Funkcje usługi Application Insights rozszerzalne zarządzanie wydajnością aplikacji i monitorowanie ich na żywo w aplikacjach internetowych. Obsługiwane są różne platformy, w tym .NET, Node.js, Java i Python. Obsługuje aplikacje hostowane na platformie Azure, lokalnie, w środowisku hybrydowym lub w innych chmurach publicznych. W tej architekturze usługa Application Insights monitoruje zachowania wdrożonej aplikacji.
Log Analytics to oparte na chmurze narzędzie do analizy danych, które umożliwia edytowanie i uruchamianie zapytań dzienników względem danych w dziennikach usługi Azure Monitor, opcjonalnie z poziomu witryny Azure Portal. Deweloperzy mogą uruchamiać proste zapytania, aby pobierać rekordy lub używać usługi Log Analytics do zaawansowanej analizy, a następnie wizualizować wyniki. W tej architekturze usługa Log Analytics agreguje wszystkie dzienniki zasobów platformy na potrzeby analizy i raportowania.
Azure Key Vault to usługa w chmurze, która bezpiecznie przechowuje wpisy tajne i uzyskuje do ich dostępu. Te wpisy tajne obejmują od kluczy interfejsu API i haseł do certyfikatów i kluczy kryptograficznych. W tej architekturze usługa Key Vault przechowuje certyfikaty secure Sockets Layer (SSL), których używa usługa Application Gateway.
Alternatywy
W przypadku usług zaplecza, z którymi nawiązuje połączenie wystąpienie usługi API Management, dostępnych jest kilka alternatyw:
Azure App Service to w pełni zarządzana usługa oparta na protokole HTTP, która kompiluje, wdraża i skaluje aplikacje internetowe. Obsługuje platformy .NET, .NET Core, Java, Ruby, Node.js, PHP i Python. Aplikacje mogą działać i skalować w środowiskach opartych na systemie Windows lub Linux.
Usługa Azure Kubernetes Service (AKS) to zarządzana oferta kubernetes, która dostarcza w pełni zarządzane klastry. Umożliwia zintegrowaną ciągłą integrację i ciągłe dostarczanie (CI/CD) wraz z wbudowanym ładem i zabezpieczeniami.
Azure Logic Apps to oparta na chmurze platforma, która tworzy i uruchamia zautomatyzowane przepływy pracy. Aby uzyskać więcej informacji, zobacz przykładową architekturę referencyjną.
Azure Container Apps to w pełni zarządzana bezserwerowa usługa kontenera, która umożliwia uruchamianie mikrousług i konteneryzowanych aplikacji na platformie bezserwerowej.
W przypadku wdrożeń w wielu regionach rozważ użycie usługi Azure Front Door w celu zapewnienia szybkiego, niezawodnego i bezpiecznego dostępu między użytkownikami a zawartością statyczną i dynamiczną w aplikacjach.
Aby zapoznać się z dodatkowymi przykładami ochrony interfejsów API przez usługę Application Gateway, zobacz Ochrona interfejsów API za pomocą usługi Application Gateway i usługi API Management.
Kwestie wymagające rozważenia
Te zagadnienia obejmują implementację filarów platformy Azure Well-Architected Framework, która jest zestawem wytycznych, których można użyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Well-Architected Framework.
Niezawodność
Niezawodność pomaga zapewnić, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca niezawodności.
Wdróż co najmniej dwie jednostki skalowania usługi API Management rozłożone na co najmniej dwie strefy dostępności w każdym regionie. Monitoruj metryki pojemności i aprowizuj wystarczające jednostki pojemności, aby można było nadal działać, nawet jeśli jednostki w jednej strefie dostępności zostaną utracone.
Zalecamy użycie warstwy Premium, ponieważ obsługuje strefy dostępności i wdrożenia w wielu regionach. Ta możliwość oznacza, że usługi mogą nadal działać, nawet jeśli jeden region lub strefa ulegnie awarii. Te funkcje pomagają chronić aplikację podczas przestojów lub awarii.
W przypadku odzyskiwania po awarii skonfiguruj usługę API Management przy użyciu tożsamości zarządzanej przypisanej przez użytkownika zamiast tożsamości przypisanej przez system. Jeśli ponownie wdrożysz lub usuniesz zasób, tożsamość i jego uprawnienia pozostaną na miejscu, aby można było łatwiej przywrócić dostęp. Automatyzowanie kopii zapasowych za pomocą usługi Azure Pipelines. Zdecyduj, czy chcesz wdrożyć usługi w więcej niż jednym regionie, aby uzyskać lepszą niezawodność.
Komunikacja równorzędna sieci wirtualnych zapewnia silną wydajność w regionie, ale ma limit skalowalności 500 sieci. Jeśli potrzebujesz połączyć więcej obciążeń, użyj projektu piasty i szprych lub usługi Azure Virtual WAN.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nieprawidłowym użyciem cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca zabezpieczeń.
Zasady weryfikacji usługi API Management weryfikują żądania interfejsu API i odpowiedzi względem schematu interfejsu OpenAPI. Te funkcje nie są zamiennikiem zapory aplikacji internetowej, ale mogą zapewnić dodatkową ochronę przed niektórymi zagrożeniami. Dodanie zasad weryfikacji może mieć wpływ na wydajność, dlatego zalecamy użycie testów obciążeniowych wydajności w celu oceny ich wpływu na przepływność interfejsu API.
Usługa Microsoft Defender dla interfejsów API zapewnia pełną ochronę, wykrywanie i reagowanie na interfejsy API opublikowane w usłudze API Management. Jedną z kluczowych funkcji jest wykrywanie luk w zabezpieczeniach interfejsu API Open Web Application Security Project (OWASP) 10 najważniejszych luk w zabezpieczeniach za pomocą obserwacji anomalii środowiska uruchomieniowego przy użyciu wykrywania opartego na uczeniu maszynowym i wykrywaniu opartym na regułach.
Obszary robocze usługi API Management ułatwiają organizowanie i izolowanie interfejsów API. Takie podejście ułatwia kontrolowanie, kto może uzyskiwać do nich dostęp i zarządzać nimi. Każdy obszar roboczy może mieć własny zestaw uprawnień, dzięki czemu można ograniczyć dostęp tylko do osób lub zespołów, które ich potrzebują. Ta separacja zmniejsza ryzyko przypadkowych zmian lub nieautoryzowanego dostępu i obsługuje bezpieczniejsze środowisko interfejsu API.
Użyj wpisów tajnych usługi Key Vault jako nazwanych wartości w zasadach usługi API Management, aby chronić poufne informacje w zasadach usługi API Management.
Użyj usługi Application Gateway, aby uzyskać dostęp zewnętrzny do wewnętrznego wystąpienia usługi API Management , aby chronić wystąpienie usługi API Management, bronić przed typowymi programami wykorzystującymi luki w zabezpieczeniach i lukami w zabezpieczeniach przy użyciu zapory aplikacji internetowej i włączyć łączność hybrydową.
Wdróż bramę usługi API Management w sieci wirtualnej, aby obsługiwać łączność hybrydową i zwiększyć bezpieczeństwo.
Komunikacja równorzędna sieci wirtualnych zwiększa wydajność w regionie i umożliwia komunikację prywatną między sieciami wirtualnymi.
W przypadku korzystania z zapory aplikacji internetowej wprowadzasz warstwę, która sprawdza ruch przychodzący pod kątem złośliwego zachowania. Ta ochrona pomaga blokować typowe zagrożenia, takie jak wstrzyknięcie kodu SQL i wykonywanie skryptów między lokacjami. Usługa Application Gateway i ochrona przed rozproszoną odmową usługi (DDoS) pomaga zapobiegać nadmiernemu ruchowi lub powodziom połączeń przed przeciążeniem wystąpienia usługi API Management. Aby uzyskać więcej informacji, zobacz Ochrona interfejsów API przy użyciu usługi Application Gateway i usługi API Management.
Prywatne punkty końcowe dla usługi Azure Functions umożliwiają bezpieczne łączenie się z aplikacjami funkcji za pośrednictwem prywatnego adresu IP w sieci wirtualnej. Ta konfiguracja uniemożliwia ujawnienie funkcji publicznej sieci Internet, co zmniejsza ryzyko nieautoryzowanego dostępu. W tej architekturze prywatne punkty końcowe zapewniają, że tylko zaufane zasoby w sieci mogą uzyskiwać dostęp do usługi Azure Functions.
Optymalizacja kosztów
Optymalizacja kosztów koncentruje się na sposobach zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca optymalizacji kosztów.
To wdrożenie używa planu Premium do obsługi stref dostępności i możliwości sieci wirtualnej. Jeśli nie potrzebujesz dedykowanych wystąpień, możesz również użyć rozwiązania Flex Consumption, który obsługuje zarówno dostęp do sieci, jak i strefy dostępności. Przejrzyj kalkulator cen dla tego wdrożenia.
W celu weryfikacji koncepcji lub prototypów zalecamy używanie innych warstw usługi API Management, takich jak Developer lub Standard.
Doskonałość operacyjna
Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna projektu dotycząca doskonałości operacyjnej.
Reprezentacja konfiguracji usługi API Management jako szablonów usługi Azure Resource Manager i przyjęcie podejścia infrastruktury jako kodu (IaC).
Proces ciągłej integracji/ciągłego wdrażania umożliwia zarządzanie konfiguracjami usługi API Management, ich wersją i aktualizowaniem.
Utwórz niestandardowe sondy kondycji, aby ułatwić weryfikowanie stanu wystąpienia usługi API Management. Użyj adresu URL
/status-0123456789abcdef, aby utworzyć wspólny punkt końcowy kondycji dla usługi API Management w bramie aplikacji.Certyfikaty aktualizowane w magazynie kluczy są automatycznie obracane w usłudze API Management, co odzwierciedla zmiany w ciągu czterech godzin.
Jeśli używasz narzędzia DevOps, takiego jak Azure DevOps lub GitHub, agenci hostowani w chmurze lub moduły uruchamiające działają za pośrednictwem publicznego Internetu. Ponieważ usługa API Management w tej architekturze jest ustawiona na sieć wewnętrzną, należy użyć agenta DevOps, który ma dostęp do sieci wirtualnej. Agent DevOps pomaga wdrażać zasady i inne zmiany w interfejsach API w architekturze. Za pomocą tych szablonów ciągłej integracji/ciągłego wdrażania można oddzielić proces na części, aby zespoły programistyczne mogły wdrażać zmiany dla każdego interfejsu API. Moduły uruchamiającego metodyki DevOps inicjują szablony do obsługi tych indywidualnych wdrożeń.
Wdrażanie tego scenariusza
Ta architektura jest dostępna w witrynie GitHub. Zawiera wszystkie niezbędne pliki IaC i instrukcje wdrażania.
Współautorzy
Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.
Autorzy zabezpieczeń:
- Pete Messina | Starszy architekt rozwiązań w chmurze
- Anthony Nevico | Starszy architekt rozwiązań w chmurze
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Wskazówki dotyczące przewodnika Cloud Adoption Framework dotyczące wdrażania usługi API Management w strefie docelowej platformy Azure
- Terminologia dotycząca usługi API Management
- Dokumentacja usługi Application Gateway