Cifrado de Azure Storage para datos en reposo

Azure Storage usa el cifrado del servicio (SSE) para cifrar automáticamente los datos cuando se guardan en la nube. El cifrado de Azure Storage protege los datos y le ayuda a satisfacer los requisitos de cumplimiento normativo y seguridad de la organización.

Microsoft recomienda usar el cifrado del servicio para proteger los datos en la mayoría de los escenarios. Sin embargo, las bibliotecas cliente de Azure Storage para Blob Storage y Queue Storage también proporcionan cifrado de cliente para los clientes que necesitan cifrar los datos en el cliente. Para obtener más información, consulte la sección sobre el cifrado de cliente para blobs y colas.

Acerca del cifrado del servicio de Azure Storage

Los datos de Azure Storage se cifran y descifran de forma transparente mediante el cifrado AES de 256 bits, uno de los cifrados de bloques más sólidos que hay disponibles, y son compatibles con FIPS 140-2. El cifrado de Azure Storage es similar al cifrado de BitLocker en Windows.

El cifrado de Azure Storage está habilitado para todas las cuentas de almacenamiento, incluidas las cuentas de almacenamiento clásicas y las de Resource Manager. El cifrado de Azure Storage no se puede deshabilitar. Como los datos están protegidos de forma predeterminada, no es necesario modificar el código o las aplicaciones para aprovechar el cifrado de Azure Storage.

Los datos de una cuenta de almacenamiento se cifran independientemente de su nivel de rendimiento (Estándar o Premium), del nivel de acceso (frecuente o esporádico) o del modelo de implementación (Azure Resource Manager o clásico). También se cifran todos los blobs del nivel de archivo. Todas las opciones de redundancia de Azure Storage admiten el cifrado, y todos los datos de las regiones primaria y secundaria se cifran cuando la replicación geográfica está habilitada. Se cifran todos los recursos de Azure Storage, incluidos los blobs, los discos, los archivos, las colas y las tablas. También se cifran todos los metadatos de objetos. No hay ningún costo adicional para el cifrado de Azure Storage.

Todos los blobs en bloques, blobs en anexos o blobs en páginas que se escribieron en Azure Storage después del 20 de octubre de 2017 está cifrados. Los blobs creados antes de esta fecha se siguen cifrando mediante un proceso en segundo plano. Para forzar el cifrado de un blob creado antes del 20 de octubre de 2017, puede volver a escribir el blob. Para más información sobre cómo comprobar el estado de cifrado de un blob, consulte Comprobación del estado de cifrado de un blob.

Para más información sobre de los módulos criptográficos subyacentes al cifrado de Azure Storage, vea API de criptografía: última generación.

Para más información sobre el cifrado y la administración de claves de Azure Managed Disks, consulte Cifrado del lado servidor de Azure Managed Disks.

Información sobre la administración de claves de cifrado

Los datos de una cuenta de almacenamiento nueva se cifran con claves administradas por Microsoft de manera predeterminada. Puede seguir confiando en las claves administradas por Microsoft para el cifrado de los datos, o puede administrar el cifrado con sus propias claves. Si opta por administrar el cifrado con sus propias claves, tiene dos opciones. Puede usar cualquiera de los tipos de administración de claves, o ambos:

  • Puede especificar una clave administrada por el cliente que se usará para cifrar y descifrar datos en Blob Storage y en Azure Files.1,2 Las claves administradas por el cliente se deben almacenar en Azure Key Vault o en el modelo de seguridad de hardware (HSM) administrado de Azure Key Vault. Para más información sobre las claves administradas por el cliente, consulte Uso de claves administradas por el cliente para el cifrado de Azure Storage.
  • Puede especificar una clave proporcionada por el cliente en las operaciones de Blob Storage. Un cliente que realiza una solicitud de lectura o escritura en Blob Storage puede incluir una clave de cifrado en la solicitud para tener un control detallado sobre el cifrado y el descifrado de los datos de blob. Para más información sobre las claves proporcionadas por el cliente, consulte Especificación de una clave de cifrado en una solicitud a Blob Storage.

De forma predeterminada, una cuenta de almacenamiento está cifrada con una clave cuyo ámbito es toda la cuenta de almacenamiento. Los ámbitos de cifrado permiten administrar el cifrado con una clave cuyo ámbito es un contenedor o un blob individual. Se pueden usar ámbitos de cifrado para crear límites seguros entre los datos que residen en la misma cuenta de almacenamiento, pero que pertenecen a clientes distintos. Los ámbitos de cifrado pueden usar claves administradas por Microsoft o claves administradas por el cliente. Para obtener más información sobre los ámbitos de cifrado, vea Ámbitos de cifrado para Blob Storage.

En la tabla siguiente se comparan las opciones de administración de claves para el cifrado de Azure Storage.

Parámetro de administración de claves Claves administradas por Microsoft Claves administradas por el cliente Claves proporcionadas por el cliente
Operaciones de cifrado y descifrado Azure Azure Azure
Servicios de Azure Storage admitidos All Blob Storage, Azure Files1,2 Blob Storage
Almacenamiento de claves Almacén de claves de Microsoft Azure Key Vault o HSM de Key Vault Propio almacén de claves del cliente
Responsabilidad de la rotación de claves Microsoft Customer Customer
Control de claves Microsoft Customer Customer
Ámbito de clave Cuenta (valor predeterminado), contenedor o blob Cuenta (valor predeterminado), contenedor o blob N/D

1 Para obtener información sobre cómo crear una cuenta que admita el uso de claves administradas por el cliente con Queue Storage, consulte Creación de una cuenta que admita las claves administradas por el cliente para colas.
2 Para obtener información sobre cómo crear una cuenta que admita el uso de claves administradas por el cliente con Table Storage, consulte Creación de una cuenta que admita las claves administradas por el cliente para tablas.

