Wstęp

W ostatnich latach API (Application Programming Interface) stały się kluczowym elementem w budowie nowoczesnych aplikacji. Z tego powodu wiele organizacji inwestuje w narzędzia, które pomagają w zarządzaniu, monitorowaniu i zabezpieczaniu swoich API. Dwa popularne rozwiązania to API Gateway i API Discovery. Jednak czy te dwa narzędzia są komplementarne, czy może API Discovery staje się zbędne, gdy organizacja korzysta z dobrze zarządzanego API Gateway?

Co to jest API Gateway?

API Gateway to narzędzie lub serwer, który stoi pomiędzy klientami a backendowymi serwisami API. Jego głównym zadaniem jest zarządzanie ruchem API, zabezpieczanie komunikacji oraz umożliwienie łatwej integracji między różnymi usługami. API Gateway opiera się na specyfikacjach OpenAPI (lub innych podobnych standardach), które dokładnie definiują, jak API ma działać i jakie zasady należy zastosować.

API Gateway pozwala na:

  • Zarządzanie ruchem API: Równoważenie obciążenia, routing i skalowanie ruchu.
  • Zabezpieczanie API: Autoryzacja, uwierzytelnianie, ochrona przed atakami DDoS.
  • Monitorowanie i analiza: Zbieranie danych o użyciu API, identyfikacja problemów i optymalizacja wydajności.
  • Ułatwienie integracji: Zapewnienie spójnego interfejsu dla różnych usług backendowych.

Istnieją nawet ciekawe i dobrze rozbudowane narzędzia, które weryfikują czy przygotowany przez zespół swagger a.k.a. OpenAPI Specification przygotowany jest w odpowiedni sposób:

  • Vacuum – https://github.com/daveshanley/vacuum
  • Spectral – https://stoplight.io/open-source/spectral
  • KICS – https://kics.io/

co tego typu narzędzia pozwalają wykryć?

  • Brak uwierzytelnienia
  • zbyt lekkie ograniczenia w formie dopuszczonych kolekcji o nieograniczonym rozmiarze
  • brak wyrażeń regularnych określających dopuszczalny typ danych
  • … i wiele innych
źródło: https://dzone.com/articles/the-role-of-api-gateways-in-api-security

Czym jest API Discovery?

API Discovery to proces identyfikowania, katalogowania i monitorowania wszystkich API, które istnieją w organizacji. Często jest to realizowane za pomocą specjalnych narzędzi, które automatycznie przeszukują środowisko organizacji w poszukiwaniu nieudokumentowanych lub nieznanych API (tzw. shadow APIs). Celem API Discovery jest zapewnienie pełnej widoczności, co jest kluczowe w kontekście zarządzania bezpieczeństwem i zgodnością z regulacjami.

API Discovery może:

  • Odkrywać shadow APIs: Znajdowanie API, które zostały uruchomione bez centralnej kontroli lub dokumentacji.
  • Zapewniać zgodność: Monitorowanie API pod kątem zgodności z wewnętrznymi i zewnętrznymi standardami bezpieczeństwa.
  • Automatyzować audyty: Regularne przeglądy i aktualizacje katalogu API.

Czy API Discovery jest potrzebne przy dobrze wdrożonym API Gateway?

Gdy organizacja korzysta z API Gateway, który opiera się na dobrze zarządzanej specyfikacji OpenAPI, może się wydawać, że API Discovery jest zbędne. Oto kilka argumentów za i przeciw tej tezie.

Argumenty za wartością API Discovery:

  1. Zarządzanie shadow APIs: Nawet w dobrze zorganizowanych środowiskach mogą istnieć API, które zostały uruchomione bez pełnej widoczności. API Discovery może pomóc w ich identyfikacji i katalogowaniu, co jest kluczowe dla zarządzania ryzykiem.
  2. Uzupełnienie dla API Gateway: API Discovery może dostarczyć dodatkowych informacji, które mogą być użyte do optymalizacji konfiguracji API Gateway. Przykładem może być identyfikacja nowych zależności lub wzorców ruchu, które wcześniej były nieznane.
  3. Audyt i zgodność: API Discovery umożliwia ciągłe monitorowanie zgodności API z wewnętrznymi politykami i zewnętrznymi przepisami, co jest kluczowe w kontekście rosnących wymagań dotyczących bezpieczeństwa.

Argumenty przeciw wartości API Discovery:

  1. Redundancja: W organizacjach, gdzie API Gateway jest centralnym punktem zarządzania API, a wszystkie API są dobrze udokumentowane i monitorowane, API Discovery może nie przynosić dodatkowej wartości.
  2. Koszty i złożoność: Implementacja i utrzymanie API Discovery może być kosztowne i skomplikowane, zwłaszcza jeśli organizacja już inwestuje w API Gateway i inne narzędzia do zarządzania API.

Przypadki użycia: Kiedy API Discovery ma sens?

1. Duże organizacje z wieloma zespołami: W dużych organizacjach, gdzie różne zespoły mogą niezależnie tworzyć i wdrażać API, API Discovery może być nieocenione. Pomaga zapewnić, że wszystkie API są zgodne z centralnymi politykami i że nie ma ukrytych luk w zabezpieczeniach.

2. Szybko zmieniające się środowiska: W dynamicznych środowiskach, gdzie API są często modyfikowane lub tworzone na nowo, API Discovery może pomóc w śledzeniu tych zmian i zapewnieniu, że wszystko jest odpowiednio zarządzane i zabezpieczone.

3. Sektor regulowany: W sektorach, gdzie zgodność z przepisami jest kluczowa (np. finanse, opieka zdrowotna), API Discovery może pomóc w spełnieniu rygorystycznych wymagań dotyczących dokumentacji i monitorowania API.

Podsumowanie

API Discovery i API Gateway to dwa potężne narzędzia, które mogą działać komplementarnie, ale nie zawsze jest to konieczne. W zależności od struktury organizacji, liczby i rodzaju API oraz wymagań dotyczących zgodności i bezpieczeństwa, API Discovery może przynieść znaczną wartość lub być zbędnym wydatkiem.

Jeśli Twoja organizacja już korzysta z dobrze wdrożonego API Gateway i zarządza swoimi API za pomocą OpenAPI, warto dokładnie rozważyć, czy API Discovery przyniesie dodatkowe korzyści. W wielu przypadkach może okazać się, że zasoby lepiej zainwestować w optymalizację istniejących procesów i narzędzi.

Warto korzystać z przynajmniej jednego z tych rozwiązań – zdecydowanie ułatwiają pracę przy konfigurowaniu i tworzeniu scenariuszy testów z wykorzystaniem skanerów DAST. Ale o tym przy kolejnej okazji 🙂