Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:Azure SQL Database
Azure SQL Managed Instance
Este artículo muestra cómo utilizar una clave de Azure Key Vault para el cifrado transparente de datos (TDE) en Azure SQL Database. Para obtener más información sobre TDE con la integración de Azure Key Vault - compatibilidad con Traiga su propia clave (BYOK), visite TDE with customer-managed keys in Azure Key Vault (TDE con claves administradas por el cliente de Azure Key Vault). Si quieres instrucciones del portal de Azure sobre cómo habilitar TDE con una clave gestionada por el cliente de Azure Key Vault, consulta Crear servidor configurado con identidad gestionada asignada por el usuario y TDE con clave administrada por el cliente.
Nota
Azure SQL Database soporta claves asimétricas (RSA) y simétricas (AES) para Cifrado de datos transparente gestionada por el cliente, dependiendo de la configuración. La compatibilidad con claves simétricas (AES) está actualmente en versión preliminar pública y está limitada a Azure SQL Database. Podrías ver que esta capacidad aparece con el tiempo dependiendo de tu región y el estado del despliegue del servicio. Para más detalles, véase Cifrado de datos transparente with customer-managed keys (BYOK).
Requisitos previos para PowerShell
- Debe tener una suscripción de Azure y ser un administrador en esa suscripción.
- [Recomendado, pero opcional] Debe tener un módulo de seguridad de hardware (HSM) o un almacén de claves locales para crear una copia local del material de claves del protector de TDE.
- Es preciso tener instalado y en ejecución Azure PowerShell.
- Cree una instancia de Azure Key Vault y una clave para usar para TDE.
-
Instrucciones para usar un módulo de seguridad de hardware (HSM) y Azure Key Vault
- El almacén de claves debe tener la siguiente propiedad que se usará para TDE:
- eliminación temporal y protección de purgas
-
Instrucciones para usar un módulo de seguridad de hardware (HSM) y Azure Key Vault
- La clave debe tener los siguientes atributos que se usarán para TDE:
- La fecha de activación (si se establece) debe ser una fecha y hora del pasado
- La fecha de expiración (si se establece) debe ser una fecha y hora del futuro
- El estado de la clave debe ser Habilitada
- Poder realizar las operaciones get, wrap key, unwrap key
- Para usar una clave HSM administrada de Azure Key Vault, siga las instrucciones para crear y activar un HSM administrado mediante CLI de Azure
Para obtener instrucciones sobre la instalación del módulo Azure PowerShell, consulte Instalación de Azure PowerShell.
Para obtener información específica sobre Azure Key Vault, consulte las instrucciones de PowerShell desde Azure Key Vault y cómo usar la eliminación temporal de Azure Key Vault con PowerShell.
Asignación de una identidad de Microsoft Entra al servidor
Si tienes un servidor existente, utiliza las siguientes instrucciones para añadir una identidad Microsoft Entra a tu servidor:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Si estás creando un servidor, usa el cmdlet New-AzSqlServer con la -Identity etiqueta para añadir una identidad Microsoft Entra durante la creación del servidor:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Concesión de permisos de Azure Key Vault al servidor
Utilice el cmdlet Set-AzKeyVaultAccessPolicy para conceder al servidor acceso al almacén de claves antes de usar una clave para TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Para añadir permisos a tu servidor en un HSM gestionado, añade el rol RBAC local Managed HSM Crypto Service Encryption User al servidor. Este rol permite al servidor realizar get, wrap key, y unwrap key operaciones sobre las claves en el HSM gestionado. Para obtener más información, consulte Administración de roles HSM administrados.
Agregue la clave de Azure Key Vault al servidor y establezca el protector de TDE.
- Use el cmdlet Get-AzKeyVaultKey para recuperar el identificador de clave del almacén de claves.
- Use el cmdlet Add-AzSqlServerKeyVaultKey para agregar la clave de Azure Key Vault al servidor.
- Utilice el cmdlet Set-AzSqlServerTransparentDataEncryptionProtector para establecer la clave como protector de TDE para todos los recursos del servidor.
- Utilice el cmdlet Get-AzureRmSqlServerTransparentDataEncryptionProtector para confirmar que el protector de TDE se ha configurado según lo previsto.
Nota
En el caso de las claves HSM administradas, use la versión Az.Sql 2.11.1 de PowerShell o posterior.
Nota
La longitud combinada del nombre de la bóveda de claves y del nombre clave no puede superar los 94 caracteres.
Sugerencia
Uso de claves de Azure Key Vault con versiones y sin versiones para TDE
Al configurar el protector TDE, puedes hacer referencia a una clave de Azure Key Vault usando una versión específica de clave o un identificador de clave sin versión.
En ambos casos, Azure SQL Database siempre resuelve y usa la versión habilitada más reciente de la clave en Azure Key Vault o HSM administrado de Azure Key Vault. Use identificadores de clave sin versión para evitar insertar una versión de clave específica en la configuración del protector de TDE.
Actualmente, solo se admiten identificadores de clave sin versión para Azure SQL Database.
Ejemplos:
Identificador de clave que incluye una versión específica
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Identificador de clave sin versión
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# add the key from Azure Key Vault to the server
Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> `
-Type AzureKeyVault -KeyId <KeyVaultKeyId>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
Activar TDE
Utilice el cmdlet Set-AzSqlDatabaseTransparentDataEncryption para activar el TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Ahora la base de datos tiene TDE activado con una clave de cifrado en Azure Key Vault.
Comprobar el estado de cifrado y la actividad de cifrado
Utiliza el Get-AzSqlDatabaseTransparentDataEncryption para obtener el estado de cifrado de una base de datos.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Cmdlets de PowerShell útiles
Utilice el cmdlet Set-AzSqlDatabaseTransparentDataEncryption para desactivar TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"Use el cmdlet Get-AzSqlServerKeyVaultKey para devolver la lista de claves de Azure Key Vault agregadas al servidor.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>Utilice el comando Remove-AzSqlServerKeyVaultKey para eliminar una clave de Azure Key Vault del servidor.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Solución de problemas
Si no se encuentra Key Vault, asegúrate de estar en la suscripción correcta.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Si no puedes añadir la nueva clave al servidor, o si no puedes actualizar la nueva clave como protector de TDE, comprueba las siguientes condiciones:
- La clave no debería tener fecha de caducidad.
- La clave debe tener las operaciones get, wrap key y unwrap key.
TDE BYOK Azure Synapse Analytics
Para la documentación de TDE BYOK sobre Azure Synapse Analytics, consulte la documentación SQL de Azure Synapse Analytics. Para obtener documentación sobre el Cifrado de datos transparente para grupos de SQL dedicados en áreas de trabajo de Synapse, consulte Cifrado de Azure Synapse Analytics.