Azureで各種リソースのPublic Access無効化する要件があったので。
Azureでは一部リソースでは、Public Accessを無効化するとAzure Portalからも開けない事象が発生してしまう。今までPublic Access無効化にしても、IPホワイトリストで開発PCのIPやレンジを除外して対応していたが、今回はそれも認められなかったので、調査しました。
結論:Public Access 無効化のリソースには、踏み台VM内のAzure Portalからアクセスする
ハンズオン
事象
Azure Storage AccountでFirewallでPublic Accessを無効にする。
前提としてStorage Accountの中身を見るのに必要な権限はつけておきます。Storage Blob Data Contributor。
この状態でAzure Portalからアクセスするとはじかれる。
対応
Storage AccountにPrivate Endpointを付与する。
VMをPrivate Endpointと同じSubnetに立てる。(別Subnetでもいいが、その場合はSubnet間でNSGの通信を許可してやる必要がある。)VMに接続し、Azure Portalを開きStorage Accountにアクセスし、Containerの中身を見れることを確認。
どういうリソースに影響があるか
全部調べたわけではないですが、以下のリソースでは開けない、参照できない等問題が起きていた。要はDataプレーンとControlプレーンに分かれているもので、Dataプレーンへの接続がPublic Accessがオフの場合ははじかれてしまうということらしい。
- Azure Storage AccountのBlob等
- Web AppsのKudu
- Azure Cosmos DBのContainer
- Azure Key VaultのSecret、Key、Certificate
- Azure AI SearchのIndex
- Azure Batch AccountのPool等
- Azure OpenAIのStudioでAIとのやりとり