Cifrado de Azure Storage para datos en reposoAzure Storage encryption for data at rest

Azure Storage cifra automáticamente los datos al guardarlos en la nube.Azure Storage automatically encrypts your data when it is persisted it to the cloud. El cifrado de Azure Storage protege los datos y le ayuda a satisfacer los requisitos de cumplimiento normativo y seguridad de la organización.Azure Storage encryption protects your data and to help you to meet your organizational security and compliance commitments.

Acerca del cifrado de Azure StorageAbout Azure Storage encryption

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.Data in Azure Storage is encrypted and decrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant. El cifrado de Azure Storage es similar al cifrado de BitLocker en Windows.Azure Storage encryption is similar to BitLocker encryption on Windows.

El cifrado de Azure Storage está habilitado para todas las cuentas de almacenamiento nuevas, incluidas las cuentas de almacenamiento clásicas y las de Resource Manager.Azure Storage encryption is enabled for all new storage accounts, including both Resource Manager and classic storage accounts. El cifrado de Azure Storage no se puede deshabilitar.Azure Storage encryption cannot be disabled. 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.Because your data is secured by default, you don't need to modify your code or applications to take advantage of Azure Storage encryption.

Las cuentas de almacenamiento se cifran independientemente de su nivel de rendimiento (Estándar o Premium) o del modelo de implementación (Azure Resource Manager o clásico).Storage accounts are encrypted regardless of their performance tier (standard or premium) or deployment model (Azure Resource Manager or classic). Todas las opciones de redundancia de Azure Storage admiten el cifrado y se cifran todas las copias de una cuenta de almacenamiento.All Azure Storage redundancy options support encryption, and all copies of a storage account are encrypted. Se cifran todos los recursos de Azure Storage, incluidos los blobs, los discos, los archivos, las colas y las tablas.All Azure Storage resources are encrypted, including blobs, disks, files, queues, and tables. También se cifran todos los metadatos de objetos.All object metadata is also encrypted.

El cifrado no afecta al rendimiento de Azure Storage.Encryption does not affect Azure Storage performance. No hay ningún costo adicional para el cifrado de Azure Storage.There is no additional cost for Azure Storage encryption.

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.Every block blob, append blob, or page blob that was written to Azure Storage after October 20, 2017 is encrypted. Los blobs creados antes de esta fecha se siguen cifrando mediante un proceso en segundo plano.Blobs created prior to this date continue to be encrypted by a background process. Para forzar el cifrado de un blob creado antes del 20 de octubre de 2017, puede volver a escribir el blob.To force the encryption of a blob that was created before October 20, 2017, you can rewrite the 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.To learn how to check the encryption status of a blob, see Check the encryption status of a 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.For more information about the cryptographic modules underlying Azure Storage encryption, see Cryptography API: Next Generation.

Información sobre la administración de claves de cifradoAbout encryption key management

Puede confiar en las claves administradas por Microsoft para el cifrado de la cuenta de almacenamiento, o puede administrar el cifrado con sus propias claves.You can rely on Microsoft-managed keys for the encryption of your storage account, or you can manage encryption with your own keys. Si opta por administrar el cifrado con sus propias claves, tiene dos opciones:If you choose to manage encryption with your own keys, you have two options:

  • Puede especificar una clave administrada por el cliente con Azure Key Vault para utilizarla para el cifrado y descifrado de datos en Blob Storage y en Azure Files.1,2You can specify a customer-managed key with Azure Key Vault to use for encrypting and decrypting data in Blob storage and in Azure Files.1,2
  • En las operaciones de almacenamiento de blobs, puede especificar una clave proporcionada por el cliente.You can specify a customer-provided key on Blob storage operations. Un cliente que realiza una solicitud de lectura o escritura en el almacenamiento de blobs 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.A client making a read or write request against Blob storage can include an encryption key on the request for granular control over how blob data is encrypted and decrypted.

En la tabla siguiente se comparan las opciones de administración de claves para el cifrado de Azure Storage.The following table compares key management options for Azure Storage encryption.