Nota:

Las claves administradas por Microsoft se rotan correctamente según los requisitos de cumplimiento. Si tiene requisitos específicos de rotación de claves, Microsoft recomienda que se cambie a las claves administradas por el cliente para que pueda administrar y auditar la rotación usted mismo.

Cifrado doble de los datos con cifrado de infraestructura

Los clientes que necesitan niveles altos de seguridad de que sus datos están seguros también pueden habilitar el cifrado AES de 256 bits en el nivel de infraestructura de Azure Storage. Cuando se habilita el cifrado de la infraestructura, los datos de las cuentas de almacenamiento se cifran dos veces, una vez en el nivel de servicio y otra en el nivel de infraestructura, con dos algoritmos de cifrado y dos claves diferentes. El doble cifrado de los datos de Azure Storage sirve de protección en caso de que uno de los algoritmos de cifrado o las claves puedan estar en peligro. En este escenario, la capa adicional de cifrado también protege los datos.

El cifrado en el nivel de servicio admite el uso tanto de claves administradas por Microsoft como de claves administradas por el cliente con Azure Key Vault. El cifrado en el nivel de infraestructura se basa en las claves administradas por Microsoft y siempre usa una clave independiente.

Para más información sobre cómo crear una cuenta de almacenamiento que habilite el cifrado de infraestructura, consulte Creación de una cuenta de almacenamiento con el cifrado de infraestructura habilitado para poder realizar el cifrado doble de datos.

Cifrado de cliente para blobs y colas

Las bibliotecas cliente de Azure Blob Storage para .NET, Java y Python admiten el cifrado de datos dentro de las aplicaciones cliente antes de cargarlos en Azure Storage y el descifrado de datos mientras estos se descargan al cliente. Las bibliotecas cliente de Queue Storage para .NET y Python también admiten el cifrado del lado cliente.

Nota

Considere la posibilidad de usar las características de cifrado del servicio proporcionadas por Azure Storage para proteger los datos, en lugar del cifrado de cliente.

Las bibliotecas cliente de Blob Storage y Queue Storage usan AES para cifrar los datos del usuario. Hay dos versiones del cifrado de cliente disponibles en las bibliotecas cliente:

  • La versión 2 usa el modo Galois/contador (GCM) con AES. Los SDK de Blob Storage y Queue Storage admiten el cifrado del lado cliente con v2.
  • La versión 1 usa el modo Cipher Block Chaining (CBC) con AES. Los SDK de Blob Storage, Queue Storage y Table Storage admiten el cifrado del lado cliente con v1.

Advertencia

El uso de la versión 1 del cifrado de cliente no se recomienda debido a una vulnerabilidad de seguridad en la implementación de la biblioteca cliente del modo CBC. Para más información sobre esta vulnerabilidad de seguridad, consulte Actualización de Azure Storage del cifrado del lado cliente en el SDK para abordar la vulnerabilidad de seguridad. Si actualmente usa la versión 1, se recomienda actualizar la aplicación para que use la versión 2 del cifrado del lado de cliente y migrar los datos.

El SDK de Azure Table Storage solo admite la versión 1 del cifrado de cliente. No se recomienda usar el cifrado de cliente con Table Storage.

En la tabla siguiente se muestra qué bibliotecas cliente admiten qué versiones del cifrado de cliente y se proporcionan instrucciones para migrar a la versión 2 del cifrado de cliente.

Biblioteca de cliente Versión del cifrado de cliente compatible Migración recomendada Instrucciones adicionales
Bibliotecas cliente de Blob Storage para .NET (versión 12.13.0 y posteriores), Java (versión 12.18.0 y posteriores) y Python (versión 12.13.0 y posteriores) 2,0

1.0 (se conserva únicamente por compatibilidad con versiones anteriores)
Actualice el código para usar la versión 2 del cifrado de cliente.

Descargue los datos cifrados para descifrarlos y, a continuación, vuelva a cifrarlos con la versión 2 del cifrado de cliente.
Cifrado de cliente para blobs
Biblioteca cliente de Blob Storage para .NET (versión 12.12.0 y anteriores), Java (versión 12.17.0 y anteriores) y Python (versión 12.12.0 y anteriores) 1.0 (no se recomienda) Actualice la aplicación para que use una versión del SDK de Blob Storage que admita la versión 2 del cifrado de cliente. Consulte la sección sobre la matriz de compatibilidad del SDK para el cifrado de cliente para obtener detalles.

Actualice el código para usar la versión 2 del cifrado de cliente.

Descargue los datos cifrados para descifrarlos y, a continuación, vuelva a cifrarlos con la versión 2 del cifrado de cliente.
Cifrado de cliente para blobs
Biblioteca cliente de Queue Storage para .NET (versión 12.11.0 y posteriores) y Python (versión 12.4 y posteriores) 2,0

1.0 (se conserva únicamente por compatibilidad con versiones anteriores)
Actualice el código para usar la versión 2 del cifrado de cliente. Cifrado de cliente para colas
Biblioteca cliente de Queue Storage para .NET (versión 12.10.0 y anteriores) y Python (versión 12.3.0 y anteriores) 1.0 (no se recomienda) Actualice la aplicación para usar una versión de la versión del SDK de Queue Storage que admita la versión 2 del cifrado de cliente. Consulte la sección sobre la matriz de compatibilidad del SDK para el cifrado de cliente

Actualice el código para usar la versión 2 del cifrado de cliente.
Cifrado de cliente para colas
Biblioteca cliente de Table Storage para .NET, Java y Python 1.0 (no se recomienda) No disponible. N/D

Pasos siguientes