Akcelerator strefy docelowej usługi Azure API Management

Azure API Management
Azure Application Gateway
Azure Functions
.NET

Interfejsy API stają się coraz bardziej widoczne w sposobie, w jaki firmy i klienci uzyskują dostęp do usług, zarówno wewnętrznie, jak i zewnętrznie. Wewnętrznie interfejsy API są używane do uzyskiwania dostępu do aplikacji biznesowych, wbudowanych w domu rozwiązań i integracji innych firm. Zewnętrznie więcej firm chce być produktywne i zarabiać na swoich interfejsach API. Mając na uwadze ten trend, usługa API Management staje się centralnym składnikiem standardowego podejścia do zarządzania, zarządzania i publikowania interfejsów API zarówno dla odbiorców wewnętrznych, jak i zewnętrznych.

Dzięki usłudze aplikacja systemu Azure Gateway można teraz chronić i ograniczać dostęp do interfejsów API obsługiwanych za pośrednictwem usługi Azure API Management. W tym artykule opisano rozwiązanie, w którym można zarządzać wewnętrznymi i zewnętrznymi interfejsami API za pomocą pojedynczego wystąpienia usługi API Management. Bezpieczny stan można zachować bezpośrednio za pośrednictwem Internetu, ale dostęp do niego jest uzyskiwany za pośrednictwem usługi Application Gateway.

Uwaga

Ta architektura jest używana jako podstawa akceleratora strefy docelowej usługi Azure API Management w przewodniku Cloud Adoption Framework.

Architektura

Diagram przedstawiający architekturę akceleratora strefy docelowej usługi API Management.

Ten diagram architektoniczny rozpoczyna się od pola obejmującego wszystkie, które reprezentuje zakres subskrypcji, strefę Prywatna strefa DNS, w której zostaną rozpoznane domeny prywatne, oraz zakres nazw sieci wirtualnych APIM-CS. W górnej części subskrypcji znajduje się pole wskazujące, że jest to obciążenie lokalne. Pole ma w nim ikonę serwera. Potok wskazuje połączenie typu lokacja-lokacja lub usługa Azure ExpressRoute łączy się z wystąpieniem usługi API Management w subskrypcji platformy Azure. Siedem dodatkowych mniejszych pól znajduje się wewnątrz dużego pola, które pokazuje subskrypcję platformy Azure. Cztery pola znajdują się w górnym wierszu, a trzy znajdują się w dolnym wierszu. Każde pojedyncze pole reprezentuje oddzielną podsieć z dołączoną sieciową grupą zabezpieczeń. Po lewej stronie znajduje się publiczny adres IP dołączony do bramy aplikacja systemu Azure w lewym górnym wierszu. Usługa Application Gateway znajduje się również w jednym z siedmiu mniejszych pól z podsiecią App GW. Po prawej stronie znajduje się kolejne pole zawierające wystąpienie usługi API Management z podsiecią o nazwie APIM. Obok niego znajduje się trzecie pole w górnym wierszu, które zawiera prywatny punkt końcowy dla wystąpienia usługi Azure Functions w podsieci o nazwie podsieć PE. Prawe pole w górnym wierszu to podsieć zaplecza zawierająca aplikacje funkcji platformy Azure, plan usługi aplikacja systemu Azure service dla funkcji oraz konto magazynu skojarzone z aplikacją funkcji. W dolnym wierszu, zaczynając od lewej strony, jest polem zawierającym usługę Azure Bastion w podsieci bastionu. Drugie pole zawiera maszynę wirtualną jumbox zarządzania w podsieci Jump Box. Ostatnim polem w dolnym wierszu jest agent DevOps zawarty w podsieci DevOps. W prawym dolnym rogu obrazu znajdują się trzy udostępnione zasoby z odpowiednimi ikonami. Od lewej do prawej znajdują się następujące pola: magazyn kluczy, usługa Application Insights i obszar roboczy usługi Log Analytics. Istnieją dwa zestawy przepływów pracy. Pierwszy przepływ pracy jest wskazywany w czarnych okręgach, a drugi przepływ pracy jest wskazywany w niebieskich okręgach, które zostaną wyjaśnione w kolejnych sekcjach. przepływ pracy wskazuje dostęp do interfejsów API, które są dostępne zewnętrznie. Przepływ rozpoczyna się od użytkownika uzyskującego dostęp do publicznego adresu IP. Strzałka następnie wskazuje kierunek usługi Application Gateway, z usługi Application Gateway do prywatnego punktu końcowego i z prywatnego punktu końcowego do aplikacji funkcji. Niebieski przepływ pracy rozpoczyna się od lokalnego serwera ze strzałką wskazującą wystąpienie usługi API Management za pośrednictwem ikony potoku wskazującego połączenie typu lokacja-lokacja lub za pośrednictwem usługi ExpressRoute. Pozostała część przepływu jest taka sama, jak opisano powyżej: z usługi API Management do prywatnego punktu końcowego oraz z prywatnego punktu końcowego do funkcji platformy Azure.

