- アクセス制限とは
アクセス制限とは
アクセス制限の例としては、
・ストレージアカウント側にアクセス制限を設定して、特定のAppService/Functionsのアプリケーションからしかアクセスできないようにする
・AppService/Functions側にアクセス制限を設定して、特定のクライアントからしかAppService/Functions上のアプリケーションにアクセスできないようにする
などがよく出てきます。
ストレージアカウントを特定のAppService/Functionsからのみアクセスさせたい場合のアクセス制限方法
実現方法がいくつかあります。
・許可/拒否するIPアドレスまたはサービスタグをストレージアカウント側に設定するアクセス制限
・サービスエンドポイント/プライベートエンドポイントをストレージアカウント側に設定するアクセス制限
具体的な設定手順は、Udemy動画コンテンツにすべて紹介しています。
これらの方法は皆さんご存知かもしれませんが、じゃあIPアドレスが変わることはないのかなど気になる点がいくつかあると思いますので、Azureの仕様をふまえて説明していきます。
AppServiceプランの場合(AppService/Functions 共通)
IP アドレスでアクセス制限したいなら異なるリージョン構成にする
前提知識として、AppService/Functions とストレージアカウントが同リージョンに構成されている場合はプライベートIPで通信が行われます。Azure プラットフォーム内部で都合の良いプライベートIPが割り振られて使われている関係もあって、プライベートIPは不定期に勝手に変更されます。これは避けられないことです。
なので、プライベートIPアドレスを使ってストレージアカウント側にアクセス制御を設定しても、しばらくすると意味のない設定になり今まで通りどこからでもストレージアカウントにアクセスされてしまいます。なので異なるリージョン構成にする必要があるというお話です。
パブリック IP でアクセス制限する手順(異なるリージョンの場合)
AppService > プロパティ > 送信IP を確認できる画面

ストレージアカウント > ネットワーク > ファイアウォール の設定画面

【注意点】AppService/Functions のパブリックな送信IPも変更される可能性がある
ユーザが特定の操作を行うと、パブリックな送信IPが変更されることがあります。
公式ドキュメントには、以下のように記載されています。
Azure Functions の IP アドレス > 送信 IP アドレスの変更
https://docs.microsoft.com/ja-jp/azure/azure-functions/ip-addresses#outbound-ip-address-changes
===== 抜粋 ここから =====
次の操作を行うと、関数アプリの一連の使用可能な送信 IP アドレスが変更される場合があります。
・着信 IP アドレスが変更される可能性のあるアクションを実行する。
・ App Service プランの価格レベルを変更する。 すべての価格レベルについて、アプリで使用可能なすべての送信 IP アドレスのリストが possibleOutboundIPAddresses プロパティに含まれています。 「IP アドレスを見つける」を参照してください。
===== 抜粋 ここまで =====
Functions の従量課金プラン・Premiumプランの場合
パブリック IP が不定期に変動します。なので、基本的には IP アドレスによるアクセス制限はできないと思った方がいいです。しかし、少し大変ですが、できる方法が一応あります。
データセンター自体のパブリック IP を拒否する
ある範囲のすべてのIPアドレスを許可設定すると、どのIPアドレスに変更されても拒否してしまうということはありません。また、AzureのデータセンターのパブリックIPアドレスだけ許可しているのでAzureと全く関係ないIPアドレスからの通信は拒否できています。
全料金プラン共通の方法があります(AppServiceプラン・従量課金プラン・Premiumプラン)
サービスエンドポイント・プライベートエンドポイントを構成する
私のUdemy動画コンテンツに詳しく説明していますので、ご利用いただければと思います。
以上です。