2017-05-06 9 views
1

特定のIPのインテグレーションリクエストでリクエストを拒否する方法はありますか?AWS API Gatewayの特定のIPに対する拒否リクエスト

現在、このコードは動作していますが、依然としてリクエストがラムダ関数に渡されていますが、まだ正規の結果本体が返されます。私はラムダ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のエラーで終了しますが、ラムダ関数はダッシュボードに新しい呼び出し/エラーを表示しません。私のために働く。

+0

あなたはこれを返信としてマークできますか? –

関連する問題