2017-05-06 69 views
1

有沒有辦法在集成請求中拒絕某些IP的請求?針對某些IP在AWS API網關中拒絕請求

目前我有這個代碼,它工作,但請求仍然通過我的Lambda函數,我仍然返回常規結果體。我試圖在擊中Lambda fn之前完全停止請求。

#if($context.identity.sourceIp != "123.45.55.43") 
    { 
    "errorMessage" : "Error, not authorized" 
    } 
#end 
+0

[AWS API Gateway:限制來自單個IP的請求]的可能重複(http://stackoverflow.com/questions/38444923/aws-api-gateway-limit-requests-from-a-single-ip) –

+0

@AndyHayden我不認爲這是一個騙局。不是試圖限制,而是實際上停止,我認爲我發現了一個可行的(對我來說)下面的解決方案。 – sorrell

+0

如果您使用CloudFront/WAF(如在該答案中),則可以停止。雖然限制不完全相同,但它本質上是相同的(具體來說,解決方案是相同的)。 –

回答

1

這並不美觀,但這是我想出的:當IP與我想要的不匹配時,傳遞一個斷開的請求。在這個例子中,我只想要123.45.55.43的請求通過,其他一切都會失敗 - 我不關心爲客戶端提供適當的響應。由於$broken未定義,因此我們沒有將任何信息傳遞給Lambda fn。

#if($context.identity.sourceIp == "123.45.55.43") 
    { 
    "source_ip": "$context.identity.sourceIp" 
    } 
#else 
    $broken 
#end 

的API結束了400錯誤,但lambda函數不顯示在儀表板上的任何新的調用/錯誤。適用於我。

+0

你可以標記爲已回答? –