Ta architektura zakłada, że zasady są wdrażane z akceleratora strefy docelowej platformy Azure i że struktura jest kierowana w dół od grupy zarządzania.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

Scenariusz hybrydowy (niebieskie okręgi)

Ten scenariusz wymaga połączenia typu lokacja-lokacja lub usługi Azure ExpressRoute ze środowiskiem lokalnym.

  1. Aplikacja lokalna wymaga dostępu do wewnętrznego interfejsu API obsługiwanego za pośrednictwem usługi Azure API Management.
  2. Usługa API Management łączy się z interfejsami API zaplecza hostowanymi w usłudze Azure Functions. To połączenie odbywa się za pośrednictwem prywatnego punktu końcowego, który jest dostępny za pośrednictwem planu Usługi Azure Functions w warstwie Premium i jest hostowany we własnej podsieci.
  3. Prywatny punkt końcowy bezpiecznie uzyskuje dostęp do wewnętrznego interfejsu API hostowanego w usłudze Azure Functions.

Scenariusz dostępu zewnętrznego (czarne okręgi)

  1. Aplikacja zewnętrzna uzyskuje dostęp do publicznego adresu IP lub niestandardowej nazwy FQDN dołączonej do bramy aplikacja systemu Azure.
  2. Usługa Application Gateway działa jako zapora aplikacji internetowej, która wymaga certyfikatów PFX na potrzeby kończenia żądań SSL.
  3. Usługa API Management łączy się z interfejsami API zaplecza, które są hostowane w usłudze Azure Functions za pośrednictwem prywatnego punktu końcowego. Ten punkt końcowy jest dostępny za pośrednictwem planu Premium usługi Azure Functions i jest hostowany we własnej podsieci.
  4. Prywatny punkt końcowy bezpiecznie uzyskuje dostęp do zewnętrznie dostępnego interfejsu API hostowanego w usłudze Azure Functions.

Składniki

