Azure Front Door に使用する geo フィルタリング WAF ポリシーを設定する
このチュートリアルでは、Azure PowerShell を使用して、サンプル geo フィルタリング ポリシーを作成し、それを既存の Azure Front Door フロントエンド ホストに関連付ける方法を説明します。 このサンプルの geo フィルタリング ポリシーでは、他のすべての国/地域 (米国を除く) からの要求がブロックされます。
Azure サブスクリプションをお持ちでない場合は、ここで無料アカウントを作成してください。
前提条件
geo フィルター ポリシーの設定を開始する前に、PowerShell 環境を設定して Azure Front Door プロファイルを作成します。
PowerShell 環境をセットアップする
Azure PowerShell には、Azure リソースの管理に Azure Resource Manager モデルを使う一連のコマンドレットが用意されています。
Azure PowerShell をローカル コンピューターにインストールして、すべての PowerShell セッションで使用することができます。 リンク先のページの手順に従って Azure の資格情報を使ってサインインします。 次に、Az PowerShell モジュールをインストールします。
サインインのための対話型ダイアログを使用して Azure に接続する
Install-Module -Name Az
Connect-AzAccount
最新バージョンの PowerShellGet がインストールされていることを確認します。 次のコマンドを実行したら、PowerShell を再度開きます。
Install-Module PowerShellGet -Force -AllowClobber
Az.FrontDoor モジュールのインストール
Install-Module -Name Az.FrontDoor
Azure Front Door プロファイルを作成する
Azure Front Door プロファイルを作成するには、「クイック スタート: Azure Front Door プロファイルの作成」で説明されている手順に従います。
geo フィルタリングの一致条件を定義する
一致条件を作成するときに、パラメータに New-AzFrontDoorWafMatchConditionObject を使用して、"US" から送信されてきていない要求を選択するサンプル一致条件を作成します。
国/地域マッピングに対する 2 文字の国/地域番号は、「Azure Front Door のドメインに対する geo フィルタリングとは」で提供されています。
$nonUSGeoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable SocketAddr `
-OperatorProperty GeoMatch `
-NegateCondition $true `
-MatchValue "US"
アクションと優先度を持つルールに geo フィルター一致条件を追加する
New-AzFrontDoorWafCustomRuleObject を使用して、CustomRule
オブジェクト nonUSBlockRule
を一致条件、アクション、および優先度に基づいて作成します。 カスタム ルールには、複数の一致条件を設定できます。 この例では、Action
を Block
に設定しています。
Priority
が 最も優先度の高い 1
に設定されています。
$nonUSBlockRule = New-AzFrontDoorWafCustomRuleObject `
-Name "geoFilterRule" `
-RuleType MatchRule `
-MatchCondition $nonUSGeoMatchCondition `
-Action Block `
-Priority 1
ポリシーにルールを追加する
Get-AzResourceGroup
を使用して、Azure Front Door プロファイルが含まれているリソース グループの名前を見つけます。 次に、New-AzFrontDoorWafPolicy を使用して、Azure Front Door プロファイルが含まれている指定したリソース グループに、nonUSBlockRule
を含む geoPolicy
ポリシー オブジェクトを作成します。 geo ポリシーには、一意の名前を指定する必要があります。
次の例では、お客様が Azure Front Door プロファイルを作成したときに、「クイック スタート: Azure Front Door の作成」で説明されている手順に従ったと想定して、myResourceGroupFD1
という名前のリソース グループを使用しています。 次の例では、ポリシー名 geoPolicyAllowUSOnly
を一意のポリシー名に置き換えます。
$geoPolicy = New-AzFrontDoorWafPolicy `
-Name "geoPolicyAllowUSOnly" `
-resourceGroupName myResourceGroupFD1 `
-Customrule $nonUSBlockRule `
-Mode Prevention `
-EnabledState Enabled
WAF ポリシーを Azure Front Door のフロントエンド ホストにリンクする
WAF ポリシー オブジェクトを既存の Azure Front Door フロントエンド ホストにリンクします。 Azure Front Door のプロパティを更新します。
そうするには、まず、Get-AzFrontDoor を使用して Azure Front Door オブジェクトを取得します。
$geoFrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName myResourceGroupFD1
$geoFrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $geoPolicy.Id
次に、Set-AzFrontDoor を使用して、フロントエンド WebApplicationFirewallPolicyLink
プロパティを geo ポリシーのリソース ID に設定します。
Set-AzFrontDoor -InputObject $geoFrontDoorObjectExample[0]
注意
WAF ポリシーを Azure Front Door のフロントエンドにリンクするのに必要なのは WebApplicationFirewallPolicyLink
プロパティを 1 度設定するだけです。 それ以降のポリシーの更新は、自動的にフロントエンド ホストに適用されます。
次のステップ
- Azure Web アプリケーション ファイアウォールについて学習します。
- Azure Front Door のインスタンスを作成する方法について学習します。