状況
昨日、ストレージアカウントのネットワーク設定を「選択した仮想ネットワークと IP アドレスから有効」に変えた。以降、App Service(マネージド ID で接続)からの Blob 読み取りが 403 AuthorizationFailure になる。ロールの割り当ては数か月変えていない。
原因を調べる順番として、最も適切なものは?
- Aストレージのネットワーク規則で許可した VNet・IP
- Bマネージド ID のロール割り当て(Storage Blob Data Reader)
- Cコンテナーの匿名アクセスを有効にする
- DApp Service の VNet 統合とサブネットのサービスエンドポイント
正答
- B → A → D → C
- A → D → B → C
- C → B → A → D
- A → B → D → C
解説
403 はストレージ自身の応答なので、名前解決と経路は届いている。AuthorizationFailure はネットワーク規則で拒否されたときに返るエラーコードで、RBAC のデータ権限が足りない場合は通常 AuthorizationPermissionMismatch になる。しかも昨日変えたのはネットワーク設定なので、まず許可した VNet・IP(A)を確かめる。VNet の規則に一致するには、アプリの通信が VNet 統合したサブネットから Microsoft.Storage のサービスエンドポイント経由で出ている必要があるので、次に D。ロール(B)は長く変えておらずエラーコードも合わないので、D より後。匿名アクセスの有効化(C)は誰でも読める状態にする操作で、ネットワーク規則は匿名の要求にも効くので解決にもならない。
この問題を含む Azure のテストを制限時間つきで解く
Azureクイズへ