GatewayでWAF対策をしたので、その時の注意点や設定方法などをまとめていきたいと思います。WebAppsを指定しています。Gatewayの基本的な部分については下記を参考にしましょう。Gateway」の記事一覧です。docs.microsoft.com※本記事は2019年6月22日時点での記事になります。Gatewayを作成しますレベルについて現在はV1とV2の二つが選択できますが必ずV2を選択しましょう。V1は古い仕組みになるので作成や更新に時間がかかります。StandardとWAFがありますがWAFの方を選択します。この二つの違いはWAFの機能がついているかいないかだけです。容量の種類は自動スケーリングを選択します。これはスパイクアクセスなどがあった時に自動でインスタンスを増やしてくれます。最小インスタンスは冗長構成のため2を選択しています。最大インスタンスは通常時のアクセス数が多くないので3にしています。ここで注意ですが最小インスタンスと最大インスタンスを同じ値にしないようにしてください。サービス作成時にエラーになります。リソースグループは任意のものにしてください。作成する場所は利用する地域になるので東日本を選択しています。可用性ゾーンについては利用しないためここでは設定していません。可用性を高める場合は任意に設定してください。サブネット構成とフロンドエンドIP構成は必ず作成する項目です。ここはスキップ出来ないので作成する必要があります。サブネット構成は任意の設定で作成してください。フロントエンドIP構成も任意に作成します。DNS名だけ重複しないFQDNになる必要があります。リスナーのプロトコルは要求に応じて設定しください、ここは後で変更可能です。WAFを作るわけですからWebアプリケーションファイアウォールの設定は有効にしておきましょう。ファイアウォールのモードですが要求に合わせて任意に設定します。ここでは検出にしていますが後で変更可能です。最後の確認を行い、問題がないようであれば作成をしましょう。Gatewayを作成したら次は設定です。Gatewayのコンポーネント要素を確認してみたいと思います。Gatewayのコンポーネント要素は下記のとおりです。書き換え(Rewrite)各項目の相関性については下記のドキュメントを参考にしてください。コンポーネントを構成する方法について説明します。learn.microsoft.comこのコンポーネントの中で肝となる部分がルールの部分になります。ルールを作成するために、その他のコンポーネント要素を作成し設定する感じになります。それではそれぞれの項目を見ていきたいと思います。Addressがデフォルトでバインドされています。Gatewayにバインドされる形になります。基本的に静的IPとして作成するのでカスタムドメインを充てたい場合、このIPアドレスをAレコード登録する必要があります。DNSを作成してネームサーバを管理するかの2択になります。私が試した時はお名前.comで管理しているドメインに静的IPアドレスをAレコード登録して利用しました。Addressについては下記の公式ドキュメントを参照してください。アドレスについて説明します。learn.microsoft.comリスナーリスナーではフロントエンドIPとPortの紐づけ設定を行います。Gatewayには複数の同一ポートを設定できません。当たり前といえば当たり前ですが。Gateway作成時に指定したポート番号が初期値として設定されています。HTTPステータスの403と502が発生した場合にリダイレクト先URLを設定できます。デフォルトで振られるフロントエンドポートの名称を変更したいときは別のポートを作成してからポートを削除して、新しい名称で元のポート番号を作成しましょう。これはすべてのコンポーネントで同じなのですが、各コンポーネントには最低でも一つの設定値が必要になるため手間のかかる方になります。バックエンドプールバックエンドプールは振り分けされるサイトの設定になります。現在では下記の4つの項目を選択できます。IPアドレスまたはホスト名を利用すればAzure上で作成されていない外部サイトを利用することが可能です。Gatewayと同じVNETに居ることが前提になります。Serviceの中から選択することができます。基本的に一つのバックエンドプールにはサイトやサーバを1:1や1:Nで選択することが可能です。仮想マシンとAppServiceみたいに種類が違うサイトを同一バックエンドプールに設定することができませんので、その場合は複数のバックエンドプールを構築することで実現可能です。サイト別にルーティングルールを変えたい場合などはバックエンドプールとサイトを1:1で構築する方法もあるので要件に沿って選択する必要があります。正常性プローブ正常性プローブはバックエンドプールにあるすべてのリソースに対して正常性確認を行うものです。プローブの機能により正常性が確認とれないリソースに関しては自動的にバックエンドプールから外し、正常性が確認取れたらバックエンドプールに戻します。カスタム設定を行うことは可能ですが、設定しない場合はデフォルトの設定が割り振られます。基本的に複雑なカスタマイズは不要ですが要件によっては個別に設定する必要のある機能になります。プローブの詳細については下記のドキュメントを参照してください。プールにあるすべてのリソースの正常性を監視して、異常とみなしたリソースをプールから自動的に削除します。learn.microsoft.comHTTP設定HTTP設定ではバックエンドプールに贈られる要求の設定を行います。各項目についての詳細については下記のドキュメントを参照してください。コンポーネントを構成する方法について説明します。learn.microsoft.comここではハマりやすいポイントについて記載します。バックエンドパスのオーバライドですがこの設定には何も設定する値がない場合は必ず「/」を入力するようにしてください。画面にあるインフォメーションにも記載がありますが「/」を入力しないとURLパスベースでルールを設定した時に、URLが想定外の上書きにより正常にルーティングされなくなります。AppService用に使用するを選択した場合は「カスタムプローブの使用」と「バックエンドアドレスからホスト名を選択します」がデフォルト設定になります。選択されている場合にカスタムドメインを利用すると、WebAppsが持つFQDNがホストヘッダーに入りカスタムドメインじゃない方にリダイレクトされるパターンがあります。チェックも外して「ホスト名の上書き」で指定のカスタムドメインを充てる必要があります。共に使用した場合のリダイレクトの問題のトラブルシューティング方法について説明します。Gatewayの中で一番肝となる設定です。ルールによってリスナーのルーティング規則やバックエンドプールへの振り分け、HTTP設定による制限をすべて紐づけることになります。ルールにはBasicとパスベースの2つの設定があります。Basicは基本的なルーティングの設定になります。パスベースはURLパスでルーティングを行う設定になるのでBasicより少し複雑な設定になります。HTTP(80)のHTTPS(443)リダイレクトを設定する場合なんかはBasicを利用して作成します。80のリスナーにアクセスがきたら443のリスナーに301リダイレクトするようにルールを設定することができます。URLパスベースの場合はパスに応じてバックエンドプールとHTTP設定を紐づける必要があるため設定方法の難易度は若干高めになります。カスタムドメインを利用した場合のURLパスベースルーティングの設定はちゃんと設計を行ったうえで作成しないとわかりづらくなるので注意しましょう。次回はWAFの設定とペネトレーションテストの方法について説明します。Serviceを面白がって沢山作ったのはいいけれど消し方がわからなくてヤキモキしてた事が解決したので備忘です。ARMごと削除しようとしても稼働中のFunctionやAppServiceがあ...azurePowerBI勉強会に参加してきました第2回PowerBi勉強会に参加してきました。会場はいつも通り品川はMSの31階です。今日仕入れてきた情報をとりあえずこちらに備忘として書いておきます。最近ブログそっちのけでAdventCalenderの記事を書いてます。MVCとXamarinとCognitiveで記載をしています。CodeでARMテンプレートを編集するのが一番効率がいいみたいです。Tools」というプラグインをインストールし...azureVHDファイルをAzureにアップロードする2以前、記事にしたCSUploadは現在非推奨だとMSの方に諭されました。いうわけで現段階で推奨となっているPowerShellでAzureへVHDをアップロードする方法を記載します。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。Gatewaykingkinoクラウドとサウナをこよなく愛するおっさんです。テック系の備忘録や日常の事が多いブログです。投稿内容はあくまで個人の見解なります。所属する企業・団体の意見を表すものではありませんので予めご了承ください。defined.")}))})()。