Storage Account の既定ネットワークアクセスの確認

ストレージへのネットワークアクセスを、必要な送信元に制限してください。

説明

公開エンドポイントが有効な 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 が作られたり、すべての例外が削除されたりするわけではありません。

参考資料