0

我有一個API網關端點的一些網址,例如:LIMT AWS API網關端點GET參數

https://api.myapp.com/myendpoint 

是將要訪問該終端的人和/或服務都需要通過特定的參數並將值賦給端點。就像這樣:

https://api.myapp.com/myendpoint?token=123456 

是否有可能限制訪問端點如果token參數丟失,或者如果token值不是一個特定的預先確定的價值呢?我可以將我的端點設置爲僅忽略沒有正確標記的呼叫嗎?

我打算使用Lambda作爲後端。我必須在Lambda函數中處理這個問題嗎?最終,我試圖通過隨機個人對終端進行僞造呼叫來避免不必要的Lambda和API網關使用成本。所以,如果我可以讓API網關只是忽略這些調用,而沒有旋轉Lambda將是理想的。

如果我可以讓API網關忽略這些調用,那麼在對缺少令牌的端點進行僞造調用時,是否還會收到使用費用帳單?

我問的原因是因爲要訪問此端點的第三方服務沒有任何選項可用於在標頭中傳遞身份驗證參數或使用AWS Cognito等。所以我只想到一個簡單的方法來限制訪問。

+0

第三方服務讓你指定路徑嗎?我想知道您是否可以將令牌作爲路徑的一部分。 –

+0

我沒有看到任何能夠讓你達到最終目標的文檔。他們似乎只支持基於標題的策略。路徑的想法可能通過讓你的令牌像資源一樣工作,但這實際上並不能爲你提供太多的價值。然後再次我不確定一個query_string參數會提供很多值/安全性。所以也許你的lambda進程的早期回報是你考慮到你的限制的最佳選擇。這至少會爲您節省一些lambda成本。可能希望對服務進行雙倍/三重檢查,以查看它們是否支持標頭或SSL證書。 –

+0

我可以指定第三方使用的路徑是。我正想着想出一個帶有一些散列或其中的特定路徑,然後定期以編程方式告訴第三方服務在URL中使用一個新的散列。這將使任何人都幾乎不可能猜測端點URL,因爲它每天都在變化,或者每小時都在變化。 –

回答

0

您將需要在Lambda中執行此驗證。

如果你有一個查詢參數token到集成端點的映射,然後像...?token=123 API網關的請求將參數傳遞到終點,但對於...?token=,API網關不會。

API網關不會像您想要的那樣對查詢參數進行驗證,您將爲這些請求付費。

+0

您是否在說可以使用映射爲了設置API網關在請求中要求'?token = 123',以便像'?token = abc'這樣的變體將被忽略? –