Configuración de una directiva de expiración para firmas de acceso compartido

Puede usar una firma de acceso compartido (SAS) para delegar el acceso a los recursos a su cuenta de Azure Storage. Un token de SAS incluye el recurso de destino, los permisos concedidos y el intervalo durante el cual se permite el acceso. Los procedimientos recomendados sugieren limitar el intervalo de una SAS en caso de que se vea comprometida. Al establecer una directiva de expiración de SAS para las cuentas de almacenamiento, puede proporcionar un límite de expiración superior recomendado cuando un usuario crea una firma SAS de servicio o de cuenta.

Para obtener más información sobre las firmas de acceso compartido, consulte Otorgar acceso limitado a recursos de Azure Storage con firmas de acceso compartido (SAS).

Acerca de las directivas de expiración de SAS

Puede configurar una directiva de expiración de SAS para la cuenta de almacenamiento. La directiva de expiración de SAS especifica el límite superior recomendado para el campo de expiración firmado en una firma SAS de servicio o de cuenta. El límite superior recomendado se especifica como un valor de fecha y hora que es un número combinado de días, horas, minutos y segundos.

El intervalo de validez de la firma SAS se calcula restando el valor de fecha y hora del campo de inicio firmado al valor de fecha y hora del campo de expiración firmado. Si el valor resultante es menor o igual que el límite superior recomendado, la firma SAS cumple la directiva de expiración de SAS.

Después de configurar la directiva de expiración de SAS, cualquier usuario que cree una SAS de servicio o de cuenta con un intervalo que supere el límite superior recomendado verá una advertencia.

Una directiva de expiración de SAS no impide que un usuario cree una SAS con una expiración que supere el límite recomendado por la directiva. Cuando un usuario crea una SAS que infringe la directiva, ve una advertencia y el intervalo máximo recomendado. Si ha configurado una opción de diagnóstico para la elaboración de registros con Azure Monitor, Azure Storage escribe un mensaje en la propiedad SasExpiryStatus en los registros cada vez que un usuario usa una firma SAS que expira después del intervalo recomendado. El mensaje indica que el intervalo de validez de la firma SAS supera el intervalo recomendado.

Cuando una directiva de expiración de SAS está en vigor para la cuenta de almacenamiento, se requiere el campo de inicio firmado para cada firma SAS. Si el campo de inicio firmado no está incluido en la firma SAS y ha configurado una opción de diagnóstico para la elaboración de registros con Azure Monitor, Azure Storage escribe un mensaje en la propiedad SasExpiryStatus en los registros cada vez que un usuario usa una firma SAS sin un valor para el campo de inicio firmado.

Configuración de una directiva de expiración de SAS

Cuando se configura una directiva de expiración de SAS para una cuenta de almacenamiento, la directiva se aplica a cada tipo de SAS que se firma con la clave de la cuenta. Los tipos de firma de acceso compartido que se firman con la clave de la cuenta son la firma SAS de servicio y la firma SAS de cuenta.

¿Es necesario rotar primero las claves de acceso de la cuenta?

Antes de configurar una directiva de expiración de SAS, es posible que deba rotar cada una de las claves de acceso de la cuenta al menos una vez. Si la propiedad keyCreationTime de la cuenta de almacenamiento tiene un valor null para cualquiera de las claves de acceso de la cuenta (key1 y key2), deberá rotarlas. Para determinar si la propiedad keyCreationTime es NULL, consulte Obtención la hora de creación de las claves de acceso de la cuenta para una cuenta de almacenamiento. Si intenta configurar una directiva de expiración de SAS y las claves deben rotarse primero, se produce un error en la operación.

Configuración de una directiva de expiración de SAS

Puede configurar una directiva de expiración de SAS mediante Azure Portal, PowerShell o la CLI de Azure.

