Configuración del control de acceso para cuentas de almacenamiento

Completado

Las solicitudes de un recurso protegido en Blob, File, Queue o Table service deben estar autorizados. La autorización garantiza que los recursos de la cuenta de almacenamiento estén accesibles únicamente en el momento que defina y solo para los usuarios o las aplicaciones a los que conceda acceso. Elegir el método de autorización adecuado es una decisión de seguridad crítica que debe alinearse con los principios de confianza cero: compruebe explícitamente, use el acceso con privilegios mínimos y asuma la vulneración.

En la tabla siguiente se describen las opciones que ofrece Azure Storage para autorizar el acceso a los recursos:

Artefacto de Azure Clave compartida (clave de cuenta de almacenamiento) Firma de acceso compartido (SAS) Microsoft Entra ID Active Directory Domain Services locales Acceso de lectura público anónimo
Blobs de Azure Compatible Compatible Compatible No está soportado Compatible
Azure Files (SMB) Compatible No está soportado Compatible con Microsoft Entra Domain Services o Microsoft Entra Kerberos Compatible; las credenciales deben sincronizarse con Microsoft Entra ID No está soportado
Azure Files (REST) Compatible Compatible Compatible No está soportado No está soportado
Colas de Azure Compatible Compatible Compatible No está soportado No está soportado
Tablas de Azure Compatible Compatible Compatible No está soportado No está soportado

Cada opción de autorización se describe brevemente a continuación:

  • Microsoft Entra ID (recomendado): Microsoft Entra ID es el servicio de administración de identidades y acceso basado en la nube de Microsoft. La integración de Microsoft Entra ID está disponible para los servicios Blob, File, Queue y Table. Con microsoft Entra ID, puede asignar acceso específico a usuarios, grupos o aplicaciones a través del control de acceso basado en rol (RBAC) de Azure. RBAC es el método más seguro, ya que elimina la necesidad de almacenar credenciales en el código y admite características de seguridad avanzadas, como el acceso condicional, la autenticación multifactor y las identidades administradas.

  • Autorización de Microsoft Entra Domain Services para Azure Files: Azure Files admite la autorización basada en identidades a través del bloque de mensajes del servidor (SMB) a través de Microsoft Entra Domain Services. Puede usar Azure RBAC para el control de acceso de nivel de recurso compartido y las ACL de Windows para permisos de archivo y de nivel de directorio, lo que proporciona un control específico sobre el acceso de un cliente a los recursos de Azure Files.

  • Autorización de Active Directory (AD) para Azure Files: Azure Files admite la autorización basada en identidades a través de SMB a través de Active Directory Domain Services local. El servicio de dominio de AD se puede hospedar en máquinas locales o en máquinas virtuales de Azure. El acceso SMB a Files se admite mediante credenciales de AD desde máquinas unidas a un dominio, ya sea en el entorno local o en Azure. Puede usar Azure RBAC para el control de acceso en el nivel de recurso compartido y las DACL (listas de control de acceso discrecional) de NTFS para la aplicación de permisos en el nivel de archivo y directorio. Las credenciales deben sincronizarse con el identificador de Entra de Microsoft.

  • Clave compartida: la autorización de clave compartida se basa en las claves de acceso de la cuenta y en otros parámetros para generar una cadena de firma cifrada que se pasa en el encabezado authorization de la solicitud. El inconveniente es que una clave compartida proporciona acceso completo a la cuenta de almacenamiento y debe evitarse siempre que sea posible. Considere la posibilidad de deshabilitar la autorización de clave compartida si los escenarios admiten la autenticación basada en identidades.

  • Firmas de acceso compartido (SAS): las firmas de acceso compartido delegan el acceso a un recurso determinado de la cuenta con permisos especificados y durante un intervalo de tiempo especificado. Hay tres tipos de SAS:

    • SAS de delegación de usuarios (protegido con credenciales de Microsoft Entra, recomendado)
    • SAS de servicio
    • SAS de cuenta (ambas protegidas con la clave de cuenta de almacenamiento)

    Nota:

    Cuando necesite usar una SAS, es preferible una SAS de delegación de usuarios para almacenamiento de blobs, ya que proporciona una seguridad superior.

  • Acceso anónimo a contenedores y blobs: opcionalmente, puede hacer que los recursos de blobs se establezcan como públicos en los contenedores o blobs. Cualquier usuario puede acceder a un contenedor o blob público para consultarlo de forma anónima. Las solicitudes de lectura para contenedores y blobs públicos no requieren autorización.

Nota:

El acceso público anónimo puede suponer riesgos de seguridad. Considere la posibilidad de deshabilitar el acceso anónimo en el nivel de cuenta de almacenamiento a menos que sea necesario específicamente y use tokens de SAS con ámbito limitado en su lugar.

Recomendaciones de seguridad

La autenticación y autorización del acceso a datos de blobs, archivos, colas y tablas con Microsoft Entra ID asegura una mayor seguridad y facilidad de uso en comparación con otras opciones de autorización. Por ejemplo, al usar Microsoft Entra ID, evita tener que almacenar la clave de acceso de la cuenta con el código, como se hace con la autorización de clave compartida. Aunque puede seguir usando la autorización de clave compartida con las aplicaciones de blob y cola, Microsoft recomienda encarecidamente pasar a Microsoft Entra ID siempre que sea posible.

De forma similar, aún puede usar firmas de acceso compartido (SAS) para conceder acceso específico a los recursos en su cuenta de almacenamiento, pero Microsoft Entra ID ofrece capacidades similares sin necesidad de administrar tokens de SAS ni preocuparse sobre cómo revocar una SAS en peligro. Cuando se requiere SAS, siempre se debe preferir SAS de delegación de usuarios sobre SAS de cuenta o servicio.

Procedimientos recomendados para la selección del método de autorización:

  • Primera opción: use microsoft Entra ID con identidades administradas para recursos de Azure cuando la aplicación se ejecute en Azure.
  • Segunda opción: use Microsoft Entra ID con entidades de servicio para aplicaciones que requieren acceso mediante programación.
  • Tercera opción: si se requiere SAS para delegar el acceso, use SAS de delegación de usuarios para Blob Storage.
  • Último recurso: use solo la clave compartida cuando no haya ninguna otra opción disponible y considere la posibilidad de deshabilitarla en el nivel de cuenta de almacenamiento para evitar el uso accidental.
  • Acceso anónimo: Deshabilite de forma predeterminada a menos que tenga un requisito específico para el acceso a blobs públicos; en cuyo caso, limite cuidadosamente el acceso a contenedores específicos.