0

Ich arbeite an einem Projekt mit serverloser Architektur.AWS API Gateway mit Cloud Front integrieren, ohne Ursprung anzugeben

Ich habe festgestellt, dass obwohl AWS sagte, dass API Gateway Ihre Ressourcen vor DDoS-Angriffen schützen kann.

Aber wenn es ein schlechter Benutzer, die zu Ihren Diensten Spam halten Senden

API-Gateway keine geeignete Art und Weise zur Verfügung stellen kann, diese Art von Fragen zu behandeln.

So beginne ich, um herauszufinden, was ich tun kann:

  • AWS WAF ist eine offensichtlich Lösung.

Ich habe diesen Beitrag auf Stackoverflow gefunden: API gateway with aws waf

Dann, um Setup-WAF,

ich eine Wolkenfront Verteilung vor dem API-Gateway setzen.

Ich erkannte, dass dies eine Umgehungslösung sein könnte, aber ist es?

Hier ist das Problem, das ich gefunden:

  1. ich eine Wolkenfront Verteilung haben, ist ihre Domain-Namen cdn.net

  2. ich den Ursprung Weg zu meinem api-Gateway: https://sampleagigw.amazon.com, und legen Sie Pfad seine Stufe dev.

  3. Wenn ich GET http://cdn.net/posts aufrufen, wird es ein Ergebnis zurückgeben, das ich erwarte.

  4. Dann, wenn Sie die http://cdn.net/posts auf Browser setzen, überrascht es Sie mehr als Ihre erwarten, ist es auch die API-Gateway-URL auf die URL-Leiste des Browsers aussetzen: https://sampleagigw.amazon.com/dev/posts

Es bedeutet, die ganze Arbeit mit WAF und Cloud Front ist bedeutungslos.

Gibt es etwas, was ich missverstanden habe?

Antwort

4

Überprüfen Sie die "Viewer Protocol Policy" in Ihrer zusätzlichen CloudFront-Distribution (cdn.net) und stellen Sie sicher, dass sie auf "HTTP an HTTPS umleiten" oder "Nur HTTPS" gesetzt ist. Alternativ können Sie Ihren Ursprung bearbeiten und "Origin Protocol Policy" auf "Nur HTTPS" setzen.

Wenn Sie "Viewer Protocol Policy" auf "HTTP und HTTPS" und "Origin Protocol Policy" auf "Match Viewer" eingestellt haben, kann ich sehen, wie Sie dieses Ergebnis erhalten würden. Sie geben http://cdn.net/posts im Browser ein, dann versucht die cdn.net-Verteilung, sich mit http://sampleagigw.amazon.com (keine https/tls/ssl) zu verbinden. Dies geht zu der CloudFront-Verteilung, die von API Gateway erstellt wurde und auf "HTTP an HTTPS umleiten" eingestellt ist. Da es eine HTTP-Anfrage erhalten hat, gibt es eine 302-Weiterleitung an http://sampleagigw.amazon.com zurück. Dies wird von der Distribution cdn.net an den Browser zurückgegeben. Der Browser folgt dann der Umleitung 302 und lässt die URL http://sampleagigw.amazon.com in der URL-Leiste des Browsers.

+0

Das ist es !!Ich habe vergessen, die Origin Protocol Policy festzulegen, vielen Dank! – Denny