Claves administradas por MicrosoftMicrosoft-managed keys Claves administradas por el clienteCustomer-managed keys Claves proporcionadas por el clienteCustomer-provided keys
Operaciones de cifrado y descifradoEncryption/decryption operations AzureAzure AzureAzure AzureAzure
Servicios de Azure Storage admitidosAzure Storage services supported AllAll Blob Storage, Azure Files1,2Blob storage, Azure Files1,2 Almacenamiento de blobsBlob storage
Almacenamiento de clavesKey storage Almacén de claves de MicrosoftMicrosoft key store Azure Key VaultAzure Key Vault Azure Key Vault o cualquier otro almacén de clavesAzure Key Vault or any other key store
Responsabilidad de la rotación de clavesKey rotation responsibility MicrosoftMicrosoft CustomerCustomer CustomerCustomer
Uso de las clavesKey usage MicrosoftMicrosoft Azure Portal, API REST del proveedor de recursos de almacenamiento, bibliotecas de administración de Azure Storage, PowerShell, CLIAzure portal, Storage Resource Provider REST API, Azure Storage management libraries, PowerShell, CLI API REST de Azure Storage (Blob Storage), bibliotecas de cliente de Azure StorageAzure Storage REST API (Blob storage), Azure Storage client libraries
Acceso a la claveKey access Solo MicrosoftMicrosoft only Microsoft, clienteMicrosoft, Customer Solo el clienteCustomer only

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.1 For information about creating an account that supports using customer-managed keys with Queue storage, see Create an account that supports customer-managed keys for queues.
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.2 For information about creating an account that supports using customer-managed keys with Table storage, see Create an account that supports customer-managed keys for tables.

En las secciones siguientes se describe cada una de las opciones de administración de claves con mayor detalle.The following sections describe each of the options for key management in greater detail.

Claves administradas por MicrosoftMicrosoft-managed keys

De forma predeterminada, la cuenta de almacenamiento usa claves de cifrado administradas por Microsoft.By default, your storage account uses Microsoft-managed encryption keys. Puede ver la configuración de cifrado para la cuenta de almacenamiento en la sección Cifrado de Azure Portal, tal y como se muestra en esta imagen.You can see the encryption settings for your storage account in the Encryption section of the Azure portal, as shown in the following image.

Ver cuenta cifrada con claves administradas por Microsoft

Claves administradas por el cliente con Azure Key VaultCustomer-managed keys with Azure Key Vault

El cifrado de Azure Storage se puede administrar en el nivel de la cuenta de almacenamiento con sus propias claves.You can manage Azure Storage encryption at the level of the storage account with your own keys. Cuando especifica una clave administrada por el cliente en el nivel de la cuenta de almacenamiento, esa clave se usa para proteger y controlar el acceso a la clave de cifrado raíz para la cuenta de almacenamiento que, a su vez, se usa para cifrar y descifrar todos los datos de archivos y de blob.When you specify a customer-managed key at the level of the storage account, that key is used to protect and control access the root encryption key for the storage account which in turn is used to encrypt and decrypt all blob and file data. Las claves administradas por el cliente ofrecen más flexibilidad para crear, rotar, deshabilitar y revocar controles de acceso.Customer-managed keys offer greater flexibility to create, rotate, disable, and revoke access controls. También permite auditar las claves de cifrado que se usan para proteger los datos.You can also audit the encryption keys used to protect your data.

Debe usar Azure Key Vault para almacenar las claves administradas por el cliente.You must use Azure Key Vault to store your customer-managed keys. Puede crear sus propias claves y almacenarlas en un almacén de claves, o puede usar las API de Azure Key Vault para generarlas.You can either create your own keys and store them in a key vault, or you can use the Azure Key Vault APIs to generate keys. La cuenta de almacenamiento y el almacén de claves deben estar en la misma región y en el mismo inquilino de Azure Active Directory (Azure AD), pero pueden estar en distintas suscripciones.The storage account and the key vault must be in the same region and in the same Azure Active Directory (Azure AD) tenant, but they can be in different subscriptions. Para más información sobre Azure Key Vault, vea ¿Qué es Azure Key Vault?.For more information about Azure Key Vault, see What is Azure Key Vault?.

