Próbuję umieścić Amazon API Gateway przed Load Balancer Application, który równoważy ruch do mojego ECS Cluster, gdzie wszystkie moje mikroserwisy są wdrożone. Motywacją do korzystania z bramy API jest użycie niestandardowego autoryzatora za pośrednictwem funkcji lambda.Amazon API Gateway przed ELB i ECS Cluster
Schemat instalacji
w Amazon słów (https://aws.amazon.com/api-gateway/faqs/): "wnioski pełnomocnika do operacji backend również muszą być publicznie dostępne w Internecie". To zmusza mnie do tego, by ELB stał się publiczny (internetowy), a nie wewnętrzny. Następnie potrzebuję sposobu, aby zapewnić, że bramka API może uzyskać dostęp do ELB poza VPC.
Moim pierwszym pomysłem było użycie certyfikatu klienta w API Gatway, ale ELB nie obsługuje go.
Wszelkie pomysły będą wysoko cenione!
I nie sądzę, że istnieje proste rozwiązanie. Brama API nie jest dla Ciebie lub musisz zrobić trochę więcej. Rozwiązania obejmują umieszczanie HAProxy przed ALB, który zweryfikuje certyfikat klienta. Lub umieść lambda przed ALB, ale to wymaga buforowania całej odpowiedzi, co może spowolnić działanie. Lub jeśli możesz wstrzyknąć tajny nagłówek do żądania z bramy API do ALB. Ten sekret zostanie następnie zweryfikowany w backendach. Nie polecam korzystania z białej listy adresów IP, ponieważ zakresy adresów IP bramy API nie są statyczne i mogą zmieniać błędy. – doorstuck
Dzięki @doorstuck. Chciałbym uniknąć wprowadzania nowych komponentów, takich jak HAProxy. Domyślam się, że ten scenariusz (API Gateway, ELB, ECS Cluster) jest dość powszechny. Czy AWS nie dostarcza do tego rozwiązania z pudełka? –
Bramka interfejsu API jest bardziej dostosowana do usług funkcji Lambda. Po umieszczeniu kontenerów dockera w hostowanych usługach wydaje mi się, że dodaje on zbyt wiele opóźnień i złożoności. Używam innego proxy zamiast API Gateway, ponieważ mimo to korzystam tylko z części proxy bramki API. Użyłem Skippera przez Zalando z sukcesem. Ale jeśli chcesz korzystać z autoryzacji, buforowania w chmurze itd., To być może bramka API nadal jest drogą do zrobienia. – doorstuck