説明
公開エンドポイントが有効な Storage Account で networkAcls.defaultAction が Allow の場合、ファイアウォールは送信元ネットワークを制限しません。認証、権限、匿名 Blob アクセスは別の設定であり、この値だけでデータが匿名公開されるわけではありません。必要なネットワークに限定すると、不要な接続経路を減らせます。
想定される影響
- アクセスが不要なネットワークからも、ストレージへの接続を試行できます。
- 認証情報が漏えいしたり他のアクセス制御が誤っていたりすると、広いネットワーク範囲から悪用されるおそれがあります。
対処方法
- 公開エンドポイントを使う場合は networkAcls.defaultAction を Deny にし、必要な IP・仮想ネットワーク規則と信頼されたサービスの例外を確認してください。
- プライベートアクセスだけが必要な場合は、Private Endpoint、DNS、接続経路を先に用意してから公開ネットワークアクセスを無効にしてください。必要なクライアントのアクセスと拒否結果を試してください。
例
同じアカウントの既定ファイアウォール動作を比較する抜粋です。実際の一意なアカウント名を使ってください。変更後は必要な許可規則やプライベート接続を別途用意する必要があります。
変更前
bicep
resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01' = {
name: 'examplestorageacct'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
properties: {
networkAcls: {
defaultAction: 'Allow'
}
}
}
既定の Allow は送信元ネットワークを制限しません。データアクセスには別の権限が適用されます。
変更後
bicep
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: 'examplestorageacct'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
properties: {
networkAcls: {
defaultAction: 'Deny'
}
}
}
既定動作を Deny にしています。これだけで Private Endpoint が作られたり、すべての例外が削除されたりするわけではありません。