Uso de Azure Content Delivery Network con SAS

Al configurar una cuenta de almacenamiento para que Azure Content Delivery Network almacene el contenido en la caché, cualquier usuario que conozca las direcciones URL de los contenedores de almacenamiento tiene acceso de manera predeterminada a los archivos que haya cargado. Si quiere proteger los archivos de la cuenta de almacenamiento, puede cambiar el acceso de los contenedores de almacenamiento de público a privado. Pero si lo hace, nadie puede tener acceso a los archivos.

Si quiere conceder acceso limitado a contenedores de almacenamiento privado, puede usar la característica firma de acceso compartido (SAS) de la cuenta de Azure Storage. Una SAS es un identificador URI que concede derechos de acceso restringido a los recursos de Azure Storage sin exponer la clave de cuenta. Puede proporcionar una SAS a los clientes que no son de confianza para entregarles la clave de la cuenta de almacenamiento, pero a los que sí desea delegar acceso a ciertos recursos de la cuenta de almacenamiento. Mediante la distribución de un identificador URI de firma de acceso compartido a estos clientes, les concede acceso a un recurso durante un período de tiempo especificado.

Con una SAS, puede definir diversos parámetros de acceso a un blob, como horas de inicio y expiración, permisos (lectura o escritura) e intervalos IP. En este artículo se describe cómo usar SAS con Azure Content Delivery Network. Para más información sobre la característica SAS, incluido cómo crearla y sus opciones de parámetros, consulte Uso de firmas de acceso compartido (SAS).

Configurar Azure Content Delivery Network para trabajar con SAS de almacenamiento

Se recomiendan las dos opciones siguientes para usar SAS con Azure Content Delivery Network. En todas las opciones se presupone que ya ha creado una SAS en funcionamiento (consulte los requisitos previos).

Requisitos previos

Para comenzar, cree una cuenta de almacenamiento y, luego, genere una SAS para el recurso. Puede generar dos tipos de firmas de acceso compartido: una SAS de servicio o una SAS de cuenta. Para más información, consulte Tipos de firmas de acceso compartido.

Cuando haya generado un token de SAS, tiene acceso a su archivo de Blob Storage mediante la anexión de ?sv=<SAS token> a la dirección URL. Esta dirección URL tiene el formato siguiente:

https://<account name>.blob.core.windows.net/<container>/<file>?sv=<SAS token>

Por ejemplo:

https://democdnstorage1.blob.core.windows.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=co&sp=r&se=2038-01-02T21:30:49Z&st=2018-01-02T13:30:49Z&spr=https&sig=QehoetQFWUEd1lhU5iOMGrHBmE727xYAbKJl5ohSiWI%3D

Para obtener más información sobre cómo establecer los parámetros, consulte Consideraciones sobre los parámetros de SAS y Parámetros de la firma de acceso compartido.

Captura de pantalla de la configuración de SAS de la red de entrega de contenido.

Opción 1: uso de SAS con tránsito al almacenamiento de blobs desde Azure Content Delivery Network

Esta opción es la más simple y solo usa un único token de SAS, que se pasa desde Azure Content Delivery Network al servidor de origen.

  1. Elija un punto de conexión, seleccione Reglas de caché y luego, en la lista Almacenamiento en caché de cadenas de consulta, elija Almacenar en caché todas las URL únicas.

    Captura de pantalla de las reglas de almacenamiento en caché de la red de entrega de contenido.

  2. Después de configurar SAS en la cuenta de almacenamiento, debe usar el token de SAS con las direcciones URL del punto de conexión de la red de entrega de contenido y del servidor de origen para acceder al archivo.

    La dirección URL del punto de conexión de red de entrega de contenido resultante tiene el siguiente formato: https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>

    Por ejemplo:

    https://demoendpoint.azureedge.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

  3. Ajuste la duración de la caché mediante las reglas de caché o al agregar los encabezados Cache-Control en el servidor de origen. Debido a que Azure Content Delivery Network trata al token de SAS como una cadena de consulta sin formato, el procedimiento recomendado que debe seguirse es configurar una duración de la caché con la misma hora de expiración que la SAS o una anterior. De lo contrario, si un archivo se almacena en caché más tiempo que el que está activa la SAS, es posible acceder al archivo desde el servidor de origen de Azure Content Delivery Network una vez que haya transcurrido la hora de expiración de la SAS. Si esto ocurre y quiere que el archivo en caché no sea accesible, debe realizar una operación de purga en el archivo para eliminarlo de la memoria caché. Para obtener información sobre cómo establecer la duración de la caché en Azure Content Delivery Network, consulte Control del comportamiento del almacenamiento en caché de Azure Content Delivery Network con reglas de almacenamiento en caché.

Opción 2: uso de la autenticación de token de seguridad de la red de entrega de contenido con una regla de reescritura

Para usar la autenticación de tokens de seguridad de Azure Content Delivery Network, debe tener un perfil de Azure CDN Premium de Edgio. Esta opción es la más segura y personalizable. El acceso de cliente se basa en los parámetros de seguridad que se establezcan en el token de seguridad. Una vez que haya creado y configurado el token de seguridad, es necesario en todas las direcciones URL del punto de conexión de la red de entrega de contenido. Sin embargo, debido a la regla de reescritura de direcciones URL, el token de SAS no es necesario en el punto de conexión de la red de entrega de contenido. Si posteriormente el token de SAS deja de ser válido, Azure Content Delivery Network ya no puede revalidar el contenido del servidor de origen.

  1. Cree un token de seguridad de Azure Content Delivery Network y actívelo mediante el motor de reglas para el punto de conexión de la red de entrega de contenido y la ruta de acceso donde los usuarios puedan acceder al archivo.

    Una dirección URL de punto de conexión de token de seguridad tiene el formato siguiente:

    https://<endpoint hostname>.azureedge.net/<container>/<file>?<security_token>

    Por ejemplo:

    https://sasstoragedemo.azureedge.net/container1/demo.jpg?a4fbc3710fd3449a7c99986bkquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

    Las opciones de parámetro de una autenticación de token de seguridad son distintas a las opciones de parámetro de un token de SAS. Si al crear un token de seguridad decide usar una hora de expiración, establézcala en el mismo valor que la hora de expiración del token de SAS. De este modo se garantiza que la hora de expiración sea predecible.

  2. Use el motor de reglas para crear una regla de reescritura de direcciones URL a fin de habilitar el acceso del token de SAS a todos los blobs del contenedor. Las nuevas reglas tardan hasta cuatro horas en propagarse.

    La siguiente regla de reescritura de direcciones URL de ejemplo usa un patrón de expresión regular con un grupo de captura y un punto de conexión denominado sasstoragedemo:

    Origen:

    (container1/.*)

    Destino:

    $1&sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3DCaptura de pantalla de la regla de reescritura de la dirección URL de la red de entrega de contenido: izquierda.Captura de pantalla de la regla de reescritura de la dirección URL de la red de entrega de contenido: derecha.

  3. Si renueva la SAS, actualice la regla de reescritura de direcciones URL con el nuevo token de SAS.

Consideraciones sobre los parámetros de SAS

Dado que los parámetros de SAS no son visibles para Azure Content Delivery Network, Azure Content Delivery Network no puede cambiar su comportamiento de entrega en función de ellos. Las restricciones de parámetro definidas solo se aplican a las solicitudes que Azure Content Delivery Network realiza al servidor de origen, no para las solicitudes del cliente a Azure Content Delivery Network. Resulta importante tener en cuenta esta distinción cuando se establecen parámetros de SAS. Si se requieren estas capacidades avanzadas y se usa la opción 2, establezca las restricciones adecuadas en el token de seguridad de Azure Content Delivery Network.

Nombre de parámetro de SAS Descripción
Start La hora en que Azure Content Delivery Network puede empezar a acceder al archivo de blob. Debido al desplazamiento del reloj (es decir, cuando la señal de un reloj llega a distintas horas para componentes diferentes), elija una hora 15 minutos antes si quiere que el recurso esté disponible de inmediato.
End Hora después de la cual Azure Content Delivery Network ya no puede acceder al archivo de blob. Todavía se puede acceder a los archivos almacenados en caché previamente en Azure Content Delivery Network. Para controlar la hora de expiración de los archivos, establezca la hora de expiración correspondiente en el token de seguridad de Azure Content Delivery Network o purgue el recurso.
Direcciones IP permitidas Opcional. Si usa Azure CDN de Edgio, puede establecer este parámetro en los intervalos que aparecen definidos en Azure Content Delivery Network de intervalos IP del servidor perimetral de Edgio.
Protocolos admitidos Protocolos que se permiten para una solicitud realizada con la SAS de cuenta. Se recomienda la configuración HTTPS.

Pasos siguientes

Para obtener más información acerca de SAS, vea los siguientes artículos:

Para más información acerca de cómo configurar la autenticación por tokens, consulte Protección de recursos de Azure Content Delivery Network con la autenticación por tokens.