Ochrona interfejsów API za pomocą usługi Application Gateway i usługi API Management

Azure API Management
Azure Application Gateway

Dzięki większej liczbie obciążeń stosujących się do podejścia opartego na interfejsie API dla ich projektowania oraz rosnącej liczbie i ważności zagrożeń dla aplikacji internetowych przez Internet kluczowe znaczenie ma strategia zabezpieczeń w celu ochrony interfejsów API. Jednym z kroków w kierunku zabezpieczeń interfejsu API jest ochrona ruchu sieciowego przy użyciu wzorca routingu bramy. Brama służy do ograniczania lokalizacji źródłowych ruchu i jakości ruchu oprócz obsługi elastycznych reguł routingu. W tym artykule opisano sposób używania bramy aplikacja systemu Azure i usługi Azure API Management w celu ochrony dostępu do interfejsu API.

Architektura

Ten artykuł nie dotyczy podstawowych platform aplikacji, takich jak App Service Environment, Azure SQL Managed Instance i Azure Kubernetes Services. Te części diagramu przedstawiają tylko to, co można zrobić jako szersze rozwiązanie. W tym artykule omówiono w szczególności zacienione obszary, usługę API Management i usługę Application Gateway.

Diagram przedstawiający sposób ochrony interfejsów API przez usługę Application Gateway i usługę API Management.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

  • Usługa Application Gateway odbiera żądania HTTP, które zostały dozwolone przez sieciową grupę zabezpieczeń podsieci.

  • Zapora aplikacji internetowej w usłudze Application Gateway sprawdza następnie żądanie względem reguł zapory aplikacji internetowej, w tym reguły niestandardowe geomatch. Jeśli żądanie jest prawidłowe, żądanie będzie kontynuowane.

  • Usługa Application Gateway konfiguruje mechanizm serwera proxy adresu URL, który wysyła żądanie do odpowiedniej puli zaplecza. Na przykład w zależności od formatu adresu URL wywołania interfejsu API:

    • Adresy URL sformatowane tak jak api.<some-domain>/external/* mogą dotrzeć do zaplecza w celu interakcji z żądanymi interfejsami API.

    • Wywołania sformatowane jako api.<some-domain>/* przejście do dead end (sinkpool), który jest pulą zaplecza bez celu.

  • Ponadto usługa Application Gateway akceptuje i serwerów proxy wywołania wewnętrzne, które pochodzą z zasobów w tej samej sieci wirtualnej platformy Azure w obszarze api.<some-domain>/internal/*.

  • Na koniec na poziomie usługi API Management interfejsy API są konfigurowane tak, aby akceptowały wywołania zgodnie z następującymi wzorcami:

    • api.<some-domain>/external/*
    • api.<some-domain>/internal/*

    W tym scenariuszu usługa API Management używa dwóch typów adresów IP, publicznych i prywatnych. Publiczne adresy IP służą do komunikacji wewnętrznej na porcie 3443 oraz ruchu interfejsu API środowiska uruchomieniowego w konfiguracji zewnętrznej sieci wirtualnej. Gdy usługa API Management wysyła żądanie do publicznego zaplecza połączonego z Internetem, wyświetla publiczny adres IP jako źródło żądania. Aby uzyskać więcej informacji, zobacz Adresy IP usługi API Management w sieci wirtualnej.

  • Reguła routingu na poziomie usługi Application Gateway prawidłowo przekierowuje użytkowników do portal.<some-domain>/* portalu dla deweloperów, aby deweloperzy mogli zarządzać interfejsami API i ich konfiguracjami zarówno z środowisk wewnętrznych, jak i zewnętrznych.

Składniki

  • Usługa Azure Virtual Network umożliwia wielu typom zasobów platformy Azure prywatną komunikację ze sobą, Internetem i sieciami lokalnymi. W tej architekturze usługa Application Gateway jest odpowiedzialna za tunelowanie publicznego ruchu internetowego do tej sieci prywatnej.

  • aplikacja systemu Azure Gateway to moduł równoważenia obciążenia ruchu internetowego, który zarządza ruchem do aplikacji internetowych. Ten typ routingu jest nazywany równoważeniem obciążenia warstwy aplikacji (warstwy OSI 7). W tej architekturze nie tylko brama jest używana do routingu, brama hostuje również zaporę aplikacji internetowej w celu ochrony przed typowymi wektorami ataków opartymi na sieci Web.

  • Usługa Azure API Management to hybrydowa, wielochmurowa platforma do zarządzania interfejsami API we wszystkich środowiskach. Usługa API Management tworzy spójne, nowoczesne bramy interfejsu API dla istniejących usług zaplecza. W tej architekturze usługa API Management jest używana w trybie w pełni prywatnym w celu odciążania zagadnień krzyżowych z kodu i hostów interfejsu API.

Zalecenia

To rozwiązanie koncentruje się na implementowaniu całego rozwiązania i testowaniu dostępu do interfejsu API z wewnątrz i poza siecią wirtualną usługi API Management. Aby uzyskać więcej informacji na temat procesu integracji sieci wirtualnej usługi API Management, zobacz Integrowanie usługi API Management w wewnętrznej sieci wirtualnej z usługą Application Gateway.

Aby komunikować się z zasobami prywatnymi w zapleczu, usługa Application Gateway i usługa API Management muszą znajdować się w tej samej sieci wirtualnej co zasoby lub w równorzędnej sieci wirtualnej.

  • Prywatny, wewnętrzny model wdrażania umożliwia usłudze API Management łączenie się z istniejącą siecią wirtualną, dzięki czemu jest osiągalny z wnętrza tego kontekstu sieciowego. Aby włączyć tę funkcję, wdróż warstwy Developer lub Premium API Management.

  • Zarządzanie certyfikatami usługi App Gateway w usłudze Azure Key Vault.

  • Aby personalizować interakcje z usługami, możesz użyć wpisów CNAME.

Alternatywy

Możesz użyć innych usług, aby zapewnić podobny poziom ochrony zapory i zapory aplikacji internetowej (WAF):

Kwestie wymagające rozważenia

Niezawodność

aplikacja systemu Azure Gateway jest zawsze wdrażana w sposób o wysokiej dostępności, niezależnie od liczby wystąpień. Aby uniknąć awarii strefy, możesz skonfigurować usługę Application Gateway tak, aby obejmowała wiele Strefy dostępności. Aby uzyskać więcej informacji, zobacz Autoskalowanie i wysoka dostępność.

Włącz nadmiarowość stref dla składników usługi API Management, aby zapewnić odporność i wysoką dostępność. Nadmiarowość strefowa replikuje bramę usługi API Management i płaszczyznę sterowania między centrami danych w fizycznie oddzielonych strefach, co czyni je odpornymi na awarie strefy. Do obsługi stref dostępności wymagana jest warstwa Premium usługi API Management.

Usługa API Management obsługuje również wdrożenia w wielu regionach, co może zwiększyć dostępność, jeśli jeden region przejdzie w tryb offline. Aby uzyskać więcej informacji, zobacz Wdrażanie w wielu regionach. W tej topologii ważne jest również, aby mieć jedną usługę Application Gateway na region, ponieważ usługa Application Gateway jest usługą regionalną.

Zabezpieczenia

Aby uzyskać więcej informacji na temat zabezpieczeń usługi Application Gateway, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla usługi Application Gateway.

Aby uzyskać więcej informacji na temat zabezpieczeń usługi API Management, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla usługi API Management.

Usługa Azure DDoS Protection w połączeniu z najlepszymi rozwiązaniami dotyczącymi projektowania aplikacji zapewnia ulepszone funkcje ograniczania ryzyka ataków DDoS w celu zapewnienia większej ochrony przed atakami DDoS. Należy włączyć usługę Azure DDOS Protection w dowolnej sieci wirtualnej obwodowej.

Optymalizacja kosztów

Koszt tej architektury zależy od aspektów konfiguracji, takich jak:

  • Warstwy usług
  • Skalowalność, co oznacza, że liczba wystąpień dynamicznie przydzielanych przez usługi w celu obsługi danego zapotrzebowania
  • Czy ta architektura będzie działać w sposób ciągły, czy tylko kilka godzin w miesiącu

Po ocenie tych aspektów przejdź do kalkulatora cen platformy Azure, aby oszacować ceny.

Efektywność wydajności

Usługa Application Gateway jest punktem wejścia dla tej architektury, a funkcja zapory aplikacji internetowej wymaga dodatkowej mocy obliczeniowej dla każdej analizy żądań. Aby umożliwić usłudze Application Gateway rozszerzenie pojemności obliczeniowej na miejscu, ważne jest, aby włączyć skalowanie automatyczne. Aby uzyskać więcej informacji, zobacz Określanie automatycznego skalowania. Postępuj zgodnie z zaleceniami dotyczącymi dokumentacji produktu dotyczącymi rozmiaru podsieci dla usługi Application Gateway. Dzięki temu podsieć jest wystarczająco duża, aby obsługiwać pełne skalowanie w poziomie.

Aby obsługiwać wysoce współbieżne scenariusze, włącz skalowanie automatyczne usługi API Management. Skalowanie automatyczne rozszerza możliwości usługi API Management w odpowiedzi na rosnącą liczbę żądań przychodzących. Aby uzyskać więcej informacji, zobacz Automatyczne skalowanie wystąpienia usługi Azure API Management.

Wdrażanie tego scenariusza

Ten scenariusz przedstawiono w publikacji z galerii Szybki start platformy Azure usługi Application Gateway z wewnętrznymi usługami API Management i Web App.

Następne kroki

Zaprojektuj interfejsy API zgodnie z dobrymi wytycznymi dotyczącymi projektowania internetowego interfejsu API i zaimplementuj je przy użyciu dobrych praktyk implementacji internetowego interfejsu API.