🍳

AppServiceから静的WebホストしたAzure Blob Storageにアクセスする

2023/07/13に公開

ちょっと検証用で、静的Webサイトを建てる必要があり、めんどうなのでAzure Blob Storageでホストさせたら、AppServiceからのアクセスの許容の仕方がなかなかの力業での解決方法だったので、メモとして残しておきます。
VNetとかプライベートエンドポイントを作るのがセオリーですが、ちょっと試したいだけの環境なので、どちらも使わないIPでの制限で済ませたいです💰

前提

  • Azure Blob StorageはIPによるアクセス制限
  • AppServiceはVNetやプライベートエンドポイント接続は使わない

解決策

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/how-to-set-blob-storage-firewall-accessing-from-app-service-only/ba-p/3638851

ここにもあるように、サービスタグが使えればもっと楽できるんですが、残念ながらないのでIPをファイアウォールに追加します。
ですが、AppServiceのIPは多いので、AzureCLIを使って一発で登録させます。

1. AppService の送信トラフィックの送信アドレスをコピー

カンマ区切りで入ってるので、エディタとかでカンマをスペースに変換しておきます。

2. Azure CLI で登録

https://learn.microsoft.com/en-us/cli/azure/storage/account/network-rule?view=azure-cli-latest#az-storage-account-network-rule-add

基本コマンド

az storage account network-rule add -g myRg --account-name mystorageaccount --ip-address 23.45.1.0/24

オプションを見ると、--ip-addressは複数指定できるので、以下のようなコマンドになります。

az storage account network-rule add --resource-group "リソースグループ名" --account-name "ストレージアカウント名" --ip-address 20.xx.xx.xx1 20.xx.xx.xx2 20.xx.xx.xx3 ... 

コマンドの結果で、以下のようにずらずらと登録したIPがAllowで表示されればOKです。


本番環境でやる場合はちゃんとVnetなりプライベートエンドポイントなり使いましょうね

Discussion