Azure App Serviceの受信トラフィックをアクセス制限

App Service,Azure

Azure App Serviceの受信トラフィックのアクセス制限方法です。

App Serviceは、Azure上で提供されるWebアプリケーションホスティングプラットフォームサービスです。
リソースデプロイ直後から利用できます。

Azure App Serviceを、デフォルトの選択肢のままを作成すると、すべてのネットワークからのアクセスが許可された状態となります。
インターネットからアクセスが可能な状態でデプロイされます。
すぐに確認できて便利ではありますが、セキュリティ的には好ましくない状態となっています。

Azure App Serviceでは、送受信のアクセス制限が可能です。
アクセス制限は、送信、受信それぞれで設定します。
受信のアクセス制限は、特定のIP、仮想ネットワーク、サービスタグを指定して設定することができます。

今回は、受信のアクセス制限の設定方法と、拒否された場合の動作を確認しています。

※本記事では、プライベートエンドポイントを利用していません。
※本記事では、タイトル部分や一部を除きAzure App ServiceをApp Serviceと表記しています。

スポンサーリンク

Azure App Serviceのアクセス制限方法を確認

公式サイトの記事を参考に設定を確認します。

Azure App Service のアクセス制限を設定する

アクセス制限の設定はApp Serviceのネットワーク設定

App Serviceのアクセス制御は、ネットワークのリソースメニューで設定できます。
受信トラフィックに関する設定と送信トラフィックに関する設定があります。
受信と送信はそれぞれ個別に設定が必要です。

※今回は、受信のアクセス設定を確認しています。

アクセス制限の設定場所
ネットワーク設定の受信トラフィックにアクセス制限の設定があります。

App Serviceで受信アクセス制限を確認

App Serviceのネットワークで、受信のアクセス制限の設定状態を確認します。
すべてのネットワークからのアクセスが許可した状態で作成して場合、デフォルトではAllow allのルールが存在しています。
このルールはソースがAny、アクションがAllowとなっています。
設定通り、外部からのアクセスがすべて許可された状態になっています。

受信のアクセス制限は、2つのサイトに対して個別に設定します。
高度なツールサイトは、メインサイトと同じ設定にする事ができます。

    • メインサイト(app名.azurewebsites.net)
      • サービス系のアクセス
    • 高度なツールサイト(app名.scm.azurewebsites.net)
      • 管理系のアクセス
アクセス制限設定画面(旧画面)

旧画面です。

デフォルト設定では両方ともにAllow allの規則のみが存在しています。
サービス系、管理系ともに外部からアクセスできる状態になっています。

2023年7月現在では設定画面が変わっています。

アクセス制限設定画面

新画面です。

インターネットアクセス許可の設定が追加されています。
メインサイト、高度なツールサイトという表現に変わっています。
一致しないルールのアクションの設定が追加になっています。

受信トラフィックのアクセス制限規則の設定項目

アクセス制限設定する場合の設定項目を確認します。
IPアドレスの場合は、以下の設定項目があります。

    • 全般設定
      •  名前
        • 規則の名前
      • アクション
        • 規則に合致した時に通信を許可するか拒否するかの選択
      • 優先度
        • 規則の優先度
        • 優先度の高い(1に近い)方から処理されます
    • ソースの設定
      •  種類
        • IPアドレス、仮想ネットワーク、サービスタグなどソースの種別
      • IPアドレスブロック
        • 規則に適用するアドレス
      • HTTPヘッダーのフィルター設定
規則の設定内容

特定のIPからの通信を許可(または拒否)するなど、ネットワークセキュリティグループと同様に設定できます。

受信トラフィックのアクセス制限の規則で利用できるソースの種類

ソースの種類を選択して、アクセス制限の規則を設定できます。

アクセス制限の規則で利用できるソースの種類
ソースの種類にはIPアドレス(IPv4、IPv6)、仮想ネットワーク、サービスタグがあります。