Architektura używa następujących składników:

  • Azure API Management to zarządzana usługa, która umożliwia zarządzanie usługami w środowiskach hybrydowych i wielochmurowych. Usługa API Management działa jako fasada, aby wyodrębnić architekturę zaplecza, a także zapewnia kontrolę i zabezpieczenia pod kątem obserwowania interfejsu API oraz zużycia zarówno dla użytkowników wewnętrznych, jak i zewnętrznych.

  • Azure Functions to rozwiązanie bezserwerowe, które pozwala skupić się bardziej na blokach kodu, które można wykonywać przy minimalnym zarządzaniu infrastrukturą. Funkcje mogą być hostowane w różnych planach hostingu, natomiast ta architektura referencyjna korzysta z planu Premium ze względu na użycie prywatnych punktów końcowych.

  • aplikacja systemu Azure Gateway to zarządzana usługa, która działa jako moduł równoważenia obciążenia warstwy 7 i zapora aplikacji internetowej. W tym scenariuszu brama aplikacji chroni wewnętrzne wystąpienie usługi APIM, które umożliwia korzystanie z trybu wewnętrznego i zewnętrznego.

  • Strefy usługi Azure DNS Prywatna strefa DNS umożliwiają zarządzanie nazwami domen i rozpoznawanie ich w sieci wirtualnej bez konieczności implementowania niestandardowego rozwiązania DNS. Strefę Prywatna strefa DNS można dopasować do co najmniej jednej sieci wirtualnej za pośrednictwem łączy sieci wirtualnej. Ze względu na uwidocznienie usługi Azure Functions za pośrednictwem prywatnego punktu końcowego używanego przez tę architekturę referencyjną, należy użyć prywatnej strefy DNS.

  • Usługa Azure MonitorApplication Insights 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. Usługa Application Insights jest uwzględniona w ramach tej architektury referencyjnej, aby monitorować zachowania wdrożonej aplikacji.

  • Usługa Azure MonitorLog Analytics umożliwia edytowanie i uruchamianie zapytań dzienników przy użyciu danych w dziennikach usługi Azure Monitor, opcjonalnie z poziomu witryny Azure Portal. Deweloperzy mogą uruchamiać proste zapytania dla zestawu rekordów lub używać usługi Log Analytics do przeprowadzania zaawansowanej analizy. Następnie mogą wizualizować wyniki. Usługa Log Analytics jest skonfigurowana w ramach tej architektury referencyjnej, aby agregować wszystkie dzienniki monitorowania w celu uzyskania większej analizy i raportowania.

  • Azure Virtual Machines to zasób obliczeniowy, który może służyć do hostowania wielu różnych obciążeń. W tej architekturze referencyjnej maszyny wirtualne są używane do zapewnienia serwera przesiadkowego zarządzania, a także hosta dla agenta DevOps lub modułu uruchamiającego usługę GitHub.

  • Azure Key Vault to usługa w chmurze, która bezpiecznie przechowuje wpisy tajne i uzyskuje do nich dostęp, od kluczy interfejsu API i haseł po certyfikaty i klucze kryptograficzne. Ta architektura referencyjna używa usługi Azure Key Vault do przechowywania certyfikatów SSL używanych przez usługę Application Gateway.

  • Azure Bastion to usługa typu "platforma jako usługa", która jest aprowizowana w sieci wirtualnej dewelopera. Zapewnia ona bezpieczną łączność RDP/SSH z maszynami wirtualnymi dewelopera za pośrednictwem protokołu TLS w witrynie Azure Portal. W usłudze Azure Bastion maszyny wirtualne nie wymagają już publicznego adresu IP do nawiązania połączenia za pośrednictwem protokołu RDP/SSH. Ta architektura referencyjna używa usługi Azure Bastion do uzyskiwania dostępu do agenta DevOps lub serwera modułu uruchamiającego usługę GitHub lub serwera serwera przesiadkowego zarządzania.

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ą, musisz użyć agenta DevOps, który ma dostęp do sieci wirtualnej. Agent DevOps pomoże Ci wdrożyć zasady i inne zmiany w interfejsach API w architekturze. Mogą one Szablony ciągłej integracji/ciągłego wdrażania służyć do podziału procesu i umożliwienia zespołom deweloperów wdrażania zmian na interfejs API. Są one wykonywane przez moduły uruchamiającego metodyki DevOps.

Alternatywy

