Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Storage admite el acceso de lectura anónimo opcional para contenedores y blobs. De forma predeterminada, nunca se permite el acceso anónimo a los datos. A menos que habilite explícitamente el acceso anónimo, todas las solicitudes a un contenedor y sus blobs deben estar autorizadas. Al configurar la configuración de nivel de acceso de un contenedor para permitir el acceso anónimo, los clientes pueden leer datos en ese contenedor sin autorizar la solicitud.
Advertencia
Cuando se configura un contenedor para el acceso anónimo, cualquier cliente puede leer los datos del mismo. El acceso anónimo supone un riesgo de seguridad potencial, así que si tu escenario no lo requiere, remedia el acceso anónimo de la cuenta de almacenamiento.
En este artículo se describe cómo configurar el acceso de lectura anónimo para un contenedor y sus blobs. Para obtener información sobre cómo corregir el acceso anónimo para lograr una seguridad óptima, consulte Corregir el acceso de lectura anónimo a los datos de blobs.
Acerca del acceso de lectura anónimo
El acceso anónimo a los datos siempre está prohibido de manera predeterminada. Dos configuraciones afectan al acceso anónimo:
Configuración de acceso anónimo de la cuenta de almacenamiento. Una cuenta de almacenamiento de Azure Resource Manager ofrece un valor para permitir o denegar el acceso anónimo a la cuenta. Microsoft recomienda no permitir el acceso anónimo para las cuentas de almacenamiento para lograr una seguridad óptima.
Cuando se permite el acceso anónimo a nivel de cuenta, los datos de blobs no están disponibles para su lectura anónima a menos que el usuario dé el paso adicional de configurar explícitamente la opción de acceso anónimo del contenedor.
Configure el acceso anónimo del contenedor. De manera predeterminada, el valor de acceso anónimo de un contenedor está deshabilitado, lo que significa que se requiere autorización para cada solicitud al contenedor o sus datos. Un usuario con los permisos adecuados puede modificar el valor de acceso anónimo de un contenedor para habilitar el acceso anónimo solo si se permite el acceso anónimo para la cuenta de almacenamiento.
En la tabla siguiente se resume cómo las dos opciones de configuración afectan al acceso anónimo para un contenedor.
| El nivel de acceso anónimo del contenedor se establece en Privado (configuración predeterminada) | El nivel de acceso anónimo del contenedor se establece en Contenedor | El nivel de acceso anónimo del contenedor se establece en Blob | |
|---|---|---|---|
| El acceso público no está permitido para la cuenta de almacenamiento | No hay acceso anónimo a ningún contenedor en la cuenta de almacenamiento. | No hay acceso anónimo a ningún contenedor en la cuenta de almacenamiento. La configuración de la cuenta de almacenamiento invalida la configuración del contenedor. | No hay acceso anónimo a ningún contenedor en la cuenta de almacenamiento. La configuración de la cuenta de almacenamiento invalida la configuración del contenedor. |
| Se permite el acceso anónimo para la cuenta de almacenamiento | No hay acceso anónimo a este contenedor (configuración predeterminada). | Se permite el acceso anónimo a este contenedor y sus blobs. | Se permite el acceso anónimo a los blobs de este contenedor, pero no al propio contenedor. |
Cuando se permite el acceso anónimo para una cuenta de almacenamiento y se habilita para un contenedor específico, el servicio acepta una solicitud para leer un blob en ese contenedor que se envía sin una cabecera Authorization, y devuelve los datos del blob en la respuesta. Sin embargo, si la solicitud se transmite con un Authorization encabezado, el servicio ignora el acceso anónimo a la cuenta de almacenamiento y autoriza la solicitud basándose en las credenciales proporcionadas.
Permitir o denegar el acceso de lectura anónimo para una cuenta de almacenamiento
Cuando se permite el acceso anónimo a una cuenta de almacenamiento, un usuario con los permisos adecuados puede modificar la configuración de acceso anónimo de un contenedor para habilitar el acceso anónimo a los datos de ese contenedor. Los datos de blob nunca están disponibles para acceso anónimo a menos que el usuario realice el paso adicional de configurar explícitamente la configuración de acceso anónimo del contenedor.
El acceso anónimo a un contenedor siempre está desactivado por defecto y debe configurarse explícitamente para permitir solicitudes anónimas. Independientemente de la configuración en la cuenta de almacenamiento, tus datos nunca estarán disponibles para acceso anónimo a menos que un usuario con permisos adecuados realice este paso adicional para habilitar el acceso anónimo al contenedor.
Al deshabilitar el acceso anónimo para la cuenta de almacenamiento, se anula la configuración de acceso de todos los contenedores de esa cuenta de almacenamiento, lo que impide el acceso anónimo a los datos de blobs de esa cuenta. Cuando no permites el acceso anónimo a la cuenta, no puedes configurar la configuración de acceso de un contenedor para permitir el acceso anónimo, y cualquier solicitud anónima futura a esa cuenta falla. Antes de cambiar esta configuración, asegúrate de entender el impacto en las aplicaciones cliente que puedan acceder a datos de tu cuenta de almacenamiento de forma anónima. Para más información, vea el artículo en el que se explica cómo impedir el acceso de lectura anónimo a contenedores y blobs.
Importante
Después de que no permitas el acceso anónimo a una cuenta de almacenamiento, los clientes que usan el desafío del portador anónimo descubren que Azure Storage devuelve un error 403 (Prohibido) en lugar de un error 401 (No autorizado). Haz que todos los contenedores sean privados para mitigar este problema. Para obtener más información sobre cómo modificar la configuración de acceso anónimo para contenedores, vea Establecer el nivel de acceso de un contenedor.
Permitir o no permitir el acceso anónimo requiere la versión 2019-04-01 o posterior del proveedor de recursos de Azure Storage. Para más información, consulte la API REST del proveedor de recursos de Azure Storage.
Permisos para no permitir el acceso anónimo
Para configurar la propiedad AllowBlobPublicAccess para la cuenta de almacenamiento, necesitas permisos para crear y gestionar cuentas de almacenamiento. Los roles de control de acceso basado en rol de Azure (Azure RBAC) que proporcionan estos permisos incluyen la acción Microsoft.Storage/storageAccounts/write. Los roles integrados con esta acción incluyen:
- El rol Propietario de Azure Resource Manager
- El rol Colaborador de Azure Resource Manager
- El rol Colaborador de la cuenta de almacenamiento
Las asignaciones de roles deben tener el ámbito del nivel de la cuenta de almacenamiento o superior para permitir que un usuario deniegue el acceso anónimo para la cuenta de almacenamiento. Para obtener más información sobre el ámbito del rol, vea Descripción del ámbito para Azure RBAC.
Restringir la asignación de estos roles solo a usuarios administrativos que requieran la capacidad de crear una cuenta de almacenamiento o actualizar sus propiedades. Utiliza el principio del menor privilegio para asegurarte de que los usuarios tengan el menor número de permisos necesarios para realizar sus tareas. Para más información sobre la administración del acceso con RBAC de Azure, consulte Procedimientos recomendados para RBAC de Azure.
Estos roles no proporcionan acceso a los datos de una cuenta de almacenamiento a través de Microsoft Entra ID. Sin embargo, incluyen Microsoft.Storage/storageAccounts/listkeys/action, que concede acceso a las claves de acceso de la cuenta. Al usar este permiso, un usuario puede utilizar las claves de acceso de la cuenta para acceder a todos los datos de una cuenta de almacenamiento.
La acción Microsoft.Storage/storageAccounts/listkeys/action en sí concede acceso a los datos mediante las claves de la cuenta, pero no concede a un usuario la capacidad de cambiar la propiedad AllowBlobPublicAccess de una cuenta de almacenamiento. Para los usuarios que necesiten acceder a los datos de la cuenta de almacenamiento, pero no deban tener la capacidad de cambiar la configuración de esta, considere la posibilidad de asignar roles tipo Colaborador de datos de Storage Blob, Lector de datos de Storage Blob o Lector y acceso a los datos.
Nota
Los roles clásicos de administrador de suscripciones Administrador del servicio y Coadministrador equivalen al rol Propietario de Azure Resource Manager. El rol Propietario incluye todas las acciones, por lo que un usuario con uno de estos roles administrativos también puede crear cuentas de almacenamiento y administrar la su configuración. Para obtener más información, consulte Roles de Azure, roles de Microsoft Entra y roles de administrador de suscripción clásicos .
Establezca la propiedad AllowBlobPublicAccess en la cuenta de almacenamiento
Para permitir o no permitir el acceso anónimo para una cuenta de almacenamiento, establezca la propiedad AllowBlobPublicAccess de la cuenta. Esta propiedad está disponible para todas las cuentas de almacenamiento que crees con el modelo de despliegue de Azure Resource Manager. Para más información, consulte Introducción a las cuentas de almacenamiento.
Para permitir o denegar el acceso anónimo para una cuenta de almacenamiento en Azure Portal, siga estos pasos:
Vaya a su cuenta de almacenamiento en el portal de Azure.
Encuentra la opción Configuración en Ajustes.
Establezca Permitir acceso anónimo de blobs en Habilitado o Deshabilitado.
Nota
No permitir el acceso anónimo a una cuenta de almacenamiento no afecta a ningún sitio web estático alojado en esa cuenta de almacenamiento. Al contenedor $web siempre se puede acceder de forma pública.
Después de actualizar la configuración de acceso anónimo para la cuenta de almacenamiento, puede tardar hasta 30 segundos en propagarse completamente el cambio.
Cuando un contenedor está configurado para el acceso anónimo, no es necesario autorizar las solicitudes de lectura de blobs en ese contenedor. Sin embargo, cualquier regla de firewall que configures para la cuenta de almacenamiento sigue vigente y bloquea el tráfico en línea con las ACLs configuradas.
Los siguientes ejemplos muestran cómo leer la propiedad AllowBlobPublicAccess para la cuenta de almacenamiento para determinar si actualmente se permite o no se permite el acceso anónimo. Para obtener información sobre cómo comprobar que la configuración de acceso anónimo de una cuenta está configurada para evitar el acceso anónimo, vea Corregir el acceso anónimo para la cuenta de almacenamiento.
Establecimiento del nivel de acceso anónimo para un contenedor
Para conceder a los usuarios anónimos acceso de lectura a un contenedor y sus blobs, primero permita el acceso anónimo para la cuenta de almacenamiento y, a continuación, establezca el nivel de acceso anónimo del contenedor. Antes de empezar, asegúrate de que el acceso anónimo esté permitido a nivel de cuenta (a través de la propiedad AllowBlobPublicAccess ) y que tengas permiso de escritura en el contenedor. Si se deniega el acceso anónimo para la cuenta de almacenamiento, no puedes configurar el acceso anónimo para un contenedor.
Precaución
Microsoft desaconseja permitir el acceso anónimo a los datos de blobs en su cuenta de almacenamiento.
Cuando permites el acceso anónimo a una cuenta de almacenamiento, puedes configurar un contenedor con los siguientes permisos:
- No hay acceso público a lecturas (portal: Privado; PowerShell: Apagado): El contenedor y sus blobs solo pueden ser accedidos con una solicitud autorizada. Esta opción es el valor predeterminado para todos los contenedores nuevos.
- Acceso público de lectura solo para blobs (portal y PowerShell: Blob): Los blobs dentro del contenedor pueden leerse mediante solicitud anónima, pero los datos del contenedor no están disponibles de forma anónima. Los clientes anónimos no pueden enumerar los blobs dentro del contenedor.
- Acceso público de lectura para contenedor y sus blobs (portal y PowerShell: Container): Los datos de contenedores y blobs pueden leerse mediante solicitud anónima, excepto para la configuración de permisos de contenedor y los metadatos del contenedor. Los clientes pueden enumerar blobs dentro del contenedor mediante petición anónima, pero no pueden enumerar contenedores dentro de la cuenta de almacenamiento.
No se puede cambiar el nivel de acceso anónimo de un blob individual. Establece el nivel de acceso anónimo solo en el nivel del contenedor. Puede establecer el nivel de acceso anónimo del contenedor al crear el contenedor o actualizar la configuración en un contenedor existente.
Para actualizar el nivel de acceso anónimo para uno o varios contenedores existentes en Azure Portal, siga estos pasos:
Ve a la visión general de tu cuenta de almacenamiento en el portal de Azure.
En Almacenamiento de datos en la hoja de menú, seleccione Contenedores.
Seleccione los contenedores para los que desea establecer el nivel de acceso anónimo.
Selecciona Cambiar nivel de acceso para abrir la configuración de acceso anónimo.
Selecciona el nivel de acceso anónimo deseado en el desplegable de nivel de acceso anónimo y selecciona OK para aplicar el cambio a los contenedores seleccionados.
Para verificar el cambio, reabre el nivel de acceso de Cambio y confirma que ese nivel de acceso Anónimo muestra el valor seleccionado.
Cuando se deshabilita el acceso anónimo para la cuenta de almacenamiento, no puedes establecer el nivel de acceso anónimo de un contenedor. Si intenta establecer el nivel de acceso anónimo del contenedor, la configuración está deshabilitada porque no se permite el acceso anónimo para la cuenta.
Comprobación de la configuración del acceso anónimo de un conjunto de contenedores
Puedes comprobar qué contenedores en una o más cuentas de almacenamiento están configurados para acceso anónimo listando los contenedores y marcando la configuración de acceso anónimo. Este enfoque es una opción práctica cuando una cuenta de almacenamiento no contiene un gran número de contenedores o cuando se comprueba la configuración en un pequeño número de cuentas de almacenamiento. Sin embargo, el rendimiento puede verse afectado si intentas enumerar un gran número de contenedores.
En el ejemplo siguiente se usa PowerShell para obtener la configuración del acceso anónimo de todos los contenedores de una cuenta de almacenamiento. No olvide reemplazar los valores del marcador de posición entre corchetes con sus propios valores:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess
Compatibilidad de características
La compatibilidad con esta característica puede verse afectada al habilitar Data Lake Storage Gen2, el protocolo Network File System (NFS) 3.0 o el Protocolo de transferencia de archivos SSH (SFTP). Si ha habilitado cualquiera de estas funcionalidades, consulte Compatibilidad con características de Blob Storage en cuentas de Azure Storage para evaluar la compatibilidad con esta característica.