アクセス制限の規則で利用できるサービスタグの例

アクセス制御の規則で利用できるサービスタグです。
ネットワークセキュリティグループと同様に多くのタグが用意されています。

アクセス制御の規則で利用できるサービスタグ
AzureFrontDoor.Backendを利用して、Front Door経由のアクセスのみを許可する設定も可能です。
ApplicationInsightsAvailabilityを使用して、可用性テストのみを許可する設定もできます。

仮想ネットワークからのアクセスに制限

仮想ネットワークのサブネットを指定してアクセス制御設定を行うことができます。
高度なツールサイトへのアクセスのみを仮想ネットワークからのみとする、といった制限も可能です。

仮想ネットワーク
ソースの種類に仮想ネットワークを選択します。
仮想ネットワーク名、サブネットを指定してします。

※同時に、サブネットに対してMicrosoft.Web/serverFarmsへの委任設定が行われます。

—広告—

Azure App Serviceで受信トラフィックのアクセス制限を設定して確認

受信トラフィックのアクセス制御は、こちらで作成したサイトを利用して確認しています。

特定のIPアドレスからのアクセスのみを許可

受信トラフィックを特定のIPアドレスからのみ接続を許可します。

IPベースでのアクセス制限規則を作成

アクセス制限の画面で規則の追加を選択します。

名前を設定します。
アクションは許可を選択します。
優先度を設定します。
ソースの種類でIPアドレスを選択します。
IPアドレスブロックに許可するIPアドレスを入力します。
規則の追加を選択します。

作成した規則が追加されています。
Allow allの規則が無くなりDeny allの規則が作成さます。
この2つの規則により、特定のIPアドレスからのアクセスのみが許可される状態になります。

拒否されたアクセスは403エラーになる

許可されていないIPアドレスからアクセスして確認します。

アクセスして確認

許可していないIPアドレスからのアクセスの場合、403エラーが表示されます。
受信トラフィックのアクセス制限が有効に機能していることが確認できます。

高度なツールサイトへのアクセスをサブネットからのみに制限

高度なツールサイトへのアクセスをサブネットからのみに制限します。
app名.scm.azurewebsites.net タブで規則を追加することにより、管理画面へのアクセス制御が可能です。

仮想ネットワークからのみアクセス許可
名前を設定します。
アクションは許可を選択します。
優先度を設定します。
ソースの種類で仮想ネットワークを選択します。
仮想ネットワーク名、サブネット名を選択します。
規則の追加を選択します。
作成した規則が追加されています。
Allow allの規則が無くなりDeny allの規則が作成さます。
この2つの規則により、特定のサブネットからのアクセスのみが許可される状態になります。

許可されていないIPアドレスから管理画面へアクセス

許可されていないIPアドレスからアクセスして確認します。

アクセスして確認
App ServiceのリソースメニューでSSHを選択します。
移動を選択して、App ServiceにSSH接続を開始します。

許可していないIPアドレスからアクセスした場合、403エラーが表示されます。

アクセス制限が有効に機能していることが確認できます。

メインサイトと高度なツールサイトのアクセス制限を同じ設定にする

メインサイト(app名.azurewebsites.net)と、高度なツールサイト(app名.scm.azurewebsites.net)のアクセス制限を同じ設定できます。

同じアクセス制限設定にする
メインサイトと(app名.azurewebsites.net)同じ制限にチェックを入れます。
これで同じアクセス制限設定が適用されます。

—広告—

最後に

今回はAzure App Serviceの受信アクセス制限方法について確認しました。
Azure App Serviceのアクセス制御は、IPアドレスによる制限だけでなく、サービスタグによる制限も可能で、とても便利かつ簡単に設定できることが分かりました。
構築作業期間中や高度なツールサイトは、アクセス制御を利用して制限しておくことが重要かと思います。

引き続き、いろいろ試してみたいと思います。

スポンサーリンク