En este diagrama se muestra cómo Azure Storage usa Azure Active Directory y Azure Key Vault para hacer solicitudes mediante la clave administrada por el cliente:This diagram shows how Azure Storage uses Azure Active Directory and Azure Key Vault to make requests using the customer-managed key:

Diagrama que muestra cómo funcionan las claves administradas por el cliente en Azure Storage

En la lista siguiente se explican los pasos numerados del diagrama:The following list explains the numbered steps in the diagram:

  1. Un administrador de Azure Key Vault concede permisos sobre las claves de cifrado a la identidad administrada que está asociada a la cuenta de almacenamiento.An Azure Key Vault admin grants permissions to encryption keys to the managed identity that's associated with the storage account.
  2. Un administrador de Azure Storage configura el cifrado con una clave administrada por el cliente para la cuenta de almacenamiento.An Azure Storage admin configures encryption with a customer-managed key for the storage account.
  3. Azure Storage usa la identidad administrada que está asociada a la cuenta de almacenamiento para autenticar el acceso a Azure Key Vault mediante Azure Active Directory.Azure Storage uses the managed identity that's associated with the storage account to authenticate access to Azure Key Vault via Azure Active Directory.
  4. Azure Storage encapsula la clave de cifrado de la cuenta con la clave de cliente en Azure Key Vault.Azure Storage wraps the account encryption key with the customer key in Azure Key Vault.
  5. En operaciones de lectura y escritura, Azure Storage envía solicitudes a Azure Key Vault para encapsular y desencapsular la clave de cifrado de la cuenta para realizar operaciones de cifrado y descifrado.For read/write operations, Azure Storage sends requests to Azure Key Vault to wrap and unwrap the account encryption key to perform encryption and decryption operations.

Habilitación de claves administradas por el cliente para una cuenta de almacenamientoEnable customer-managed keys for a storage account

Al habilitar el cifrado con claves administradas por el cliente para una cuenta de almacenamiento, Azure Storage encapsula la clave de cifrado de la cuenta con la clave administrada por el cliente en el almacén de claves asociado.When you enable encryption with customer-managed keys for a storage account, Azure Storage wraps the account encryption key with the customer-managed key in the associated key vault. La habilitación de claves administradas por el cliente no afecta al rendimiento, y la cuenta se cifra con la nueva clave inmediatamente sin retraso alguno.Enabling customer-managed keys does not impact performance, and the account is encrypted with the new key immediately, without any time delay.

Las cuentas de almacenamiento nuevas siempre se cifran mediante claves administradas por Microsoft.A new storage account is always encrypted using Microsoft-managed keys. No es posible habilitar claves administradas por el cliente en el momento en que se crea la cuenta.It's not possible to enable customer-managed keys at the time that the account is created. Las claves administradas por el cliente se almacenan en Azure Key Vault, y el almacén de claves se debe aprovisionar con directivas de acceso que concedan permisos de clave a la identidad administrada que está asociada a la cuenta de almacenamiento.Customer-managed keys are stored in Azure Key Vault, and the key vault must be provisioned with access policies that grant key permissions to the managed identity that is associated with the storage account. La identidad administrada solo está disponible después de crear la cuenta de almacenamiento.The managed identity is available only after the storage account is created.

Al modificar la clave que se usa para el cifrado de Azure Storage habilitando o deshabilitando claves administradas por el cliente, actualizando la versión de clave o especificando una clave diferente, el cifrado de la clave raíz cambia, pero los datos de su cuenta de Azure Storage no tienen que volver a cifrarse.When you modify the key being used for Azure Storage encryption by enabling or disabling customer-managed keys, updating the key version, or specifying a different key, then the encryption of the root key changes, but the data in your Azure Storage account does not need to be re-encrypted.

Para aprender a usar claves administradas por el cliente con Azure Key Vault para el cifrado de Azure Storage, consulte uno de estos artículos:To learn how to use customer-managed keys with Azure Key Vault for Azure Storage encryption, see one of these articles:

Importante

Las claves administradas por el cliente dependen de identidades administradas para los recursos de Azure, una característica de Azure AD.Customer-managed keys rely on managed identities for Azure resources, a feature of Azure AD. Las identidades administradas no admiten actualmente escenarios entre directorios.Managed identities do not currently support cross-directory scenarios. Al configurar las claves administradas por el cliente en Azure Portal, se asigna automáticamente una identidad administrada a la cuenta de almacenamiento en segundo plano.When you configure customer-managed keys in the Azure portal, a managed identity is automatically assigned to your storage account under the covers. Si posteriormente mueve la suscripción, el grupo de recursos o la cuenta de almacenamiento de un directorio de Azure AD a otro, la identidad administrada asociada a la cuenta de almacenamiento no se transfiere al nuevo inquilino, por lo que es posible que las claves administradas por el cliente dejen de funcionar.If you subsequently move the subscription, resource group, or storage account from one Azure AD directory to another, the managed identity associated with the storage account is not transferred to the new tenant, so customer-managed keys may no longer work. Para más información, vea Transferencia de una suscripción entre directorios de Azure AD en Preguntas frecuentes y problemas conocidos con identidades administradas para recursos de Azure.For more information, see Transferring a subscription between Azure AD directories in FAQs and known issues with managed identities for Azure resources.

Almacenamiento de claves administradas por el cliente en Azure Key VaultStore customer-managed keys in Azure Key Vault

Para habilitar las claves administradas por el cliente en una cuenta de almacenamiento, debe usar un almacén de Azure Key Vault para almacenar las claves.To enable customer-managed keys on a storage account, you must use an Azure Key Vault to store your keys. Debe habilitar las propiedades Eliminación temporal y No purgar en el almacén de claves.You must enable both the Soft Delete and Do Not Purge properties on the key vault.

Solo se admiten claves RSA de tamaño 2048 con el cifrado de Azure Storage.Only RSA keys of size 2048 are supported with Azure Storage encryption. Para más información acerca de las claves, consulte la sección Claves en Key Vault en Información acerca de claves, secretos y certificados de Azure Key Vault.For more information about keys, see Key Vault keys in About Azure Key Vault keys, secrets and certificates.

Rotación de claves administradas por el clienteRotate customer-managed keys

Las claves administradas por el cliente se pueden rotar en Azure Key Vault según las directivas de cumplimiento.You can rotate a customer-managed key in Azure Key Vault according to your compliance policies. Cuando la clave rota, hay que actualizar la cuenta de almacenamiento para usar el nuevo identificador URI de la clave.When the key is rotated, you must update the storage account to use the new key URI. Para aprender a actualizar la cuenta de almacenamiento para usar una nueva versión de la clave en Azure Portal, consulte la sección Actualización de la versión de la clave en Configuración de claves administradas por el cliente para Azure Storage mediante Azure Portal.To learn how to update the storage account to use a new version of the key in the Azure portal, see the section titled Update the key version in Configure customer-managed keys for Azure Storage by using the Azure portal.

La rotación de la clave no desencadena un nuevo cifrado de los datos en la cuenta de almacenamiento.Rotating the key does not trigger re-encryption of data in the storage account. No es preciso que el usuario realice ninguna otra acción.There is no further action required from the user.

Revocación del acceso a las claves administradas por el clienteRevoke access to customer-managed keys

Para revocar el acceso a las claves administradas por el cliente, use PowerShell o la CLI de Azure.To revoke access to customer-managed keys, use PowerShell or Azure CLI. Para más información, consulte la referencia de PowerShell para Azure Key Vault o la referencia de la CLI para Azure Key Vault.For more information, see Azure Key Vault PowerShell or Azure Key Vault CLI. La revocación del acceso bloquea de manera eficaz el acceso a todos los datos de la cuenta de almacenamiento, ya que Azure Storage no puede acceder a la clave de cifrado.Revoking access effectively blocks access to all data in the storage account, as the encryption key is inaccessible by Azure Storage.