W przypadku usług zaplecza, z którymi łączy się wystąpienie usługi API Management, dostępnych jest kilka alternatyw oprócz usługi Azure Functions, która jest używana w tej implementacji referencyjnej:

  • usługa aplikacja systemu Azure to w pełni zarządzana usługa oparta na protokole HTTP, która kompiluje, wdraża i skaluje aplikacje internetowe. Obsługiwane są 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 oferuje w pełni zarządzane klastry Kubernetes na potrzeby zintegrowanego środowiska ciągłej integracji i ciągłego dostarczania (CI/CD), ładu i zabezpieczeń.
  • Azure Logic Apps to oparta na chmurze platforma, która tworzy i uruchamia zautomatyzowane przepływy pracy. Przykładową architekturę referencyjną można znaleźć w artykule Podstawowa integracja przedsiębiorstwa na platformie Azure.
  • Usługa Azure Container Apps umożliwia uruchamianie mikrousług i konteneryzowanych aplikacji na platformie bezserwerowej.

W przypadku wdrożeń obejmujących wiele regionów rozważ użycie usługi Azure Front Door w celu zapewnienia szybkiego, niezawodnego i bezpiecznego dostępu między użytkownikami a statyczną i dynamiczną zawartością internetową aplikacji.

Aby zapoznać się z dodatkowymi przykładami ochrony interfejsów API w usłudze 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 implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

  • Wdróż co najmniej dwie jednostki skalowania usługi API Management rozłożone na dwie strefy dostępności na region. Ta metoda maksymalizuje dostępność i wydajność.
  • Komunikacja równorzędna sieci wirtualnych zapewnia doskonałą wydajność w regionie, ale ma limit skalowalności maksymalnie 500 sieci. Jeśli potrzebujesz więcej obciążeń do połączenia, użyj projektu szprychy piasty lub sieci VWAN platformy Azure.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

  • Zasady weryfikacji usługi API Management są dostępne do weryfikowania żądań interfejsu API i odpowiedzi względem schematu interfejsu OpenAPI. Te funkcje nie zastępują 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.
  • Wdróż zaporę aplikacji internetowej platformy Azure przed usługą API Management, aby zapewnić ochronę przed typowymi lukami w zabezpieczeniach i lukami w zabezpieczeniach aplikacji internetowych.
  • Zastosuj nazwane wartości z wpisami tajnymi usługi Key Vault, aby chronić poufne informacje w zasadach usługi APIM.
  • Użyj usługi Application Gateway, aby uzyskać dostęp zewnętrzny do wewnętrznego wystąpienia usługi APIM, aby chronić wystąpienie usługi APIM 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 zapewnia doskonałą wydajność w regionie, ale ma limit skalowalności maksymalnie 500 sieci. Jeśli potrzebujesz więcej obciążeń do połączenia, użyj projektu szprychy piasty lub sieci VWAN platformy Azure.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

  • Ze względu na potrzebę obsługi strefy dostępności i sieci wirtualnej wybraliśmy warstwę Premium usługi API Management zgodnie z cennikiem dla każdego regionu. Ponadto w tym obciążeniu usługa Azure Functions jest hostowana w planie Premium ze względu na potrzebę dostępu do sieci wirtualnej.
  • W celu weryfikacji koncepcji lub prototypów zalecamy użycie 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 Omówienie filaru doskonałości operacyjnej.

  • Konfiguracje usługi API Management powinny być reprezentowane jako szablony usługi ARM i należy stosować sposób myślenia infrastruktury jako kodu.
  • 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 APIM w bramie aplikacji.
  • Certyfikaty aktualizowane w magazynie kluczy są automatycznie obracane w usłudze API Management, która jest aktualizowana w ciągu 4 godzin.
  • Wdróż co najmniej dwie jednostki skalowania usługi API Management rozłożone na dwie strefy dostępności na region. Ta metoda maksymalizuje dostępność i wydajność.

Wdrażanie tego scenariusza

Ta architektura jest dostępna w witrynie GitHub. Zawiera wszystkie niezbędne pliki infrastruktury jako kodu oraz instrukcje wdrażania.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Zobacz następujące kluczowe zasoby:

Dowiedz się więcej o tych kluczowych usługach: