AzurePaaS研究サイト

~理解しずらい情報をシンプルにお伝えします~

ストレージアカウントを特定のAppService/Functionsからのみアクセスさせたい(アクセス制限方法)

ストレージアカウントを特定のAppService/Functionsからのみアクセスさせたい場合のアクセス制限方法

IP アドレスによる制限方法と、サービスエンドポイント/プライベートエンドポイントの AppService/Functions 共通の方法だったり、

AppServiceプランの場合(AppService/Functions 共通)

IP アドレスでアクセス制限したいなら異なるリージョン構成にする

前提知識として、AppService/Functions とストレージアカウントが同リージョンに構成されている場合、プライベートIPで通信が行われます。Azure プラットフォーム内部で都合の良いプライベートIPが割り振られて使われている関係もあって、プライベートIPは不定期に勝手に変更されます。これは避けられないことです。
   
なので、プライベートIPアドレスを使ってストレージアカウント側にアクセス制御を設定しても、しばらくすると意味のない設定になり今まで通りどこからでもストレージアカウントにアクセスされてしまいます。
 

docs.microsoft.com

パブリック IP でアクセス制限する手順(異なるリージョンの場合)

 
AppService > プロパティ > 送信IP を確認できる画面

f:id:nanacy7741:20210417024318p:plain

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

f:id:nanacy7741:20210417034031p:plain

 

【注意点】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 を拒否する

www.microsoft.com

全料金プラン共通の方法があります(AppServiceプラン・従量課金プラン・Premiumプラン)

サービスエンドポイントを構成する

プライベートエンドポイントを構成する

ご意見・ご要望はこちらへ