Claves administradas por el cliente para discos administrados por Azure (versión preliminar)Customer-managed keys for Azure managed disks (preview)

Las claves administradas por el cliente también están disponibles para administrar el cifrado de discos administrados por Azure (versión preliminar).Customer-managed keys are also available for managing encryption of Azure managed disks (preview). Las claves administradas por el cliente se comportan de forma diferente en los discos administrados que en los recursos de Azure Storage.Customer-managed keys behave differently for managed disks than for Azure Storage resources. Para más información, consulte Cifrado del lado servidor de Azure Managed Disks para Windows o Cifrado del lado servidor de Azure Managed Disks para Linux.For more information, see Server side encryption of Azure managed disks for Windows or Server side encryption of Azure managed disks for Linux.

Claves proporcionadas por el cliente (versión preliminar)Customer-provided keys (preview)

Los clientes que realizan solicitudes en Azure Blob Storage tienen la opción de proporcionar una clave de cifrado en una solicitud individual.Clients making requests against Azure Blob storage have the option to provide an encryption key on an individual request. La inclusión de la clave de cifrado en la solicitud proporciona un control detallado sobre la configuración de cifrado para las operaciones de almacenamiento de blobs.Including the encryption key on the request provides granular control over encryption settings for Blob storage operations. Las claves proporcionadas por el cliente (versión preliminar) se pueden almacenar en Azure Key Vault o en otro almacén de claves.Customer-provided keys (preview) can be stored in Azure Key Vault or in another key store.

Si desea ver un ejemplo en el que se muestra cómo especificar una clave proporcionada por el cliente en una solicitud para Blob Storage, consulte Especificación de una clave proporcionada por el cliente en una solicitud para Blob Storage con .NET.For an example that shows how to specify a customer-provided key on a request to Blob storage, see Specify a customer-provided key on a request to Blob storage with .NET.

Cifrado de operaciones de lectura y escrituraEncrypting read and write operations

Cuando una aplicación cliente proporciona una clave de cifrado en la solicitud, Azure Storage realiza el cifrado y el descifrado de forma transparente mientras lee y escribe datos de blobs.When a client application provides an encryption key on the request, Azure Storage performs encryption and decryption transparently while reading and writing blob data. Azure Storage escribe un hash SHA-256 de la clave de cifrado junto con el contenido del blob.Azure Storage writes an SHA-256 hash of the encryption key alongside the blob's contents. El hash se utiliza para comprobar que todas las operaciones posteriores en el blob usan la misma clave de cifrado.The hash is used to verify that all subsequent operations against the blob use the same encryption key.

Azure Storage no almacena ni administra la clave de cifrado que el cliente envía con la solicitud.Azure Storage does not store or manage the encryption key that the client sends with the request. La clave se descarta de forma segura en cuanto se completa el proceso de cifrado o descifrado.The key is securely discarded as soon as the encryption or decryption process is complete.

Cuando un cliente crea o actualiza un blob con una clave proporcionada por el cliente, las solicitudes de lectura y escritura posteriores para ese blob también deben proporcionar la clave.When a client creates or updates a blob using a customer-provided key, then subsequent read and write requests for that blob must also provide the key. Si no se proporciona la clave en una solicitud para un blob que ya se ha cifrado con una clave proporcionada por el cliente, se produce un error en la solicitud con el código de error 409 (conflicto).If the key is not provided on a request for a blob that has already been encrypted with a customer-provided key, then the request fails with error code 409 (Conflict).

Si la aplicación cliente envía una clave de cifrado en la solicitud, y la cuenta de almacenamiento también está cifrada mediante una clave administrada por Microsoft o una clave administrada por el cliente, Azure Storage usa la clave proporcionada en la solicitud para el cifrado y el descifrado.If the client application sends an encryption key on the request, and the storage account is also encrypted using a Microsoft-managed key or a customer-managed key, then Azure Storage uses the key provided on the request for encryption and decryption.

