Azure App Serviceのアクセス制限を試してみた
Azure App ServiceはAzure上で提供されるWeb アプリケーション ホスティング プラットフォームサービスになります。
リソースデプロイ直後から利用出来ます。
Azure App Serviceですがデフォルト状態では受信アクセスがAnyで許可されています。
インターネットからアクセスが可能な状態でデプロイされます。
すぐに確認出来て便利ではあるのですがセキュリティ的には好ましくない状態となっています。
Azure App Serviceでは受信のアクセス制限が出来ます。
アクセス制限は特定のIP、仮想ネットワーク、サービスタグを指定して設定する事が出来ます。
今回は受信のアクセス制限の設定方法の確認、アクセス拒否(許可していないIPアドレスからのアクセス)の動作確認までやってみました。
※本記事ではプライベートエンドポイントを利用しておりません。
Azure App Serviceのアクセス制限方法を確認
公式サイトの記事を参考に設定を確認してみます。
Azure App Service のアクセス制限を設定する
App Serviceのネットワーク設定
App Serviceのアクセス制御はネットワークのリソースメニューで設定が出来ます。
受信トラフィックに関する設定、送信トラフィックに関する設定があります。
受信、送信それぞれ個別に設定が必要になります。
※今回の内容は受信側のアクセス制御になります。
アクセス制限の場所 | |
ネットワーク設定の受信トラフィックにアクセス制限設定があります。 |
受信アクセス制限は App Service自体で行う
Azure App Serviceの受信アクセス制限はネットワークセキュリティグループ(NSG)ではありません。
Azure App Serviceのメニュー内にあるアクセス制限を利用します。
※プライベートエンドポイント利用時は除きます。
アクセス制限は複数のルールを設定する事ができます。
優先度の高い順から処理されます。
デフォルトではAllow allのルールが存在しています。
このルールはソースAny、アクションAllowとなっており、外部からのアクセスがすべて許可された状態になっています。
アクセス制限は2つのアドレスに対して個別に設定が出来ます。
-
- app名.azurewebsites.net
- メインサイト
- サービス系のアクセス
- app名.scm.azurewebsites.net
- 高度なツールサイト
- 管理系のアクセス
- app名.azurewebsites.net
アクセス制限設定画面(旧画面) | |
旧画面です。 デフォルト設定では両方ともにAllow allの規則のみが存在しています。 |
|
2023年7月現在では設定画面が変わっています。
アクセス制限設定画面 | |
新画面です。 インターネットアクセス許可の設定が追加されています。 |
|
アクセス制限規則の設定項目
IPアドレスでアクセス制限設定する場合を例に設定項目を確認してみます。
ソースの種類
アクセス制限ではソースの種類を選択する事が出来ます。
ソースの種類 | |
ソースの種類にはIPアドレス(IPv4、IPv6)、仮想ネットワーク、サービスタグがあります。 |
サービスタグの設定
サービスタグを指定してアクセス制御設定をする事が出来ます。
サービスタグ | |
NGSと同様にサービスの指定が出来ます。 AzureFrontDoor.BackendなどもありFront Door経由のアクセスしか許可しないと言った設定も可能となっています。 ApplicationinsightsAvailabilityなどもあり可用性テストのみを許可すると言った設定も出来ます。 |
仮想ネットワークでの制限
仮想ネットワーク(サブネット)を指定してアクセス制御設定をする事が出来ます。
管理画面は仮想ネットワークからのみ許可すると言うような制限も出来ます。
仮想ネットワーク | |
仮想ネットワーク名、サブネットを指定して設定します。 指定するとサブネットでMicrosoft.Web/serverFarmsへの委任設定が自動的に行われます。 |
Azure App Serviceのアクセス制限設定して動作確認
こちらで作成したサイトを利用してアクセス制御を確認てみます。
特定のIPアドレスからのアクセスを許可する
特定のIPアドレスからのみ接続許可する設定をやってみます。
アクセス制限(拒否)されたアクセスは403エラーになる
許可したIPアドレス以外からアクセスして確認してみます。
アクセス確認 | |
許可していないIPアドレスからのアクセスの場合は403エラーが表示されます。 アクセス制限が有効に機能している事が分かりました。 |
管理画面へのアクセスをサブネットからのみに制限
管理画面へのアクセスをサブネットからに制限してみます。
app名.scm.azurewebsites.netタブで規則追加する事により管理画面へのアクセス制御する事が出来ます。
許可していないIPアドレスから管理画面へアクセス
許可していないIPアドレスからAzure App Serviceの管理画面へアクセスしてみます。
App ServiceのリソースメニューでSSHを選択します。 移動を選択すると新規タブでApp ServiceにSSH接続を開始します。 |
|
アクセス許可していないIPアドレスからアクセスすると403エラーが表示されます。 アクセス制限が有効に機能している事が分かりました。 |
サービス系と管理画面のアクセス制限を同じにする
サービス系(app名.azurewebsites.net)と管理系(app名.scm.azurewebsites.net)のアクセス制限を同じ設定する事が出来ます。
同一アクセス制限にする | |
wordpress-testsite.azurewebsites.net と同じ制限にチェックを入れるだけで、同じアクセス制限にする事が出来ます。 |
最後に
今回はAzure App Serviceの受信アクセスの制限方法について確認してみました。
Azure App Serviceのアクセス制御はIPアドレスによる制限だけではなく、サービスタグによる制限なども可能となっておりとても便利かつ簡単に設定できる事が分かりました。
構築作業期間中や内部向けのサイトなどの場合はアクセス制御を利用して制限しておいた方が良いかと思いました。