none
Application Gateway WAFを介してWebAppsからPOSTした場合の502エラーについて

    質問


  • WebAppsから外部のサーバに対してPOST、GETする処理を行います。
    セキュリティ上、WAFと固定パブリックIPアドレスが必要なため、Applicatoin Gatewayを介して行いますが、上記処理を実行すると502エラーとなります。
    ※外部サーバは登録されたIPアドレスしか接続できないため、Applicatoin Gatewayを介さない処理の動作確認はできておりません。
    ※外部サーバにIPアドレス登録されているクライアント端末から同じWeb処理(POST、GET)をすると正常に動きますので、Webアプリの問題ではないように思います。
    ※外部サーバにApplicatoin Gatewayの固定IPアドレスからの受信データがないことを確認しているため、外部サーバまでデータは届いていません。

    Applicatoin Gatewayの問題なのか確認のため、上記WebApps内にREST APIを実装し、クライアント側からPOST、GETしてみたところ、Applicatoin Gatewayを介さずに直接WebAppsに実行すると、レスポンスがあり意図した結果を取得できますが、Application Gatewayを挟むと502エラーとなり実行できません。
    また、上記WebAppsにはファイルをアップロードする画面等ありますが、そういう画面や処理はApplication Gatewayを挟んでも問題なく動作しています。


    Microsoftホームページ「Application Gateway での無効なゲートウェイによるエラーのトラブルシューティング(502)エラー」の内容は以下の通り確認しており、設定上は問題がないように思います。

    ・NSG/UDR:未設定(NSGは最終的に設定する予定ですが現在の確認段階では未設定にしてます)
    ・VNET内カスタムDNS:未設定

    ・正常性プローブ:パス「/」、他はホームページ通り設定済み
    ・バックエンドプール:使用するWebAppsを設定

    ・バックエンド正常性チェック:「健全」表示

    POST、GETする場合には別に設定が必要なのか等わからない点があり、お手数ですが、よろしくお願いします。

    2019年5月24日 0:24

回答

  • 書き込みが遅くなりました。

    結果として、uniuni398さんアドバイスのWebAppsのIPアドレスを登録することで、期待通りの動作をすることができました。

    ありがとうございます。Application Gatewayを介したWebApps利用だったのでIPアドレスはApplication Gatewayのものを設定するものだと思い込んでおりましたが、結果的には上記対処によりできました。

    ありがとうございました。

    2019年6月10日 7:33

すべての返信

  • 私が状況をうまく理解できていなかったら方向違いな回答で申し訳ございませんが、
    Application Gatewayはその名のとおりGatewayで、フォワードプロキシのように使うのはちょっと違っていて、仮にApplication Gatewayと外部サイトを連携させる場合もバックエンドプールにその外部サイトは登録してGatewayとして利用することになります。

    設定状況がよくわからないからApplication Gatewayの詳細な設定についてはアドバイスしかねますが、
    外部サーバの要件としてIPアドレスを指定すればいいのであればWebAppsのIPを登録するのはダメなんでしょうか?


    2019年5月24日 1:53
  • uniuni398様

    早々に返信ありがとうございます。

    今回、セキュリティ上の条件でWebAppsサイトに対してのWeb改ざん検知が必要なことと、外部サーバへの接続には固定IPアドレス(アドレスが変わらない)が必要なことがあり、Application GatewayのWAF v2(静的IPアドレス)を使わざるを得ない状況でした。

    そのため今回のような構成となっております。

    やはり今の構成では今回やりたいことは難しいのでしょうか。。

    2019年5月24日 3:30
  • 固定IPアドレスに複数指定して問題ないのであればWebAppsの複数の固定IPを登録するのではダメなんでしょうか?

    WebAppsのプロパティを見ると、「送信 IP アドレス」として4つ,5つ用意されていると思います。

    このあたりを参考に
    https://docs.microsoft.com/ja-jp/azure/app-service/overview-inbound-outbound-ips#when-outbound-ips-change

    2019年5月24日 4:36
  • uniuni398様

    確認いただきありがとうございます。

    ご紹介いただいたIPアドレスの追加は確認してみたいと思います。

    今回WAFを使わなければならないため、WebAppsへ接続できるIPアドレスをApplication  GatewayのIPアドレスのみにWebAppsのネットワーク設定で制限しているためこの(WebAppsで使う)IPアドレスを使ってもだめなのかな?と勝手に想定していました。

    色々調べても解決策が見つかっていないので、WebAppsで使う可能性のあるIPアドレス全てを登録して再度確認してみようと思います。

    2019年5月24日 6:49
  • Kuniteruさん

    ありがとうございます。

    ドキュメントに記載のある、HTTP設定・正常性プローブともにAPPService使用やバックエンドチェックは入ってます。

    クライアント端末からバックエンドのWebAppsへのアクセスはできるのですが、WebAppsから外部サーバへ向けてのPOST・GETが502エラーとなってしまっています。

    uniuni398さんからコメントいただいたWebAppsのIPアドレスを使っての接続が出来そうでしたので、そちらを試してから結果を改めて投稿させていただきます(今週末には設定ができる見込み)

    2019年5月27日 23:00
  • 書き込みが遅くなりました。

    結果として、uniuni398さんアドバイスのWebAppsのIPアドレスを登録することで、期待通りの動作をすることができました。

    ありがとうございます。Application Gatewayを介したWebApps利用だったのでIPアドレスはApplication Gatewayのものを設定するものだと思い込んでおりましたが、結果的には上記対処によりできました。

    ありがとうございました。

    2019年6月10日 7:33