Azure

Azure Front Door でカスタムホストを設定しSSLの設定をしつつGeoフィルタリングで他国からのアクセスを制限する。

はじめに

Azure Front DoorにはGeoフィルタリングが設定できるので試してみました。
ついでにカスタムホストを利用する方法も紹介します。

Front Doorの機能については省きます。
下記を参考してください。
https://docs.microsoft.com/en-us/azure/frontdoor/front-door-overview

一点、注意事項するべきことはVNETと連携ができません。
その為、パブリックのIPアドレスを持たないサービスをバックエンドに利用できません。
今回はWeb Appです。

Front Doorの作成

Front Door作成と確認

詳しい作成方法
https://docs.microsoft.com/en-us/azure/frontdoor/quickstart-create-front-door

問題なくアクセスできることを確認します。

カスタムホストを設定する

カスタムホストを設定するには Front Door designerを開き、Fronted hostsの「+」をクリックします。

次にはカスタムホストを設定します。しかし、CNAMEを設定するようにエラーがでます。

事前に対象のDNSの設定をする必要があります。

DNS設定後に、再度カスタムホストを設定します。

設定後に対象のホストネームでアクセスするとエラーが発生します。

ここで、ルールを設定変更をする必要があります。
通常はAzureの指定されたドメインが割り当てられ、それ以外はアクセスできません。
Front Door designerを開きRouting rulesの変更を行います。

割り当てたカスタムホストに変更します。
両方を選択することも可能です。(この後にSSLの設定もおこなうので有効にしておきます)

カスタムホストでアクセスして確認を行います。

カスタムホストのSSL設定を行う

SSLのキーはKey vaultで管理するため、作成します。

PowershellでADにService Principalを登録します。下記は固定値です。

access policyを開き、Principal を追加します。
「ad0e1c7e-6d38-4ba4-9efd-0bc77ba9f037」を検索します。
Microsoft.Azure.Frontdoorが見つかります。これを登録します。

Sercret permissionsをGetに設定します。

追加されたことを確認します。

証明書を登録します。ドキュメントではパスワード無しのみサポートとありますが現在はあっても問題ありません。

Front Door designerを開き追加したカスタムホストを開きます。
そして、Custom Domain HTTPSをEnableに変更します。
Use my own certificateを選択し、Key vault、Secret、Secret Nameを選択します。

以上で設定が完了ですが20分程度反映まで時間がかかります。

表示されることを確認します。

Geoフィルタリング

下記を参考に進めますが、カスタムホストを利用しているため一部異なります。
https://docs.microsoft.com/en-us/azure/frontdoor/front-door-tutorial-geo-filtering

設定はPowershellで設定します。
最初に、モジュールを追加します。

次にJPのみアクセスできるように以下天順で設定します。
GetMatchCoonditionを作成→ルールを作成→FireWallポリシーを作成→各ホストに対して設定する

FrontendEndpoints[0]を設定することでルールを既存のホストへ割り当てることができます。

FrontendEndpoints[1]を設定することでルールをカスタムホストへ割り当てることができます。

設定後反映されるまで5分程度時間がかかります。
VPNなどを利用して日本以外から確認します。

以上で設定は完了です。
ただWeb Appを利用する場合などは、もともとのURL(Web Appで割り当てられたURL)からもアクセスできるため
Front Doorのドメインにリダイレクトするなどの処理を入れる必要があると思います。

まとめ

GeoフィルタリングはGDPRなどを避けたい場合や、キャンペーン用のサイトなど様々な場面で利用できるかと思います。
まだプレビューなので、今後どのように機能が増えるか気になるサービスです。

Related post

  1. Azure

    Diagnostics(診断)設定をする場合のストレージについて

    はじめにくどうです。Diagnostics(診断)設定をす…

  2. Azure

    Azure RemoteApp でローカルのドライブを利用する。

    はじめにくどうです。RemoteAppでもローカル(クライアント)…

  3. Azure

    Azure AppService (WebApps)で Sendmailを利用する方法。これでSen…

    はじめにくどうです。Linuxではsendmailが重宝さ…

  4. Azure

    ルートテーブルもPowerShellではなくポータルで設定できます。

    はじめにくどうです。本日2本目です。以前はルートテーブ…

  5. Azure

    Azure Functions でDatadog のWebhook インテグレーションを利用しSen…

    はじめにくどうです。今回取り上げるのは、Azure Fun…

  6. Azure

    Azure RemoteAppを使ってみる。Officeが使えますよ!

    はじめにくどうです。事務所はちょっと寒いです。RemoteAppの…

  1. AlibabaCloud

    Virtual KubeletでAlibaba Cloud ECIを操作する。
  2. Azure

    Azure上のActive Directoryをディレクトリサービス復元モード(…
  3. Azure

    Microsoft Azure でDockerはじめちゃいますか?
  4. Azure

    Azureポータルの地味なキーボードショートカット
  5. Azure

    Azure Application Gateway で Let’s Encryp…
PAGE TOP