Solucionar errores de autorización del firewall de cuentas de almacenamiento de Azure

Introducción

Reforzar el acceso al plano de datos de una cuenta de almacenamiento es una práctica habitual para mejorar la seguridad. Sin embargo, al usar recursos de Azure con integración de red virtual (VNET) o al acceder a puntos de conexión de almacenamiento desde IP privadas u otros inquilinos, pueden producirse errores de autorización si el origen no está correctamente incluido en la lista de permitidos. Este artículo explora escenarios comunes que provocan estos errores y ofrece resoluciones prácticas.


Escenarios comunes de errores de autorización

Escenario 1: acceso desde otra región

Cuando el origen que realiza la llamada procede de una región de Azure diferente, el problema normalmente se puede resolver añadiendo la dirección IP pública del origen al firewall de la cuenta de almacenamiento.


Escenario 2: falla el acceso desde la misma región

Las solicitudes procedentes de la misma región de Azure suelen usar direcciones IP privadas de Azure en lugar de IP públicas. En este caso, incluir IP públicas en la lista de permitidos fallará. Consulta Configurar firewalls y redes virtuales de Azure Storage para obtener más detalles.


Escenario 3: restringir el acceso a una subred específica

Si los recursos carecen de IP públicas, pero el cliente desea restringir el acceso a una subred específica, pueden surgir problemas debido a limitaciones de visibilidad. Es posible que el firewall de la cuenta de almacenamiento no muestre la subred de destino, por lo que la inclusión manual en la lista de permitidos debe realizarla alguien con acceso RBAC de colaborador acceso o superior.


Escenario 4: acceso desde un inquilino de Azure diferente

Cuando los recursos que intentan acceder a la cuenta de almacenamiento pertenecen a un inquilino de Azure diferente, se requieren pasos adicionales para incluir la subred de origen en la lista de permitidos.


Pasos de resolución

Añadir una subred de otro inquilino

Para incluir en la lista de permitidos una subred de una red virtual de un inquilino de Azure diferente, se debe usar el parámetro VirtualNetworkResourceId debe usarse. Esto implica especificar el URI de la subred con la forma:

/subscriptions/<subscription-ID>/resourceGroups/<resourceGroup-Name>/providers/Microsoft.Network/virtualNetworks/<vNet-name>/subnets/<subnet-name>

Ejemplo de comando de PowerShell

Para obtener el URI de la subred, usa el siguiente comando:

$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"

Si el usuario no tiene acceso suficiente para ejecutar este comando en el inquilino de origen, puede recuperar el URI de la subred inspeccionando el cuerpo JSON del recurso de VNET en Azure. Esto requiere acceso READ del plano de control sobre el recurso.


Habilitar el punto de conexión de servicio de almacenamiento

Antes de incluir la subred en la lista de permitidos, asegúrate de que el punto de conexión de servicio Microsoft.Storage o Microsoft.Storage.Global esté habilitado. Esto se puede hacer con Azure PowerShell, la CLI o Azure Portal. Para obtener instrucciones paso a paso, consulta Configurar firewalls y redes virtuales de Azure Storage.

Ejemplo de comando para la inclusión en la lista de permitidos

Una vez obtenido el URI de la subred, usa el siguiente comando para añadir la regla de red:

Add-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -VirtualNetworkResourceId $subnet

Verificación

Para verificar la conexión, usa el comando curl con un token SAS:

curl https://storageaccountname.blob.core.windows.net/container/hello.txt?<SAS token>

Consejo:

  • El indicador -v del comando curl habilita la salida detallada, que puede ayudar a identificar respuestas HTTP como 403 Forbidden. Quita el indicador para obtener una salida más limpia.

El siguiente ejemplo mostrará la subred en el firewall de la cuenta de almacenamiento de destino 

Consejo: La advertencia resaltada se puede ignorar sin problema; está relacionada con el acceso READ del plano de control sobre la subred incluida en la lista de permitidos; se permitirá el acceso al plano de datos. 


Consideraciones adicionales

  1. Habilitación de puntos de conexión de servicio: Habilitar el punto de conexión de servicio de almacenamiento puede provocar interrupciones temporales de la conectividad. Para obtener más información, consulta Puntos de conexión de servicio de red virtual de Azure.
  2. Puntos de conexión privados: Los puntos de conexión privados omiten las reglas de red del firewall, ya que dependen del DNS y de la conectividad a través de la subred autorizada. Consulta Usar puntos de conexión privados – Azure Storage.
  3. Plano de control frente a plano de datos: Comprender la diferencia entre las operaciones del plano de control y del plano de datos es crucial para la solución de problemas. Obtén más información en Operaciones del plano de control y del plano de datos.

Conclusión

Los errores de autorización al acceder a puntos de conexión de Azure Storage suelen deberse a reglas de firewall mal configuradas o a una visibilidad insuficiente de la subred. Siguiendo los pasos descritos anteriormente, puedes solucionar y resolver estos problemas de forma eficaz, garantizando un acceso al plano de datos seguro y sin interrupciones.

Deja un comentario