1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure Functionsを利用したリバースプロキシ

Last updated at Posted at 2021-01-08

Azure Functions Proxy + Azure AD + NAT Gatewayを利用したリバースプロキシ

はじめに

Azure上にリバプロ作ってくれない?っていう依頼が多く、かつユーザーは、Azureでのシステムの認証済みのユーザーのみに制限したいという追加要望がありました。
せっかくなので、出来るかを検証してみたいと思います。

Azure構成図

構成図のように、Azure Functions ProxyとNAT Gatewayそして、認証サーバーをAzure ADとしたEasyAuthで検証してみます。
image.png

Functions Proxy

Azure Functions プロキシの操作の通り、Azure Functionsを構築していきます。
App Serviceでは、外部連携などでIPアドレスを使ったアクセス制限が必要な場合には若干の問題がありましたが、NAT Gatewayを利用することにより、IPアドレスの固定ができるようになりました。
※ NAT Gatewayを利用するにはサービスプランをPremium V2、またはPremium V3プランにする必要がある点に注意です。

Functionsの作成

いつもの通り、Azure Functionsを作成します。前に書いた通り、NAT Gatewayを利用するためには、Regional VNET Integrationをする必要があるので、Premium V2、またはPremium V3プランである必要があります。

Proxyの作成

Functionsのメニューからプロキシを選択後、「+追加」をクリックし、情報を入力後、作成を押下することで完了します。これで、プロキシURLにマッチするすべのアクセスがバックエンドURLに行きます。

  • 名前:任意
  • ルートテンプレート:{*all}
  • 許可されるHTTPメソッド:任意
  • バックエンドURL:宛先/{all}

※ ルートテンプレートについては、「ルート テンプレートのパラメーター」を参照ください

image.png

Nat Gateway

VNETの作成

NAT Gatewayを利用するには、まずVNETを作成します。
仮想ネットワークの作成」の通り、VNETを作成します。

NAT Gatewayの作成

以下の通り、作成していきます。

  1. 基本
    image.png

  2. 送信IP
    パブリックIPを新規に作成します。(名前は任意に決めてください)
    image.png

  3. サブネット
    先程作成したVnetを指定します。
    image.png

後は、デフォルトで作成していきます。
作成後、VNETで指定したサブネットをクリックし、NATゲートウェイが選択されていることを確認し、サブネットをサービスに委任で「Microsoft.Web/serverFarms」を指定し、保存してください。
image.png

Regional VNET Integration

続いて、Functionsのネットワークを選択し、VNET統合で先程作成した、VNETとサブネットを選択し、VNET統合を行います。
image.png

Functionsのアプリケーション設定

NAT Gatewayを利用するためにはプライベートエンドポイントと同様にアプリケーション設定に、「WEBSITE_VNET_ROUTE_ALL」の有効(1)を設定として追加する必要があります。
参考:リージョンでの仮想ネットワーク統合

IPアドレス

NAT Gatewayを作成した際に作成したパブリックIPでIPアドレスを取得し、外部システムのホワイトリストに登録します。

Easy Auth

Azure AD ログインを使用するように App Service または Azure Functions アプリを構成する」に従って、コードレスに認証をかけます。

以上で、リバースプロキシが構築出来ました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?