Para configurar una directiva de expiración de SAS en Azure Portal, siga estos pasos:

  1. Vaya a la cuenta de almacenamiento en Azure Portal.

  2. En Configuración, seleccione Configuración.

  3. Busque la configuración Permitir límite superior recomendado para el intervalo de expiración de firma de acceso compartido (SAS) y establézcalo como Habilitado.

    Nota

    Si la configuración está atenuada y ve el mensaje que se muestra en la imagen siguiente, deberá rotar ambas claves de acceso de cuenta para poder establecer los valores de Límite superior recomendado para el intervalo de expiración de SAS:

    Screenshot showing the option to configure a SAS expiration policy is grayed out in the Azure portal.

  4. Especifique los valores de hora en Límite superior recomendado para el intervalo de expiración de SAS para el intervalo recomendado para las nuevas firmas de acceso compartido que se crean en los recursos de esta cuenta de almacenamiento.

    Screenshot showing how to configure a SAS expiration policy in the Azure portal.

  5. Haga clic en Guardar para guardar los cambios.

Consulta de registros de infracciones de la directiva

Para registrar el uso de una SAS que sea válida durante un intervalo más largo del que recomienda la directiva de expiración de SAS, cree primero una configuración de diagnóstico que envíe registros a un área de trabajo de Azure Log Analytics. Para más información, consulte Enviar registros a Azure Log Analytics.

A continuación, use una consulta de registro de Azure Monitor de registro para comprobar si se ha infringido la directiva. Cree una nueva consulta en el área de trabajo de Log Analytics, agregue el siguiente texto de consulta y presione Ejecutar.

StorageBlobLogs 
| where SasExpiryStatus startswith "Policy violated"
| summarize count() by AccountName, SasExpiryStatus

Uso de una directiva integrada para supervisar el cumplimiento

Puede supervisar sus cuentas de almacenamiento con Azure Policy para asegurarse de que las cuentas de almacenamiento de su suscripción tienen directivas de expiración de SAS configuradas. Azure Storage proporciona una directiva integrada para garantizar que las cuentas tengan definida esta configuración. Para obtener más información sobre la directiva integrada, consulte Las cuentas de almacenamiento deben tener directivas de firma de acceso compartido (SAS) configuradas en la lista de definiciones de directivas integradas.

Asignación de la directiva integrada para un ámbito de recursos

Siga estos pasos para asignar la directiva integrada al ámbito adecuado en Azure Portal:

  1. En Azure Portal, busque Directiva para mostrar el panel Azure Policy.

  2. Seleccione Asignaciones en la sección Creación.

  3. Seleccione Asignar directiva.

  4. En la pestaña Conceptos básicos de la página Asignar directiva, en la sección Ámbito, especifique el ámbito de la asignación de directivas. Seleccione el botón Más para elegir la suscripción y el grupo de recursos opcional.

  5. Para el campo Definición de directiva, seleccione el botón Más y escriba las claves de cuenta de almacenamiento en el campo Buscar. Seleccione la definición de directiva denominada Las claves de la cuenta de almacenamiento no deben haber expirado.

    Screenshot showing how to select the built-in policy to monitor validity intervals for shared access signatures for your storage accounts

  6. Seleccione Revisar + crear para asignar la definición de directiva al ámbito especificado.

    Screenshot showing how to create the policy assignment

Supervisión del cumplimiento de la directiva de expiración clave

Para supervisar el cumplimiento de las cuentas de almacenamiento con la directiva de expiración de claves, siga estos pasos:

  1. En el panel Azure Policy, busque la definición de directiva integrada para el ámbito especificado en la asignación de directivas. Puede buscar Storage accounts should have shared access signature (SAS) policies configured en el cuadro Buscar para filtrar la directiva integrada.

  2. Seleccione el nombre de la directiva con el ámbito deseado.

  3. En la página Asignación de directivas de la directiva integrada, seleccione Ver compatibilidad. Todas las cuentas de almacenamiento de la suscripción y del grupo de recursos especificados que no cumplen los requisitos de la directiva aparecen en el informe de cumplimiento.

    Screenshot showing how to view the compliance report for the SAS expiration built-in policy

A fin de lograr el cumplimiento de una cuenta de almacenamiento, configure una directiva de expiración de SAS para esa cuenta, tal como se describe en Configuración de una directiva de expiración de SAS.

Consulte también