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. Interfejsy API są używane wewnętrznie do uzyskiwania dostępu do aplikacji biznesowych, wbudowanych rozwiązań domowych i integracji innych firm. Zewnętrznie więcej firm wydaje się być produktywne i zarabiać na swoich interfejsach API. Mając na uwadze ten trend, 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 Azure Application 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ć zarówno wewnętrznymi, jak i zewnętrznymi interfejsami API za pośrednictwem pojedynczego wystąpienia API Management. Możesz zachować bezpieczną postawę przed ujawnieniem bezpośrednio za pośrednictwem Internetu, ale zamiast tego uzyskuje się do niego dostęp za pośrednictwem Application Gateway.

Uwaga

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

Architektura

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

Ten diagram architektoniczny rozpoczyna się od pola obejmującego wszystko, 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. W polu znajduje się ikona serwera. Potok wskazuje połączenie typu lokacja-lokacja lub usługa Azure ExpressRoute łączy się z wystąpieniem 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ń. Z lewej strony znajduje się publiczny adres IP dołączony do Azure Application Gateway po lewej stronie w górnym wierszu. Application Gateway również znajduje się w jednym z siedmiu mniejszych pól, z podsiecią o nazwie Podsieć bramy aplikacji. Po prawej stronie znajduje się inne pole zawierające wystąpienie 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 Azure Functions w podsieci o nazwie podsieć PE. Prawe pole w górnym wierszu to podsieć zaplecza zawierająca aplikacje funkcji platformy Azure, plan Azure App Service 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 analizy dzienników. 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. Czarny 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 Application Gateway, od Application Gateway do prywatnego punktu końcowego oraz z prywatnego punktu końcowego do aplikacji funkcji. Niebieski przepływ pracy rozpoczyna się od lokalnego serwera ze strzałką wskazującą wystąpienie API Management za pomocą 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: od API Management do prywatnego punktu końcowego i z prywatnego punktu końcowego do funkcji platformy Azure.

W tej architekturze przyjęto założenie, że zasady są stosowane 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. API Management łączy się z interfejsami API zaplecza hostowanymi w Azure Functions. To połączenie odbywa się za pośrednictwem prywatnego punktu końcowego, który jest dostępny za pośrednictwem planu Azure Functions Premium i jest hostowany we własnej podsieci.
  3. Prywatny punkt końcowy bezpiecznie uzyskuje dostęp do wewnętrznego interfejsu API hostowanego na 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, która jest dołączona do Azure Application Gateway.
  2. Application Gateway działa jako zapora aplikacji internetowej, która wymaga certyfikatów PFX na potrzeby kończenia żądań PROTOKOŁU SSL.
  3. API Management łączy się z interfejsami API zaplecza, które są hostowane na Azure Functions za pośrednictwem prywatnego punktu końcowego. Ten punkt końcowy jest dostępny za pośrednictwem planu Azure Functions Premium i jest hostowany we własnej podsieci.
  4. Prywatny punkt końcowy bezpiecznie uzyskuje dostęp do zewnętrznie dostępnego interfejsu API hostowanego na Azure Functions.

Składniki

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

  • Azure API Management to usługa zarządzana, która umożliwia zarządzanie usługami w środowiskach hybrydowych i wielochmurowych. Usługa API Management pełni rolę fasady w celu abstrakcji architektury zaplecza i zapewnia kontrolę i zabezpieczenia dla możliwości obserwacji i użycia interfejsu API 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.

  • Azure Application 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.

  • Usługa Azure DNSPrywatna strefa DNS strefy 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 Azure Functions przez prywatny punkt końcowy używany 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 tej architekturze referencyjnej w celu monitorowania zachowań 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 Azure Portal. Deweloperzy mogą uruchamiać proste zapytania dotyczące 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 jako część 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 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 z 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. Te szablony ciągłej integracji/ciągłego wdrażania mogą 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 API Management, dostępnych jest kilka alternatyw, oprócz Azure Functions, który jest używany w tej implementacji referencyjnej:

  • 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ługiwane są platformy .NET, .NET Core, Java, Ruby, Node.js, PHP i Python. Aplikacje mogą być uruchamiane i skalowane w środowiskach opartych na systemie Windows lub Linux.
  • 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ń 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 statyczną i dynamiczną zawartością internetową aplikacji.

Aby zapoznać się z dodatkowymi przykładami ochrony interfejsów API Application Gateway, zobacz Ochrona interfejsów API za pomocą Application Gateway i API Management.

Zagadnienia do rozważenia

Te zagadnienia implementują filary platformy 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 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ń.

  • API Management zasady sprawdzania poprawności są dostępne do weryfikowania żądań interfejsu API i odpowiedzi względem schematu interfejsu OpenAPI. Te funkcje nie są zamiennikiem Web Application Firewall, 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óż usługę Azure Web Application Firewall (WAF) przed API Management, aby zapewnić ochronę przed typowymi programami wykorzystującymi luki w zabezpieczeniach i lukami w zabezpieczeniach aplikacji internetowych.
  • Zastosuj nazwane wartości z wpisami tajnymi Key Vault, aby chronić poufne informacje w zasadach usługi APIM.
  • Użyj 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ę 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 API Management, postępując zgodnie z cennikiem dla każdego regionu. Ponadto w tym obciążeniu 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 API Management (takich jak Developer lub Standard).

Efektywność 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.

  • API Management konfiguracje powinny być reprezentowane jako szablony usługi ARM i należy przyjąć sposób infrastruktury jako kodu.
  • Użyj procesu ciągłej integracji/ciągłego wdrażania, aby zarządzać konfiguracjami, ich wersją i aktualizować API Management.
  • Utwórz niestandardowe sondy kondycji, aby ułatwić zweryfikowanie 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 zaktualizowane w magazynie kluczy są automatycznie obracane w API Management, która jest aktualizowana w ciągu 4 godzin.
  • Wdróż co najmniej dwie jednostki skalowania 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ć niepubliowe profile usługi LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Zobacz następujące kluczowe zasoby:

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