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

    Azure Firewall でFQDN filtering を利用してみる。

    はじめに新たにAzure Firewallがリリース(プレビュー)…

  2. Azure

    Diagnosticsのログフォーマットが変わってた。だから・・・注意してね。

    はじめにくどうです。ちょっと、Azureで仮想マシンのDi…

  3. Azure

    同サブスクリプションでVNET間接続を行う。ポータルでも設定できます。

    はじめにくどうです。VNET間接続、ポータルでもちゃんと設…

  4. AWS

    お気軽にSlackで死活監視してみる

    はじめにくどうですお気軽にSlackで死活監視。疎通確認が行え…

  5. Azure

    Azure Kubernetes Service (AKS)でknativeを動作させる方法

    はじめにAKSでknativeを動作させるためには、公式ドキュメン…

  6. AWS

    AzureとAWSにおけるIaaS可用性の違いを少しだけおさらい。

    はじめにくどうです。最近、よく聞かれることがあります。「A…

  1. 日記

    さくらVPSのリニューアル
  2. Linux

    超メモ:一発rubyインストールなスクリプト
  3. Azure

    Azure で Kubernetes を 複数の可用性セットとLoad Bala…
  4. セキュリティ

    おれ、CySecの講座受講するってよ。
  5. Azure

    System Center Management Pack for Micros…
PAGE TOP