Compartir vía


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 delegación de usuarios, de servicios o de cuentas.

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).

Importante

En escenarios en los que se utilizan firmas de acceso compartido, Microsoft recomienda usar una SAS de delegación de usuarios. Una SAS de delegación de usuarios se protege con credenciales de Microsoft Entra en lugar de la clave de cuenta, lo que proporciona una seguridad superior.

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 delegación de usuarios, de servicios o de cuentas. 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, un usuario que cree una firma SAS 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

Al configurar una directiva de expiración de SAS en una cuenta de almacenamiento, la directiva se aplica a cada tipo de SAS: SAS de delegación de usuarios, SAS de servicios y SAS de cuentas. Los tipos SAS de servicios y SAS de cuentas están firmados con la clave de cuenta, mientras que la SAS de delegación de usuarios está firmada con las credenciales de Microsoft Entra.

Nota:

Una SAS de delegación de usuarios se firma con una clave de delegación de usuarios, que se obtiene mediante las credenciales de Microsoft Entra. La clave de delegación de usuarios tiene su propio intervalo de expiración que no está sujeto a la directiva de expiración de SAS. La directiva de expiración de SAS solo se aplica a la SAS de delegación de usuarios, no a la clave de delegación de usuarios con la que está firmada.

Una SAS de delegación de usuarios tiene un intervalo de expiración máximo de 7 días, independientemente de la directiva de expiración de SAS. Si la directiva de expiración de SAS se establece en un valor superior a 7 días, la directiva no tiene ningún efecto para una SAS de delegación de usuarios. Si la clave de delegación de usuarios expira, cualquier SAS de delegación de usuarios firmada con esa clave no es válida y cualquier intento de usar la SAS devuelve un error.

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

Esta sección se aplica a los tipos SAS de servicios y SAS de cuentas, que están firmados con la clave de 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:

    Captura de pantalla que muestra que la opción para configurar una directiva de expiración de SAS está atenuada en 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.

    Captura de pantalla que muestra cómo configurar una directiva de expiración de SAS en 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.

    Captura de pantalla en la que se muestra cómo seleccionar la directiva integrada a fin de supervisar intervalos de validez para firmas de acceso compartido para las cuentas de almacenamiento

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

    Captura de pantalla en la que se muestra cómo crear la asignación de directiva

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.

    Captura de pantalla en la que se muestra cómo ver el informe de compatibilidad para la directiva integrada de expiración de SAS

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