2016-12-22 6 views
2

認証されたIPアドレスからの呼び出しだけを受け入れる企業バックエンドのAPIにアクセスする必要があります。AWSのラムダ関数にパブリックIPを割り当てることは可能ですか?

この時点で私たちのモバイルクライアントは、いくつかの変換を実行し、割り当てられた権限のパブリックIPアドレスを持っているEC2インスタンス上で別のサービスを呼び出し、AWSラムダ関数を呼び出しています。この第2のサービスは、企業のバックエンドへの最終コールを実行して、データをラムダに返し、次にクライアントに返します。

これは正常に動作しているが、それは私たちが避けたいアーキテクチャにいくつかの不必要な複雑さを追加します。

はEC2でこの余分なサービスを避けるために何とかラムダ関数にパブリックIPを割り当てることが可能ですか?

おかげで、

GA

答えて

7

簡単な解決策はこれです:

  • 弾性IPアドレスをNATインスタンスまたはNATゲートウェイを作成

  • そのデフォルトルート

  • としてNATデバイスを使用してプライベートVPCサブネットを作成します
  • プライベートサブネットに関連付けられたVPCにLambda機能を展開します。

NATデバイスは、NATデバイスのEIPは、内部のためにそのソースIPアドレスになります意味し、デフォルトゲートウェイ、ことを意味しているプラ​​イベートサブネット、上の弾性ネットワークインターフェイス(ENI)があります作成された各ラムダコンテナインターネットに接続されている接続。

ラムダ関数のコードに変更なし、自身が必要とされます。

上記は、公式のソリューションです。

http://docs.aws.amazon.com/lambda/latest/dg/vpc.html

+0

お手数ですが助けてください! –

0

あなたはメソッドのリクエストヘッダから "source_ip" や "X-転送さ-のために" を得ることができます。イベントに変換し、ラムダ関数で処理します。

+0

私は非常によくあなたの答えを理解していませんか?ただ明確にする。 AWSにCloud Logic APIを呼び出すモバイルアプリがあります。このクラウドロジックAPIは、ラムダ関数によって処理されます。この関数は、クライアントからの要求を受け取り、DynamoDBから取得した詳細情報を使って要求を強化し、企業のバックエンドを呼び出します。ラムダに固定のパブリックIPを割り当てる方法を見つけることができなかったので、私たちはEC2のLinux VMに、バックエンドに電話をかける許可されたパブリックアドレスでリクエストを送信します。あなたが提案しているこの変換はどこで起こるべきですか? –

+1

@ XC。私は信じて、別の質問に答えました。ここでの問題は、インバウンド要求の送信元アドレスを検出する方法ではなく、既知の固定送信元アドレスを使用して送信要求を発信する方法です。 –

+0

こんにちは、マイケル、ありがとう。私はその質問を誤解しています。 こんにちは、GAさん、申し訳ありません。 –

関連する問題