Para enviar la clave de cifrado como parte de la solicitud, un cliente debe establecer una conexión segura con Azure Storage mediante HTTPS.To send the encryption key as part of the request, a client must establish a secure connection to Azure Storage using HTTPS.

Cada instantánea de blob puede tener su propia clave de cifrado.Each blob snapshot can have its own encryption key.

Encabezados de solicitud para especificar las claves proporcionadas por el clienteRequest headers for specifying customer-provided keys

En el caso de las llamadas REST, los clientes pueden usar los siguientes encabezados para pasar de forma segura la información de clave de cifrado de una solicitud a Blob Storage:For REST calls, clients can use the following headers to securely pass encryption key information on a request to Blob storage:

Encabezado de solicitudRequest Header DescripciónDescription
x-ms-encryption-key Se requiere para solicitudes de lectura y escritura.Required for both write and read requests. Valor de clave de cifrado AES-256 con codificación Base64.A Base64-encoded AES-256 encryption key value.
x-ms-encryption-key-sha256 Se requiere para solicitudes de lectura y escritura.Required for both write and read requests. SHA256 con codificación Base64 de la clave de cifrado.The Base64-encoded SHA256 of the encryption key.
x-ms-encryption-algorithm Se requiere para solicitudes de escritura, opcional para solicitudes de lectura.Required for write requests, optional for read requests. Especifica el algoritmo que se va a usar al cifrar datos con la clave especificada.Specifies the algorithm to use when encrypting data using the given key. Debe ser AES256.Must be AES256.

La especificación de claves de cifrado en la solicitud es opcional.Specifying encryption keys on the request is optional. Sin embargo, si especifica uno de los encabezados enumerados anteriormente para una operación de escritura, deberá especificarlos todos.However, if you specify one of the headers listed above for a write operation, then you must specify all of them.

Operaciones de almacenamiento de blobs que admiten claves proporcionadas por el clienteBlob storage operations supporting customer-provided keys

Las siguientes operaciones de almacenamiento de blobs admiten el envío de claves de cifrado proporcionadas por el cliente en una solicitud:The following Blob storage operations support sending customer-provided encryption keys on a request:

Rotación de claves proporcionadas por el clienteRotate customer-provided keys

Para rotar una clave de cifrado pasada en la solicitud, descargue el blob y vuelva a cargarlo con la nueva clave de cifrado.To rotate an encryption key passed on the request, download the blob and re-upload it with the new encryption key.

Importante

Azure Portal no se puede usar para leer o escribir en un contenedor o blob que esté cifrado con una clave proporcionada en la solicitud.The Azure portal cannot be used to read from or write to a container or blob that is encrypted with a key provided on the request.

Asegúrese de proteger la clave de cifrado que proporcione en una solicitud a Blob Storage en un almacén de claves seguro como Azure Key Vault.Be sure to protect the encryption key that you provide on a request to Blob storage in a secure key store like Azure Key Vault. Si intenta realizar una operación de escritura en un contenedor o blob sin la clave de cifrado, se producirá un error en la operación y se perderá el acceso al objeto.If you attempt a write operation on a container or blob without the encryption key, the operation will fail, and you will lose access to the object.

Cifrado de Azure Storage frente a cifrado de discoAzure Storage encryption versus disk encryption

El cifrado de Azure Storage cifra los blobs en páginas que respaldan los discos de máquinas virtuales de Azure.Azure Storage encryption encrypts the page blobs that back Azure virtual machine disks. Además, existe la posibilidad de cifrar todos los discos de máquinas virtuales de Azure, incluidos los discos temporales locales, con Azure Disk Encryption.Additionally, all Azure virtual machine disks, including local temp disks, may optionally be encrypted with Azure Disk Encryption. Azure Disk Encryption usa el estándar del sector BitLocker en Windows y DM-Crypt en Linux para proporcionar soluciones de cifrado basado en el sistema que se integran con Azure Key Vault.Azure Disk Encryption uses industry-standard BitLocker on Windows and DM-Crypt on Linux to provide operating system-based encryption solutions that are integrated with Azure Key Vault.

Pasos siguientesNext steps