Azure Blob Storage 上の静的 Web サイトへの直接アクセスをブロックし、Azure Front Door のみを許可する

Azure Blob Storage 上の静的 Web サイトへの直接アクセスをブロックし、Azure Front Door のみを許可する

Azure Blob StorageにデプロイされたSPA Webアプリがあり、URLは公開されています。例:https://example.z23.web.core.windows.net/

セキュリティを強化するために、Azure Front Door を WAF とともに使用したいと思います。BLOB URL での直接アクセスをブロックする方法はありますか? Google で検索したところ、多くの回答が見つかりました。そのうちの 1 つは、AzureFrontDoor.Backendストレージ アカウントのネットワーク構成で IP のみを許可するというものです。試してみたところ、うまくいきました。

ただし、この方法にはまだ抜け穴があり、誰でもフロント ドアを作成して私の BLOB URL をポイントすることができます (何らかの方法でそれを発見した場合)。

(馬鹿げた話に聞こえるかもしれませんが): この方法を実行してストレージ アカウントにランダムな名前を付ける場合は、たとえば、短縮されたランダムな GUID を使用します。(https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) これにより、誰かが私の URL を発見してセキュリティをバイパスする可能性を減らすことができますか?

もう一つの方法はAzureのおすすめ特定の Front Door インスタンスの ID を含むヘッダーをチェックしX-Azure-FDID、このヘッダーを含まないリクエストをドロップすることです。開発者に、これが Vue Web アプリで可能かどうか尋ねたところ、クライアント側で実行されるコードに Front Door ID を含める必要があるため、いずれにしても ID が一般に公開されることになると言われました。(これは Stack Overflow ではありませんが、これについて何か提案できる方がいれば、大変ありがたいです)

私が見つけたもう一つの方法は、Azure Front Door Premium SKUを使うことです。サポートPrivate Link を使用してストレージ アカウントに接続します。これは完璧ですが、月額 165 ドルという高額な費用がかかります。Front Door からのアクセスのみをネイティブに制限できるため、代わりに App Service にコードをデプロイしたいと思います。

これを実現する方法について何か提案できる人はいますか?

ありがとう。

答え1

X-Azure-FDID ヘッダーをチェックし、IP 制限と組み合わせることが、プライベート リンク ルートを使用せずにこれをロックダウンする唯一の方法です。したがって、FD とストレージ アカウントの間に他に何もない場合は、アプリケーション コードでこれを検証する必要があります。

クライアント側のコードにこれを含めると ID が公開されますが、これはあまり問題ではありません。IP 制限は、Front Door インスタンスからのトラフィックのみを許可することを意味し、攻撃者が別の FD インスタンスにその ID を設定する方法はありません。

関連情報